ktcolumns.inc.php.tmp

来自「PHP 知识管理系统(基于树结构的知识管理系统), 英文原版的PHP源码。」· TMP 代码 · 共 587 行 · 第 1/2 页

TMP
587
字号
                $iUserId = call_user_func(array($aDataRow['document'], $this->document_field_function));            }        }        if (is_null($iUserId)) {            return '&mdash;';        }        $oUser = User::get($iUserId);        if (PEAR::isError($oUser) || $oUser == false) {            return '&mdash;';        } 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 '&nbsp;';        }        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 '&nbsp;';    }    // 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 '&nbsp;';        }        $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 '&nbsp;';        }        $oWorkflow = KTWorkflowUtil::getWorkflowForDocument($aDataRow['document']);        $oState = KTWorkflowUtil::getWorkflowStateForDocument($aDataRow['document']);        if (($oState == null) || ($oWorkflow == null)) {            return '&mdash;';        } 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 '&nbsp;';        }        // 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 '&mdash;';    }}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 '&nbsp;';        }        // 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 '&mdash;';    }}class AdvancedDownloadColumn extends AdvancedColumn {    var $namespace = 'ktcore.columns.download';    function AdvancedDownloadColumn() {        $this->label = null;    }    function renderHeader($sReturnURL) {        return '&nbsp;';    }    function renderData($aDataRow) {        // only _ever_ show this for documents.        if ($aDataRow["type"] === "folder") {            return '&nbsp;';        }        $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 '&nbsp;';        }        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 '&nbsp;';        }        $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 + -
显示快捷键?