This repository has been archived on 2025-05-24. You can view files and clone it, but cannot push or open issues or pull requests.
Files
qemudb/include/note.php

162 lines
5.7 KiB
PHP
Raw Normal View History

2005-02-03 01:27:31 +00:00
<?php
require_once(BASE."include/util.php");
$aClean = array(); //array of filtered user input
$aClean['replyText'] = makeSafe( $_REQUEST['replyText'] );
2005-02-03 01:27:31 +00:00
/************************************/
/* note class and related functions */
/************************************/
/**
* Note class for handling notes
*/
class Note {
var $iNoteId;
var $iAppId;
var $iVersionId;
var $sTitle;
var $sDescription;
/**
* Constructor.
* If $iNoteId is provided, fetches note.
*/
function Note($iNoteId="")
{
if($iNoteId)
{
$sQuery = "SELECT appNotes.*, appVersion.appId AS appId
FROM appNotes, appVersion
WHERE appNotes.versionId = appVersion.versionId
AND noteId = '?'";
$hResult = query_parameters($sQuery, $iNoteId);
2005-02-03 01:27:31 +00:00
$oRow = mysql_fetch_object($hResult);
$this->iNoteId = $oRow->noteId;
$this->iAppId = $oRow->appId;
$this->iVersionId = $oRow->versionId;
$this->sTitle = $oRow->noteTitle;
$this->sDescription = $oRow->noteDesc;
}
}
/*
* Creates a new note.
* Informs interested people about the creation.
* Returns true on success, false on failure
*/
function create($sTitle, $sDescription, $iVersionId)
{
$hResult = query_parameters("INSERT INTO appNotes (versionId, noteTitle, noteDesc) ".
"VALUES('?', '?', '?')",
$iVersionId, $sTitle, $sDescription);
2005-02-03 01:27:31 +00:00
if($hResult)
2005-02-03 01:27:31 +00:00
{
$this->note(mysql_insert_id());
$sWhatChanged = "Description is:\n".$sDescription.".\n\n";
$this->SendNotificationMail("add", $sWhatChanged);
2005-02-03 01:27:31 +00:00
return true;
}
else
{
addmsg("Error while creating a new note.", "red");
2005-02-03 01:27:31 +00:00
return false;
}
2005-02-03 01:27:31 +00:00
}
/**
* Update note.
* Returns true on success and false on failure.
*/
function update($sTitle=null, $sDescription=null, $iVersionId=null)
{
$sWhatChanged = "";
if ($sTitle && $sTitle!=$this->sTitle)
2005-02-03 01:27:31 +00:00
{
if (!query_parameters("UPDATE appNotes SET noteTitle = '?' WHERE noteId = '?'",
$sTitle, $this->iNoteId))
2005-02-03 01:27:31 +00:00
return false;
$sWhatChanged .= "Title was changed from ".$this->sTitle." to ".$sTitle.".\n\n";
2005-02-03 01:27:31 +00:00
$this->sTitle = $sTitle;
}
if ($sDescription && $sDescription!=$this->sDescription)
2005-02-03 01:27:31 +00:00
{
if (!query_parameters("UPDATE appNotes SET noteDesc = '?' WHERE noteId = '?'",
$sDescription, $this->iNoteId))
2005-02-03 01:27:31 +00:00
return false;
$sWhatChanged .= "Description was changed from\n ".$this->sDescription."\n to \n".$sDescription.".\n\n";
2005-02-03 01:27:31 +00:00
$this->sDescription = $sDescription;
}
if ($iVersionId && $iVersionId!=$this->iVersionId)
2005-02-03 01:27:31 +00:00
{
if (!query_parameters("UPDATE appNotes SET versionId = '?' WHERE noteId = '?'",
$iVersionId, $this->iNoteId))
2005-02-03 01:27:31 +00:00
return false;
$oVersionBefore = new Version($this->iVersionId);
$oVersionAfter = new Version($iVersionId);
$sWhatChanged .= "Version was changed from ".$oVersionBefore->sName." to ".$oVersionAfter->sName.".\n\n";
2005-02-03 01:27:31 +00:00
$this->iVersionId = $iVersionId;
$this->iAppId = $oVersionAfter->iAppId;
2005-02-03 01:27:31 +00:00
}
if($sWhatChanged)
$this->SendNotificationMail("edit",$sWhatChanged);
2005-02-03 01:27:31 +00:00
return true;
}
/**
* Removes the current note from the database.
* Informs interested people about the deletion.
*/
function delete($bSilent=false)
2005-02-03 01:27:31 +00:00
{
$hResult = query_parameters("DELETE FROM appNotes WHERE noteId = '?'", $this->iNoteId);
if(!$bSilent)
$this->SendNotificationMail("delete");
}
function SendNotificationMail($sAction="add",$sMsg=null)
{
switch($sAction)
2005-02-03 01:27:31 +00:00
{
case "add":
$sSubject = "Note ".$this->sTitle." for ".lookup_app_name($this->iAppId)." ".lookup_version_name($this->iVersionId)." added by ".$_SESSION['current']->sRealname;
$sMsg .= APPDB_ROOT."appview.php?versionId=".$this->iVersionId."\n";
addmsg("The note was successfully added into the database.", "green");
break;
case "edit":
$sSubject = "Note ".$this->sTitle." for ".lookup_app_name($this->iAppId)." ".lookup_version_name($this->iVersionId)." has been modified by ".$_SESSION['current']->sRealname;
addmsg("Note modified.", "green");
break;
case "delete":
$sSubject = "Note ".$this->sTitle." for ".lookup_app_name($this->iAppId)." ".lookup_version_name($this->iVersionId)." has been deleted by ".$_SESSION['current']->sRealname;
2005-02-03 01:27:31 +00:00
$sMsg .= "This note was made on ".substr($this->sDateCreated,0,10)." by ".$this->oOwner->sRealname."\n";
$sMsg .= "\n";
$sMsg .= "Subject: ".$this->sTitle."\n";
2005-02-03 01:27:31 +00:00
$sMsg .= "\n";
$sMsg .= $this->sBody."\n";
$sMsg .= "\n";
$sMsg .= "Because:\n";
if($aClean['replyText'])
$sMsg .= $aClean['replyText']."\n";
2005-02-03 01:27:31 +00:00
else
$sMsg .= "No reason given.\n";
addmsg("Note deleted.", "green");
break;
2005-02-03 01:27:31 +00:00
}
$sEmail = get_notify_email_address_list(null, $this->iVersionId);
if($sEmail)
mail_appdb($sEmail, $sSubject ,$sMsg);
}
2005-02-03 01:27:31 +00:00
}
?>