siteMap->getSectionName(substr($_SERVER["PHP_SELF"], strlen($default->rootUrl), strlen($_SERVER["PHP_SELF"])));
$sTDBGColour = $default->siteMap->getSectionColour($sSectionName, "td");
$sDocumentPath = displayFolderPathLink(Folder::getFolderPathAsArray($oDocument->getFolderID()), Folder::getFolderPathNamesAsArray($oDocument->getFolderID()), "$default->rootUrl/control.php?action=browse") . " > ";
// #3425 for consistency
if ($bDisplayActions) {
$sDocumentPath .= "getID() . "&fForInlineView=1") . "\">" . $oDocument->getFileName() . "";
} else {
$sDocumentPath .= $oDocument->getFileName();
}
return "
| " . $sDocumentPath . " | " . ($bDisplayActions ? "Actions | " : "") . "
\n";
}
function renderDocumentData($oDocument, $bEditable, $sStatusMessage = "") {
global $default;
$iVersionID = KTUtil::arrayGet($_REQUEST, 'fVersionID');
$aDocuments = array($oDocument->getID());
if (!empty($iVersionID)) {
$aDocuments[] = $iVersionID;
}
$sWhere = DBUtil::paramArray($aDocuments);
/*ok*/ $sQuery = "SELECT D.id, D.name, D.modified, D.created, D.size, U.name AS initiator, D.metadata_version, CONCAT(CONCAT(D.major_version, '.'), D.minor_version) AS version, DTL.name AS document_type, D.is_checked_out, COALESCE(U2.name, '') AS c_user " .
"FROM $default->documents_table AS D " .
"LEFT JOIN $default->users_table AS U ON U.id = D.creator_id " .
"LEFT OUTER JOIN $default->document_types_table AS DTL ON DTL.id = D.document_type_id " .
"LEFT OUTER JOIN $default->users_table AS U2 ON U2.id = D.checked_out_user_id " .
"WHERE D.id = ?";
// $aColumns = array("metadata_version", "name", "modified", "created", "size", "initiator", "document_type", "c_user", "id", "version");
$aColumns = array(
"metadata_version" =>_("Metadata Version"),
"name" => _("Document title"),
"modified" => _("Last updated"),
"created" => _("Created"),
"size" => _("File Size"),
"initiator" => _("Document initiator"),
"document_type" => _("Document Type"),
"c_user" => _("Checked out by"),
"id" => _("ID"),
"document_version" => _("Document Version"),
);
$oTemplating =& KTTemplating::getSingleton();
$oTemplate = $oTemplating->loadTemplate('ktcore/document_generic_metadata');
$iDocumentsLen = count($aDocuments);
$map = array();
$iDocumentCount = 0;
foreach ($aDocuments as $iDocumentID) {
$oThisDocument =& Document::get($iDocumentID);
if (PEAR::isError($oThisDocument)) {
continue;
}
if ($oThisDocument === false) {
continue;
}
$aRow = DBUtil::getOneResult(array($sQuery, array($iDocumentID)));
foreach ($aColumns as $dbname => $prettyname) {
$newarray = KTUtil::arrayGet($map, $prettyname, array_fill(0, $iDocumentsLen, null));
$newarray[$iDocumentCount] = $aRow[$dbname];
$map[$prettyname] = $newarray;
}
$oState =& KTWorkflowState::getByDocument($oThisDocument);
$map['Workflow state'] = KTUtil::arrayGet($map, 'Metadata Version', array_fill(0, $iDocumentsLen, null));
if ($oState) {
$map['Workflow state'][$iDocumentCount] = $oState->getHumanName();
} else {
$map['Workflow state'][$iDocumentCount] = "Not in workflow";
}
$iDocumentCount++;
}
$oTemplate->setData(array(
'map' => $map,
));
return $oTemplate->render();
}
function renderGenericMetaData($oDocument, $bEditable) {
global $default;
$iVersionID = KTUtil::arrayGet($_REQUEST, 'fVersionID');
$aDocuments = array($oDocument->getID());
if (!empty($iVersionID)) {
$aDocuments[] = $iVersionID;
}
/*ok*/ $sQuery = "SELECT DF.name AS name, DFL.value as value " .
"FROM $default->documents_table AS D INNER JOIN $default->document_fields_link_table AS DFL ON D.id = DFL.document_id " .
"INNER JOIN $default->document_fields_table AS DF ON DF.id = DFL.document_field_id " .
"WHERE document_id = ? " .
"AND DF.is_generic = 1";
$iDocumentsLen = count($aDocuments);
$map = array();
$iDocumentCount = 0;
foreach ($aDocuments as $iDocumentID) {
$map['Metadata Version'] = KTUtil::arrayGet($map, 'Metadata Version', array_fill(0, $iDocumentsLen, null));
$oThisDocument =& Document::get($iDocumentID);
if (PEAR::isError($oThisDocument)) {
continue;
}
if ($oThisDocument === false) {
continue;
}
$map['Metadata Version'][$iDocumentCount] = $oThisDocument->getMetadataVersion();
$aTDRows = DBUtil::getResultArray(array($sQuery, array($iDocumentID)));
foreach ($aTDRows as $aRow) {
$newarray = KTUtil::arrayGet($map, $aRow['name'], array_fill(0, $iDocumentsLen, null));
$newarray[$iDocumentCount] = $aRow['value'];
$map[$aRow['name']] = $newarray;
}
$iDocumentCount++;
}
$oTemplating =& KTTemplating::getSingleton();
$oTemplate = $oTemplating->loadTemplate('ktcore/document_generic_metadata');
if ($bEditable) {
$editable = "rootUrl/control.php?action=modifyDocumentGenericMetaData&fDocumentID=" . $oDocument->getID() . "\">
";
} else {
$editable = "";
}
$sToRender .= $oTemplate->render(array(
'map' => $map,
'editable' => $editable,
));
return $sToRender;
}
function renderTypeSpecificMetaData($oDocument, $bEditable) {
global $default;
$iVersionID = KTUtil::arrayGet($_REQUEST, 'fVersionID');
$aDocuments = array($oDocument->getID());
if (!empty($iVersionID)) {
$aDocuments[] = $iVersionID;
}
$sParam = DBUtil::paramArray($aDocuments);
$sQuery = "SELECT D.id AS document_id, DF.id AS field_id, DFL.value AS value, F.id AS fieldset_id " .
"FROM $default->documents_table AS D INNER JOIN document_fields_link AS DFL ON D.id = DFL.document_id " .
"INNER JOIN $default->document_fields_table AS DF ON DF.ID = DFL.document_field_id " .
"INNER JOIN $default->fieldsets_table AS F ON F.id = DF.parent_fieldset " .
"WHERE D.id IN ($sParam) " .
"AND DF.name NOT LIKE 'Category' " .
"AND DF.is_generic = 0";
$aParam = $aDocuments;
$aResults = DBUtil::getResultArray(array($sQuery, $aParam));
$aMap = array();
foreach ($aResults as $aResult) {
$fieldset_id = $aResult['fieldset_id'];
$field_id = $aResult['field_id'];
$document_id = $aResult['document_id'];
$aMyFieldset = KTUtil::arrayGet($aMap, $fieldset_id);
if (empty($aMyFieldset)) {
$aMap[$fieldset_id]["fieldset"] = KTFieldset::get($fieldset_id);
$aMap[$fieldset_id]["fields"] = array();
}
$aMyField = KTUtil::arrayGet($aMap[$fieldset_id]['fields'], $field_id);
if (empty($aMyField)) {
$aMap[$fieldset_id]['fields'][$field_id] = array();
$aMap[$fieldset_id]['fields'][$field_id]['field'] = DocumentField::get($field_id);
$aMap[$fieldset_id]['fields'][$field_id]['values'] = array();
}
$aMap[$fieldset_id]['fields'][$field_id]['values'][$document_id] = $aResult['value'];
}
$oTemplating =& KTTemplating::getSingleton();
$oTemplate = $oTemplating->loadTemplate('ktcore/document_specific_metadata');
$sToRender = $oTemplate->render(array(
'aDocumentIds' => $aDocuments,
'map' => $aMap,
));
return $sToRender;
print "";
foreach ($aMap as $k => $v) {
print $v['fieldset']->getName() . "\n";
foreach ($v['fields'] as $k => $aField) {
print $aField['field']->getName() . ": ";
foreach ($aField['values'] as $document_id => $sValue) {
print "$document_id => $sValue";
}
print "\n";
}
print "\n\n";
}
exit(0);
$oTemplating =& KTTemplating::getSingleton();
$oTemplate = $oTemplating->loadTemplate('ktcore/document_specific_metadata');
if ($bEditable) {
$editable = "rootUrl/control.php?action=modifyDocumentTypeMetaData&fDocumentID=" . $oDocument->getID() . "\">
";
} else {
$editable = "";
}
$sToRender = $oTemplate->render(array(
'map' => $map,
'editable' => $editable,
));
return $sToRender;
}
function renderDocumentArchiveSettingsDetails($oDocument, $bEditable) {
global $default;
// retrieve the appropriate settings given the document id
$oDocumentArchiving = DocumentArchiving::getFromDocumentID($oDocument->getID());
if ($oDocumentArchiving) {
// retrieve the settings
$oArchiveSettings = ArchivingSettings::get($oDocumentArchiving->getArchivingSettingsID());
// switch on archiving type
$sArchivingType = lookupName($default->archiving_type_lookup_table, $oArchiveSettings->getArchivingTypeID());
$oTimePeriod = TimePeriod::get($oArchiveSettings->getTimePeriodID());
$sDisplayText = "";
switch ($sArchivingType) {
case "Date" :
$sDisplayText .= _("Expiration Date") . ": " . $oArchiveSettings->getExpirationDate();
if ($oTimePeriod) {
$sDisplayText .= " Expires after " . $oTimePeriod->getUnits() . " ";
$sDisplayText .= lookupName($default->time_unit_lookup_table, $oTimePeriod->getTimeUnitID()) . " from document creation date";
}
break;
case "Utilisation" :
$sDisplayText .= "Archive document " . $oTimePeriod->getUnits() . " ";
$sDisplayText .= lookupName($default->time_unit_lookup_table, $oTimePeriod->getTimeUnitID());
$sDisplayText .= " after the last " . lookupName($default->transaction_types_table, $oArchiveSettings->getDocumentTransactionID()) . " transaction";
break;
}
$sDisplayText .= " | " . ($bEditable ? "" . generateControllerLink("modifyDocumentArchiveSettings", "fDocumentID=" . $oDocument->getID(), "Edit") . " | " : "");
$sArchivingType = _("Archiving Type") . ": " . $sArchivingType;
} else {
$sArchivingType = "";
$sDisplayText = _("No archiving settings");
}
$sToRender = "";
$sToRender .= "" . _("Archiving Settings") . "";
$sToRender .= "| " . $sArchivingType . " | ";
$sToRender .= "";
$sToRender .= $sDisplayText;
$sToRender .= "
";
$sToRender .= "
";
return $sToRender;
}
function renderDocumentArchiveSettings($oDocument, $bEditable) {
global $default;
$sToRender .= "\t\n";
$sToRender .= "\t\n";
$sToRender .= "\t\t| " . renderDocumentArchiveSettingsDetails($oDocument, $bEditable) . " | \n";
$sToRender .= "\t
";
if ($bEditable) {
$sToRender .= "\t\n";
// if there are no archiving settings then allow their addition
$oDocumentArchiving = DocumentArchiving::getFromDocumentID($oDocument->getID());
$sToRender .= "\t\t" . ($oDocumentArchiving ? "" : generateControllerLink("addDocumentArchiveSettings", "fDocumentID=" . $oDocument->getID(), " ")) . " | \n";
$sToRender .= "\t
";
}
$sToRender .= "\t
\n";
return $sToRender;
}
function renderEditableDocumentRouting($oDocument) {
global $default;
/*ok*/ $sQuery = array("SELECT D.id as document_id, GFAL.id as id, R.name AS role_name, COALESCE(U.name, U2.name) AS name, GFAL.precedence AS precedence, COALESCE(FURL.active,0) AS active, COALESCE(FURL.done, 0) AS done, 'Edit User' as edit " .
"FROM $default->documents_table AS D INNER JOIN $default->groups_folders_approval_table AS GFAL ON D.folder_id = GFAL.folder_id " .
"INNER JOIN $default->roles_table AS R ON GFAL.role_id = R.id " .
"LEFT OUTER JOIN $default->folders_user_roles_table AS FURL ON FURL.group_folder_approval_id = GFAL.id AND FURL.document_id = D.id " .
"LEFT OUTER JOIN $default->users_table AS U ON FURL.user_id = U.id " .
"LEFT OUTER JOIN $default->users_table AS U2 ON GFAL.user_id = U2.id " .
"WHERE D.id = ? " .
"ORDER BY GFAL.precedence, role_name ASC", $oDocument->getID());
$aColumns = array("role_name", "name", "precedence", "active", "done", "edit");
$aColumnHeaders = array(_("Role"), _("User"), _("Seq"), _("Active"), _("Done"), _("Edit"));
$aColumnTypes = array(1,1,1,2,2,3);
$aDBColumnArray = array("id","document_id","active","done");
$aQueryStringVariableNames = array("fFolderCollaborationID", "fDocumentID","fIsActive","fIsDone");
$aLinkURLs = array(5=>"$default->rootUrl/control.php?action=modifyDocumentRouting");
$oPatternTableSqlQuery = & new PatternTableSqlQuery($sQuery, $aColumns, $aColumnTypes, $aColumnHeaders, "500", $aLinkURLs,$aDBColumnArray,$aQueryStringVariableNames);
$oPatternTableSqlQuery->setTableHeading(_("Document Routing"));
$oPatternTableSqlQuery->setDisplayColumnHeadings(true);
$sToRender .= "\t\n";
$sToRender .= "\t\n";
$sToRender .= "\t\t| " . $oPatternTableSqlQuery->render() . " | \n";
$sToRender .= "\t
";
$sToRender .= "\t\n";
// display the begin collaboration button if:
// collaboration cannot be started or approved/rejected unless the document is not checked out
// the document has collaboration
// collaboration hasn't started
// the current user created the document, or is a system adminstrator
if (!$oDocument->getIsCheckedOut() &&
$oDocument->hasCollaboration() &&
(!DocumentCollaboration::documentCollaborationStarted($oDocument->getID())) &&
( ($_SESSION["userID"] == $oDocument->getCreatorID()) || Permission::userIsSystemAdministrator() ) ) {
//if not all collaboration steps have been set, then you cannot start the collaboration process
//only the creator of the document can start the collaboration process
$sToRender .= "\t\tgetID() . "&fBeginCollaboration=1> ";
$sToRender .= " | \n";
// else if collboration has started and the current user has been assigned this step, display the approve/reject buttons
} else if (DocumentCollaboration::userIsPerformingCurrentCollaborationStep($oDocument->getID())) {
//if the current user is responsible for an active step in the collaboration process
$sToRender .= "\t\t | \n";
}
$sToRender .= "\t
";
$sToRender .= "\t
\n";
return $sToRender;
}
function renderNonEditableDocumentRouting($oDocument) {
global $default;
/*ok*/ $sQuery = array("SELECT D.id as document_id, GFAL.id as id, R.name AS role_name, COALESCE(U.Name, 'Not assigned') AS name, GFAL.precedence AS precedence, COALESCE(FURL.active,0) AS active, COALESCE(FURL.done, 0) AS done " .
"FROM $default->documents_table AS D INNER JOIN $default->groups_folders_approval_table AS GFAL ON D.folder_id = GFAL.folder_id " .
"INNER JOIN $default->roles_table AS R ON GFAL.role_id = R.id " .
"LEFT OUTER JOIN $default->folders_user_roles_table AS FURL ON FURL.group_folder_approval_id = GFAL.id AND FURL.document_id = D.id " .
"LEFT OUTER JOIN $default->users_table AS U ON FURL.user_id = U.id " .
"WHERE D.id = ? " .
"ORDER BY GFAL.precedence, role_name ASC", $oDocument->getID());
$aColumns = array("role_name", "name", "precedence", "active", "done");
$aColumnHeaders = array(_("Role"), _("User"), _("Seq"), _("Active"), _("Done"));
$aColumnTypes = array(1,1,1,2,2);
$oPatternTableSqlQuery = & new PatternTableSqlQuery($sQuery, $aColumns, $aColumnTypes, $aColumnHeaders, "500", "$default->rootUrl/control.php?action=modifyDocumentRouting",$aDBColumnArray,$aQueryStringVariableNames);
$oPatternTableSqlQuery->setTableHeading(_("Document Routing"));
$oPatternTableSqlQuery->setDisplayColumnHeadings(true);
$sToRender .= "\t\n";
$sToRender .= "\t\n";
$sToRender .= "\t\t| " . $oPatternTableSqlQuery->render() . " | \n";
$sToRender .= "\t
";
if (DocumentCollaboration::userIsPerformingCurrentCollaborationStep($oDocument->getID())) {
//if the current user is responsible for an active step in the collaboration process
$sToRender .= "\t\t |
\n";
}
$sToRender .= "\t
\n";
return $sToRender;
}
function renderEditableLinkedDocuments($oDocument) {
global $default;
/*ok*/ $sQuery = array("SELECT D.id AS child_document_id, D.name, DL.id as document_link_id, " .
"DL.parent_document_id AS parent_document_id, DLT.name AS link_type, 'Unlink' AS unlink " .
"FROM $default->documents_table AS D INNER JOIN $default->document_link_table AS DL ON D.id = DL.child_document_id " .
"INNER JOIN $default->document_link_types_table AS DLT ON DL.link_type_id = DLT.id " .
"WHERE DL.parent_document_id = ?", $oDocument->getID());
$aColumns = array("name", "link_type", "unlink");
$aColumnHeaders = array(_("Document"), _("Document Link Type"));
$aColumnTypes = array(3,3,3);
$aDBColumnArray = array("parent_document_id", "child_document_id","document_link_id", "child_document_id");
$aQueryStringVariableNames = array("fParentDocumentID","fChildDocumentID", "fDocumentLinkID", "fDocumentID");
$aLinkURLs = array(0=>"$default->rootUrl/control.php?action=viewDocument", 2=>"$default->rootUrl/control.php?action=removeDocumentLink");
$oPatternTableSqlQuery = & new PatternTableSqlQuery($sQuery, $aColumns, $aColumnTypes, $aColumnHeaders, "500", $aLinkURLs, $aDBColumnArray, $aQueryStringVariableNames);
$oPatternTableSqlQuery->setTableHeading(_("Linked documents"));
$oPatternTableSqlQuery->setDisplayColumnHeadings(true);
$sToRender .= "\t\n";
return $sToRender;
}
function renderNonEditableLinkedDocuments($oDocument) {
global $default;
/*ok*/ $sQuery = array("SELECT D.id, D.name " .
"FROM $default->documents_table AS D INNER JOIN $default->document_link_table AS DL ON D.id = DL.child_document_id " .
"WHERE DL.parent_document_id = ?", $oDocument->getID());
$aColumns = array("name");
$aColumnHeaders = array(_("Document"));
$aColumnTypes = array(3);
$aDBColumnArray = array("id");
$aQueryStringVariableNames = array("fDocumentID");
$aLinkURLs = array(0=>"$default->rootUrl/control.php?action=viewDocument");
$oPatternTableSqlQuery = & new PatternTableSqlQuery($sQuery, $aColumns, $aColumnTypes, $aColumnHeaders, "500", $aLinkURLs, $aDBColumnArray, $aQueryStringVariableNames);
$oPatternTableSqlQuery->setTableHeading(_("Linked documents"));
$oPatternTableSqlQuery->setDisplayColumnHeadings(true);
$sToRender .= "\t\n";
$sToRender .= "\t\n";
$sToRender .= "\t\t| " . $oPatternTableSqlQuery->render() . " | \n";
$sToRender .= "\t
";
$sToRender .= "\t
\n";
return $sToRender;
}
function renderDependantDocuments($oDocument, $bEdit) {
global $default;
// FIXME: only allow escalation if you have write access and are the same user that requested the
// dependant document?
/*ok*/ $sQuery = array("SELECT DDI.id AS instance_id, DDI.document_title, U.name AS user_name, 'Escalate' AS escalate " .
"FROM $default->dependant_document_instance_table DDI " .
"INNER JOIN $default->users_table AS U ON DDI.user_id = U.id " .
"WHERE DDI.parent_document_id = ?", $oDocument->getID());
$aColumns = array("document_title", "user_name", "escalate");
$aColumnHeaders = array(_("Document Title"), _("User"));
$aColumnTypes = array(1,1,3);
$aDBColumnArray = array("instance_id");
$aQueryStringVariableNames = array("fInstanceID");
$aLinkURLs = array(2=>generateControllerUrl("escalateDependantDocument"));
$oPatternTableSqlQuery = & new PatternTableSqlQuery($sQuery, $aColumns, $aColumnTypes, $aColumnHeaders, "500", $aLinkURLs, $aDBColumnArray, $aQueryStringVariableNames);
$oPatternTableSqlQuery->setTableHeading(_("Dependant documents"));
$oPatternTableSqlQuery->setDisplayColumnHeadings(true);
$sToRender .= "\t\n";
return $sToRender;
}
function renderDocumentVersions ($oDocument) {
$aVersions = Document::getByLiveDocument($oDocument);
$sToRender = "\n";
$sToRender .= "| Metadata Version | Modified date | Document Version |
\n";
$sToRender .= "\n";
$iDocumentID = $oDocument->getID();
$sLink = generateControllerLink('viewDocument', "fDocumentID=$iDocumentID");
$sDocumentLink = generateControllerLink("downloadDocument", "fDocumentID=$iDocumentID");
$sToRender .= sprintf('| %s (Live) | %s | %s |
%s', $sLink, $oDocument->getMetadataVersion(), $oDocument->getLastModifiedDate(), $sDocumentLink, $oDocument->getVersion(), "\n");
foreach ($aVersions as $oVersion) {
$iDocumentVersionID = $oVersion->getVersion();
if ($iDocumentVersionID == $oDocument->getVersion()) {
$sDocumentLink = generateControllerLink("downloadDocument", "fDocumentID=$iDocumentID");
} else {
$sDocumentLink = generateControllerLink("downloadDocument", "fDocumentID=$iDocumentID&fVersion=$iDocumentVersionID");
}
$sToRender .= "\n";
$iVersionID = $oVersion->getID();
$sLink = generateControllerLink('viewDocument', "fDocumentID=$iDocumentID&fVersionID=$iVersionID");
$sToRender .= sprintf('| %s | %s', $sLink, $oVersion->getMetadataVersion(), "\n");
$sToRender .= sprintf('%s | %s', $oVersion->getLastModifiedDate(), "\n");
$sToRender .= sprintf('%s | %s', $sDocumentLink, $oVersion->getVersion(), "\n");
$sToRender .= "
\n";
}
$sToRender .= "\n";
$sToRender .= "
\n";
return $sToRender;
}
// This array exists only to give gettext a hint that these buttons
// should be added to the .po file.
$aTranslatedButtons = array(
_("View"),
_("Email"),
_("Checkout"),
_("Delete"),
_("History"),
_("Move"),
_("Subscribe"),
_("Unsubscribe"),
_("Discussion"),
_("Archive"),
_("Link New Doc"),
_("Publish"),
);
$aImageNameToLabel = array(
"dependentdoc" => "Link new doc",
);
function displayButton($sAction, $sQueryString, $sImageName, $sDisabledText = "", $sJS = "") {
global $default;
global $aImageNameToLabel;
// the active is active if there is no disabled text
$bActive = !strlen($sDisabledText) > 0;
if ($default->useTextButtons === false) {
$sImage = "
graphicsUrl/widgets/docactions/";
if ($bActive) {
$sImage .= "$sImageName.gif\"";
} else {
$sImage .= "disabled-$sImageName.gif\" title=\"$sDisabledText\"";
}
$sImage .= "/>";
} else {
if (array_key_exists($sImageName, $aImageNameToLabel)) {
$sLabel = $aImageNameToLabel[$sImageName];
} else {
$sLabel = $sImageName;
}
$sTranslatedWords = _(ucwords($sLabel));
$sLabel = strtoupper($sTranslatedWords);
if ($bActive) {
$sClass = "button";
$sJS = $sJS . " onMouseOver=\"javascript:this.style.backgroundColor='#EEEEEE';\" onMouseOut=\"javascript:this.style.backgroundColor='#FFFFFF';\"";
} else {
$sClass = "disabledbutton";
}
$sImage = "$sLabel";
}
if ($bActive) {
return generateControllerLink($sAction, $sQueryString, $sImage);
} else {
return $sImage;
}
}
/**
* Displays document action buttons
*/
function displayActionButtons($oDocument, $bEdit) {
require_once(KT_LIB_DIR . '/actions/documentaction.inc.php');
$oTemplating =& KTTemplating::getSingleton();
$oTemplate = $oTemplating->loadTemplate('ktcore/document_action');
$sToRender = "";
// XXX: Anonymous/Guest interaction
$oUser =& User::get($_SESSION["userID"]);
foreach (KTDocumentActionUtil::getDocumentActionsForDocument($oDocument, $oUser) as $oAction) {
$aInfo = $oAction->getInfo();
if (is_null($aInfo)) {
continue;
}
$sToRender .= $oTemplate->render($aInfo);
}
return $sToRender;
}
function renderSectionDiv($sDivName, $sHtml) {
global $default;
return "$sHtml
";
}
function renderDocumentSection($sSectionName, $sHeadingText, $bDisplayLink, $iDocumentID) {
if ($bDisplayLink) {
$sLink = generateControllerLink("viewDocument", "fDocumentID=$iDocumentID&fShowSection=$sSectionName", $sHeadingText);
} else {
$sLink = "$sHeadingText";
}
return '' . $sLink . '' . "\n";
}
function getPage($oDocument, $bEdit, $sStatusMessage = "") {
global $default;
$sToRender .= renderHeading(_("Document Detail"));
$sToRender .= renderDocumentPath($oDocument, true) . "\n\n";
$sToRender .= "";
$sToRender .= "";
$sToRender .= "";
$sToRender .= "| ";
// if we have a status message, then make the section links refresh to viewDocument with the fShowSection variable
// ie. effectively removes statusMessage on next click
$bDisplayLink = ($sStatusMessage) ? true : false;
$sToRender .= renderDocumentSection("documentData", _("Document Data"), $bDisplayLink, $oDocument->getID());
$sToRender .= renderDocumentSection("genericMetaData", _("Generic Meta Data"), $bDisplayLink, $oDocument->getID());
$sToRender .= renderDocumentSection("typeSpecificMetaData", _("Type Specific Meta Data"), $bDisplayLink, $oDocument->getID());
$sToRender .= renderDocumentSection("archiveSettings", _("Archive Settings"), $bDisplayLink, $oDocument->getID());
$sToRender .= renderDocumentSection("documentRouting", _("Document Routing"), $bDisplayLink, $oDocument->getID());
$sToRender .= renderDocumentSection("linkedDocuments", _("Linked Documents"), $bDisplayLink, $oDocument->getID());
$sToRender .= renderDocumentSection("metadataVersions", _("Metadata Versions"), $bDisplayLink, $oDocument->getID());
$sToRender .= " | ";
$sToRender .= " ";
$sToRender .= ' | ';
$sToRender .= "\n";
$sToRender .= displayActionButtons($oDocument, $bEdit);
$sToRender .= " \n";
$sToRender .= " |
";
$sToRender .= "| ";
$sToRender .= ' ';
$sToRender .= renderSectionDiv("documentData", renderDocumentData($oDocument, $bEdit, $sStatusMessage));
$sToRender .= renderSectionDiv("genericMetaData", renderGenericMetaData($oDocument, $bEdit));
$sToRender .= renderSectionDiv("typeSpecificMetaData", renderTypeSpecificMetaData($oDocument, $bEdit));
$sToRender .= renderSectionDiv("archiveSettings", renderDocumentArchiveSettings($oDocument, $bEdit));
if ($bEdit) {
$sToRender .= renderSectionDiv("documentRouting", renderEditableDocumentRouting($oDocument));
$sToRender .= renderSectionDiv("linkedDocuments", renderEditableLinkedDocuments($oDocument) . renderDependantDocuments($oDocument, $bEdit));
} else {
$sToRender .= renderSectionDiv("documentRouting", renderNonEditableDocumentRouting($oDocument));
$sToRender .= renderSectionDiv("linkedDocuments", renderNonEditableLinkedDocuments($oDocument, $bEdit) . renderDependantDocuments($oDocument, $bEdit));
}
$sToRender .= renderSectionDiv("metadataVersions", renderDocumentVersions($oDocument));
$sToRender .= " ";
$sToRender .= " ";
$sToRender .= " ";
$sToRender .= " ";
$sToRender .= " ";
$sToRender .= " ";
$sToRender .= " ";
$sToRender .= " ";
$sToRender .= " ";
$sToRender .= " ";
$sToRender .= " ";
$sToRender .= " ";
$sToRender .= " ";
$sToRender .= " ";
$sToRender .= " ";
$sToRender .= " |
";
$sToRender .= "
";
return $sToRender;
}
function getStatusPage($oDocument, $sStatusMessage) {
global $default;
$sToRender = "";
$sToRender .= renderHeading(_("Document Detail"));
$sToRender .= renderDocumentPath($oDocument, false) . "\n\n";
$sToRender .= "
";
// if we have a status message, then make the section links refresh to viewDocument with the fShowSection variable
// ie. effectively removes statusMessage on next click
$bDisplayLink = ($sStatusMessage) ? true : false;
$sToRender .= renderDocumentSection("documentData", _("Document Data"), $bDisplayLink, $oDocument->getID());
$sToRender .= renderDocumentSection("genericMetaData", _("Generic Meta Data"), $bDisplayLink, $oDocument->getID());
$sToRender .= renderDocumentSection("typeSpecificMetaData", _("Type Specific Meta Data"), $bDisplayLink, $oDocument->getID());
$sToRender .= renderDocumentSection("archiveSettings", _("Archive Settings"), $bDisplayLink, $oDocument->getID());
$sToRender .= renderDocumentSection("documentRouting", _("Document Routing"), $bDisplayLink, $oDocument->getID());
$sToRender .= renderDocumentSection("linkedDocuments", _("Linked Documents"), $bDisplayLink, $oDocument->getID());
$sToRender .= renderDocumentSection("metadataVersions", _("Document Versions"), $bDisplayLink, $oDocument->getID());
$sToRender .= "
";
$sToRender .= "
";
$sToRender .= renderDocumentData($oDocument, false, $sStatusMessage);
return $sToRender;
}
function getWebPublishPage($oDocument) {
global $default;
$oPatternListBox = & new PatternListBox($default->web_sites_table, "web_site_name", "id", "fWebSiteID");
$sToRender .= renderHeading(_("Document Detail"));
$sToRender .= renderDocumentPath($oDocument, false) . "\n\n";
$sToRender .= "\n";
$sToRender .= "\n\n\n\n";
$sToRender .= renderDocumentData($oDocument, $bEdit);
return $sToRender;
}
function wrapInTable($sHtml) {
return "\n\t\t\t\n";
}
?>