ktcolumns.inc.php.svn-base
来自「PHP 知识管理系统(基于树结构的知识管理系统), 英文原版的PHP源码。」· SVN-BASE 代码 · 共 601 行 · 第 1/2 页
SVN-BASE
601 行
$iUserId = null; if (($aDataRow["type"] == "folder") && (!is_null($this->folder_field_function))) { if (method_exists($aDataRow['folder'], $this->folder_field_function)) { $iUserId = call_user_func(array($aDataRow['folder'], $this->folder_field_function)); } } else if (($aDataRow["type"] == "document") && (!is_null($this->document_field_function))) { if (method_exists($aDataRow['document'], $this->document_field_function)) { $iUserId = call_user_func(array($aDataRow['document'], $this->document_field_function)); } } if (is_null($iUserId)) { return '—'; } $oUser = User::get($iUserId); if (PEAR::isError($oUser) || $oUser == false) { return '—'; } else { return htmlentities($oUser->getName(), ENT_NOQUOTES, 'UTF-8'); } } function addToFolderQuery() { return array(null, null, null); } function addToDocumentQuery() { return array(null, null, null); }}class CreatorColumn extends AdvancedUserColumn { var $document_field_function = "getCreatorID"; var $folder_field_function = "getCreatorID"; var $sortable = true; // by default var $namespace = 'ktcore.columns.creator'; function CreatorColumn() { $this->label = _kt("Creator"); // abstract. }}class AdvancedSelectionColumn extends AdvancedColumn { var $rangename = null; var $show_folders = true; var $show_documents = true; var $namespace = "ktcore.columns.selection"; function AdvancedSelectionColumn() { $this->label = ''; } function setOptions($aOptions) { AdvancedColumn::setOptions($aOptions); $this->rangename = KTUtil::arrayGet($this->aOptions, 'rangename', $this->rangename); $this->show_folders = KTUtil::arrayGet($this->aOptions, 'show_folders', $this->show_folders, false); $this->show_documents = KTUtil::arrayGet($this->aOptions, 'show_documents', $this->show_documents, false); } function renderHeader($sReturnURL) { global $main; $main->requireJSResource("resources/js/toggleselect.js"); return sprintf('<input type="checkbox" title="toggle all" onclick="toggleSelectFor(this, \'%s\')" />', $this->rangename); } // only include the _f or _d IF WE HAVE THE OTHER TYPE. function renderData($aDataRow) { $localname = htmlentities($this->rangename,ENT_QUOTES,'UTF-8'); if (($aDataRow["type"] === "folder") && ($this->show_folders)) { if ($this->show_documents) { $localname .= "_f[]"; } $v = $aDataRow["folderid"]; } else if (($aDataRow["type"] === "document") && $this->show_documents) { if ($this->show_folders) { $localname .= "_d[]"; } $v = $aDataRow["docid"]; } else { return ' '; } return sprintf('<input type="checkbox" name="%s" onclick="activateRow(this)" value="%s"/>', $localname, $v); } // no label, but we do have a title function getName() { return _kt("Multiple Selection"); }}class AdvancedSingleSelectionColumn extends AdvancedSelectionColumn { var $namespace = 'ktcore.columns.singleselection'; function AdvancedSingleSelectionColumn() { parent::AdvancedSelectionColumn(); $this->label = null; } function renderHeader() { global $main; //include some javascript to force real single selections if($this->show_folders && $this->show_documents){ $main->requireJSResource("resources/js/singleselect.js"); } return ' '; } // only include the _f or _d IF WE HAVE THE OTHER TYPE. function renderData($aDataRow) { $localname = $this->rangename; if (($aDataRow["type"] === "folder") && ($this->show_folders)) { if ($this->show_documents) { $localname .= "_f"; } $v = $aDataRow["folderid"]; } else if (($aDataRow["type"] === "document") && $this->show_documents) { if ($this->show_folders) { $localname .= "_d"; } $v = $aDataRow["docid"]; } else { return ' '; } $return = '<input type="radio" name="' . $localname . '" value="' . $v . '" '; if($this->show_folders && $this->show_documents){ $return .= 'onClick="forceSingleSelect(this)" '; } $return .='/>'; return $return; } // no label, but we do have a title function getName() { return _kt("Single Selection"); }}class AdvancedWorkflowColumn extends AdvancedColumn { var $namespace = 'ktcore.columns.workflow_state'; var $sortable = false; function AdvancedWorkflowColumn() { $this->label = _kt("Workflow State"); $this->sortable = false; } // use inline, since its just too heavy to even _think_ about using smarty. function renderData($aDataRow) { // only _ever_ show this for documents. if ($aDataRow["type"] === "folder") { return ' '; } $oWorkflow = KTWorkflowUtil::getWorkflowForDocument($aDataRow['document']); $oState = KTWorkflowUtil::getWorkflowStateForDocument($aDataRow['document']); if (($oState == null) || ($oWorkflow == null)) { return '—'; } else { return sprintf('%s <span class="descriptive">%s</span>', htmlentities($oState->getName(), ENT_NOQUOTES, 'UTF-8'), htmlentities($oWorkflow->getName(), ENT_NOQUOTES, 'UTF-8') ); } }}class CheckedOutByColumn extends AdvancedColumn { var $namespace = 'ktcore.columns.checkedout_by'; var $sortable = false; function CheckedOutByColumn() { $this->label = _kt('Checked Out By'); $this->sortable = false; } function renderData($aDataRow) { // only show this for documents. if ($aDataRow['type'] === 'folder') { return ' '; } // Check if document is checked out $bIsCheckedOut = $aDataRow['document']->getIsCheckedOut(); if($bIsCheckedOut){ // Get the user id $iUserId = $aDataRow['document']->getCheckedOutUserID(); $oUser = User::get($iUserId); $sUser = $oUser->getName(); return '<span class="descriptive">'.htmlentities($sUser, ENT_NOQUOTES, 'UTF-8').'</span>'; } return '—'; }}class DocumentTypeColumn extends AdvancedColumn { var $namespace = 'ktcore.columns.document_type'; var $sortable = false; function DocumentTypeColumn() { $this->label = _kt('Document Type'); $this->sortable = false; } function renderData($aDataRow) { // only show this for documents. if ($aDataRow['type'] === 'folder') { return ' '; } // Check if document is checked out $iDocTypeId = $aDataRow['document']->getDocumentTypeID(); if(!empty($iDocTypeId)){ $oDocumentType = DocumentType::get($iDocTypeId); $sType = $oDocumentType->getName(); return '<span class="descriptive">'.htmlentities($sType, ENT_NOQUOTES, 'UTF-8').'</span>'; } return '—'; }}class AdvancedDownloadColumn extends AdvancedColumn { var $namespace = 'ktcore.columns.download'; function AdvancedDownloadColumn() { $this->label = null; } function renderHeader($sReturnURL) { return ' '; } function renderData($aDataRow) { // only _ever_ show this for documents. if ($aDataRow["type"] === "folder") { return ' '; } $link = KTUtil::ktLink('action.php','ktcore.actions.document.view', 'fDocumentId=' . $aDataRow['document']->getId()); return sprintf('<a href="%s" class="ktAction ktDownload" title="%s">%s</a>', $link, _kt('Download Document'), _kt('Download Document')); } function getName() { return _kt('Download'); }}class DocumentIDColumn extends AdvancedColumn { var $bSortable = false; var $namespace = 'ktcore.columns.docid'; function DocumentIDColumn() { $this->label = _kt("Document ID"); } function renderData($aDataRow) { // only _ever_ show this for documents. if ($aDataRow["type"] === "folder") { return ' '; } return htmlentities($aDataRow['document']->getId(), ENT_NOQUOTES, 'UTF-8'); }}class ContainingFolderColumn extends AdvancedColumn { var $namespace = 'ktcore.columns.containing_folder'; function ContainingFolderColumn() { $this->label = _kt("View Folder"); } function renderData($aDataRow) { // only _ever_ show this for documents. if ($aDataRow["type"] === "folder") { return ' '; } $link = KTBrowseUtil::getUrlForFolder($aDataRow['document']->getFolderId()); return sprintf('<a href="%s" class="ktAction ktMoveUp" title="%s">%s</a>', $link, _kt('View Folder'), _kt('View Folder')); } function getName() { return _kt('Opening Containing Folder'); }}?>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?