action.php.svn-base
来自「PHP 知识管理系统(基于树结构的知识管理系统), 英文原版的PHP源码。」· SVN-BASE 代码 · 共 197 行
SVN-BASE
197 行
<?php/** * $Id$ * * KnowledgeTree Community Edition * Document Management Made Simple * Copyright (C) 2008 KnowledgeTree Inc. * Portions copyright The Jam Warehouse Software (Pty) Limited * * This program is free software; you can redistribute it and/or modify it under * the terms of the GNU General Public License version 3 as published by the * Free Software Foundation. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more * details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * * You can contact KnowledgeTree Inc., PO Box 7775 #87847, San Francisco, * California 94120-7775, or email info@knowledgetree.com. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU General Public License version 3. * * In accordance with Section 7(b) of the GNU General Public License version 3, * these Appropriate Legal Notices must retain the display of the "Powered by * KnowledgeTree" logo and retain the original copyright notice. If the display of the * logo is not reasonably feasible for technical reasons, the Appropriate Legal Notices * must display the words "Powered by KnowledgeTree" and retain the original * copyright notice. * Contributor( s): ______________________________________ * */require_once('config/dmsDefaults.php');require_once(KT_LIB_DIR . '/actions/actionregistry.inc.php');require_once(KT_LIB_DIR . '/dispatcher.inc.php');/* * Using KTStandardDispatcher for errorPage, overriding handleOutput as * the document action dispatcher will handle that. *//** * Dispatcher for action.php/actionname * * This dispatcher looks up the action from the Action Registry, and * then chains onto that action's dispatcher. */class KTActionDispatcher extends KTStandardDispatcher { /** * Default dispatch * * Find the action, and then use its dispatcher. Error out nicely * if we aren't so lucky. */ function do_main() { $this->error = false; $action = KTUtil::arrayGet($_SERVER, 'PATH_INFO'); $action = trim($action); $action = trim($action, '/'); if (empty($action)) { $this->error = true; $this->errorPage(_kt('No action given')); } $oRegistry =& KTActionRegistry::getSingleton(); $aActionInfo = $oRegistry->getActionByNsname($action); if (empty($aActionInfo)) { $this->error = true; $this->errorPage(sprintf(_kt('No such action exists in %s'), APP_NAME)); } $sFilename = $aActionInfo[1]; if (!empty($sFilename)) { require_once($sFilename); } $oAction = new $aActionInfo[0]; $oAction->dispatch(); } function json_main() { return $this->do_main(); } function getBulkReturnUrl(){ $sReturnAction = $_REQUEST['fReturnAction']; $sReturnData = $_REQUEST['fReturnData']; $sAction = 'main'; $qs = ''; switch ($sReturnAction){ case 'browse': $sReturnData = (empty($sReturnData)) ? $_REQUEST['fFolderId'] : $sReturnData; $sTargetUrl = KTBrowseUtil::getUrlForFolder(Folder::get($sReturnData)); break; case 'simpleSearch': $sTargetUrl = KTBrowseUtil::getSimpleSearchBaseUrl(); $extra = 'fSearchableText='.$sReturnData; break; case 'booleanSearch': $sTargetUrl = KTBrowseUtil::getBooleanSearchBaseUrl(); $sAction = 'performSearch'; $extra = 'boolean_search_id='.$sReturnData; break; case 'search2': $sTargetUrl = KTBrowseUtil::getSearchResultURL(); $sAction = 'searchResults'; break; default: $sTargetUrl = $sReturnAction; $sAction = ''; } $qs = (!empty($sAction))? 'action='.$sAction : ''; $qs .= (!empty($extra))? '&'.$extra : ''; $sTargetUrl = KTUtil::addQueryString($sTargetUrl, $qs); return $sTargetUrl; } function do_bulkaction() { $act = (array) KTUtil::arrayGet($_REQUEST, 'submit',null); $targets = array_keys($act); if (!empty($targets)) { $target = $targets[0]; } else { $this->errorRedirectToBrowse(_kt('No action selected.')); exit(0); } $aFolderSelection = KTUtil::arrayGet($_REQUEST, 'selection_f' , array()); $aDocumentSelection = KTUtil::arrayGet($_REQUEST, 'selection_d' , array()); $oFolder = Folder::get(KTUtil::arrayGet($_REQUEST, 'fFolderId', 1)); if (PEAR::isError($oFolder)) { $redirectUrl = $this->getBulkReturnUrl(); if(!empty($redirectUrl)){ $this->addErrorMessage(_kt('Invalid folder selected.')); redirect($redirectUrl); exit(0); } $this->errorRedirectToBrowse(_kt('Invalid folder selected.')); exit(0); } if (empty($aFolderSelection) && empty($aDocumentSelection)) { $redirectUrl = $this->getBulkReturnUrl(); if(!empty($redirectUrl)){ $this->addErrorMessage(_kt('Please select documents or folders first.')); redirect($redirectUrl); exit(0); } $this->errorRedirectToBrowse(_kt('Please select documents or folders first.'), sprintf('fFolderId=%d', $oFolder->getId())); exit(0); } // prepare for passing to bulk actions $oActionRegistry =& KTActionRegistry::getSingleton(); $oAction =& $oActionRegistry->initializeAction($target, $this->oUser); if(!$oAction || PEAR::isError($oAction)) { $this->errorRedirectToBrowse(_kt('No such action.')); exit(0); } $oAction->oFolder = $oFolder; $oEntityList = new KTEntityList($aDocumentSelection, $aFolderSelection); $oAction->setEntityList($oEntityList); $oAction->redispatch('action', 'do_', $this); // exit(0); } /** * Handle output from this dispatcher. * * If there's an error in _this_ dispatcher, use the standard * surroundings. If not, don't put anything around the output - the * chained dispatcher will take care of that. */ function handleOutput ($data) { if ($this->bJSONMode || $this->error) { parent::handleOutput($data); } else { print $data; } }}$d = new KTActionDispatcher();$d->dispatch();
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?