You need to show this note for at least one version
';
return $shErrors;
}
/* retrieves values from $aValue that were output by outputEditor() */
/* $aValues can be $_REQUEST or any array with the values from outputEditor() */
function GetOutputEditorValues($aValues)
{
$this->iVersionId = getInput('iVersionId', $aValues);
if(!$this->isRealVersionId($this->iVersionId))
$this->iAppId = getInput('iAppId', $aValues);
else
$this->iAppId = 0;
$oTag = new TagNoteVersion($this->iVersionId);
if($this->iAppId)
$oTag->setAppId($this->iAppId);
$this->aVersions = $oTag->getSelectedTags($aValues);
$this->sTitle = $aValues['sNoteTitle'];
$this->shDescription = $aValues['shNoteDesc'];
$this->sType = in_array($aValues['sType'], array('howto','note','warning')) ? $aValues['sType'] : 'note';
}
function allowAnonymousSubmissions()
{
return false;
}
// NOTE: notes cannot be queued at this point
function mustBeQueued()
{
return false;
}
function objectGetId()
{
return $this->iNoteId;
}
// TODO: we ignore $bQueued and $bRejected as notes
// do not support queuing at this point
// TODO: we have no permissions scope on retrieving entries
// as notes are typically only added to unqueued versions
function objectGetEntries($sState, $iRows = 0, $iStart = 0, $sOrderBy = '', $bAscending = true)
{
$sQuery = "select * from appNotes";
$hResult = query_parameters($sQuery);
return $hResult;
}
function objectGetEntriesCount($sState)
{
$sQuery = "SELECT COUNT(DISTINCT noteId) as count FROM appNotes";
$hResult = query_parameters($sQuery);
if(!$hResult)
return false;
if(($oRow = mysql_fetch_object($hResult)))
return $oRow->count;
return false;
}
//TODO: not sure how to best let users view a table of notes
// since the note contents could be very long we would only
// want to show a small amount of the text. Implement this
// routine when we need it
function objectGetHeader()
{
return null;
}
//TODO: implement this when we implement objectGetHeader()
function objectGetTableRow()
{
return null;
}
function objectMakeUrl()
{
$oManager = new objectManager("note", "View Note");
return $oManager->makeUrl("view", $this->objectGetId());
}
function objectGetSubmitterId()
{
return $this->iSubmitterId;
}
function objectGetMailOptions($sAction, $bMailSubmitter, $bParentAction)
{
return new mailOptions();
}
function objectGetMail($sAction, $bMailSubmitter, $bParentAction)
{
/* We don't do this at the moment */
return array(null, null, null);
}
public function objectGetParent($sClass = '')
{
if($this->hasRealVersionId())
return new version($this->iVersionId);
else
return new application($this->iAppId);
}
public function objectSetParent($iNewId, $sClass = '')
{
if($this->hasRealVersionId())
$this->iVersionId = $iNewId;
else
$this->iAppId = $iNewId;
}
function objectGetChildren($bIncludeDeleted = false)
{
return array();
}
//TODO: not sure if we want to use sTitle here or what
function objectMakeLink()
{
$sLink = "objectMakeUrl()."\">".
$this->sTitle."";
return $sLink;
}
function objectGetState()
{
return 'accepted'; // We don't queue notes
}
// users can edit the note if they:
// - have "admin" privileges
// - maintain the version, or supermaintain the application that
// this version is under
function canEdit()
{
if($_SESSION['current']->hasPriv("admin"))
return true;
else if($this->iVersionId && !$this->iAppId)
return maintainer::isUserMaintainer($_SESSION['current'], $this->iVersionId);
else if($this->iAppId)
return maintainer::isUserSuperMaintainer($_SESSION['current'], $this->iAppId);
return false;
}
}
?>