ktbulkactions.php.svn-base

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

SVN-BASE
1,282
字号
            $this->errorRedirectTo('collectinfo', _kt('Invalid target folder selected'));            exit(0);        }        if ($_REQUEST['fReturnAction'] != 'search2') {            if($this->iTargetFolderId == $this->oFolder->getId()){                $this->errorRedirectTo('collectinfo', _kt('Invalid target folder selected: Target folder is the same as the current folder.'));                exit(0);            }        }        // does the user have write permission        if(!Permission::userHasFolderWritePermission($this->oTargetFolder)) {            $this->errorRedirectTo('collectinfo', _kt('You do not have permission to move items to this location'));            exit(0);        }        return parent::do_performaction();    }    function perform_action($oEntity) {        if(is_a($oEntity, 'Document')) {            return KTDocumentUtil::move($oEntity, $this->oTargetFolder, $this->oUser, $this->sReason);        } else if(is_a($oEntity, 'Folder')) {            return KTFolderUtil::move($oEntity, $this->oTargetFolder, $this->oUser, $this->sReason);        }    }}class KTBulkCopyAction extends KTBulkAction {    var $sName = 'ktcore.actions.bulk.copy';    var $_sPermission = 'ktcore.permissions.read';    var $_bMutator = true;    function getDisplayName() {        return _kt('Copy');    }    function form_collectinfo() {        $cancelUrl = $this->getReturnUrl();        $oForm = new KTForm;        $oForm->setOptions(array(            'identifier' => 'ktcore.actions.bulk.copy.form',            'label' => _kt('Copy Items'),            'submit_label' => _kt('Copy'),            'action' => 'performaction',            'fail_action' => 'collectinfo',            'cancel_url' => $cancelUrl,            'context' => $this,        ));        // Setup the collection for move display.        require_once(KT_LIB_DIR . '/browse/DocumentCollection.inc.php');        $collection = new AdvancedCollection();        $oCR =& KTColumnRegistry::getSingleton();        $col = $oCR->getColumn('ktcore.columns.title');        //$col->setOptions(array('qs_params'=>array('fMoveCode'=>$sMoveCode,        //                                          'fFolderId'=>$oFolder->getId(),        //                                          'action'=>'startMove')));        $collection->addColumn($col);        $qObj = new FolderBrowseQuery($this->oFolder->iId);        $exclude=array();        foreach( $this->oEntityList->aFolderIds as $folderid)        {        	$exclude[] = $folderid+0;        }       	$qObj->exclude_folders = $exclude;        $collection->setQueryObject($qObj);        $aOptions = $collection->getEnvironOptions();        $aOptions['result_url'] = KTUtil::addQueryString($_SERVER['PHP_SELF'],                                                         array('fFolderId' => $this->oFolder->iId,                                                               'action' => 'collectinfo'));        $collection->setOptions($aOptions);	$oWF =& KTWidgetFactory::getSingleton();	$oWidget = $oWF->get('ktcore.widgets.collection',			     array('label' => _kt('Target Folder'),				   'description' => _kt('Use the folder collection and path below to browse to the folder you wish to copy the documents into.'),				   'required' => true,				   'name' => 'fFolderId',				   'broken_name' => true,                                   'folder_id' => $this->oFolder->iId,				   'collection' => $collection));        $oForm->addInitializedWidget($oWidget);        $oForm->addWidget(            array('ktcore.widgets.reason',array(                'name' => 'reason',                'label' => _kt('Reason'),                'description' => _kt('The reason for copying these documents and folders, for historical purposes.'),                'value' => null,                'required' => true,                )        ));        $oForm->setValidators(array(            array('ktcore.validators.string', array(                'test' => 'reason',                'output' => 'reason',            )),        ));        return $oForm;    }    function check_entity($oEntity) {        if(is_a($oEntity, 'Document')) {            if(!KTDocumentUtil::canBeMoved($oEntity)) {                return PEAR::raiseError(_kt('Document cannot be copied'));            }        }        return parent::check_entity($oEntity);    }    // info collection step    function do_collectinfo() {        $this->store_lists();        $this->get_lists();	$oTemplating =& KTTemplating::getSingleton();	$oTemplate = $oTemplating->loadTemplate('ktcore/bulk_action_info');        return $oTemplate->render(array('context' => $this,                                        'form' => $this->form_collectinfo()));    }    function do_performaction() {        $this->store_lists();        $this->get_lists();        $oForm = $this->form_collectinfo();        $res = $oForm->validate();        if (!empty($res['errors'])) {            $oForm->handleError();        }        $this->sReason = $_REQUEST['data']['reason'];        $this->iTargetFolderId = $_REQUEST['data']['fFolderId'];        $this->oTargetFolder = Folder::get($this->iTargetFolderId);        $_REQUEST['fReturnData'] = '';        $_REQUEST['fFolderId'] = $this->iTargetFolderId;        // does it exists        if(PEAR::isError($this->oTargetFolder)) {            return PEAR::raiseError(_kt('Invalid target folder selected'));        }        // does the user have write permission        if(!Permission::userHasFolderWritePermission($this->oTargetFolder)) {            $this->errorRedirectTo('collectinfo', _kt('You do not have permission to move items to this location'));        }        return parent::do_performaction();    }    function perform_action($oEntity) {        if(is_a($oEntity, 'Document')) {            return KTDocumentUtil::copy($oEntity, $this->oTargetFolder, $this->sReason);        } else if(is_a($oEntity, 'Folder')) {            return KTFolderUtil::copy($oEntity, $this->oTargetFolder, $this->oUser, $this->sReason);        }    }}class KTBulkArchiveAction extends KTBulkAction {    var $sName = 'ktcore.actions.bulk.archive';    var $_sPermission = 'ktcore.permissions.write';    var $_bMutator = true;    function getDisplayName() {        return _kt('Archive');    }    function form_collectinfo() {        $cancelUrl = $this->getReturnUrl();        $oForm = new KTForm;        $oForm->setOptions(array(            'identifier' => 'ktcore.actions.bulk.archive.form',            'label' => _kt('Archive Items'),            'submit_label' => _kt('Archive'),            'action' => 'performaction',            'fail_action' => 'collectinfo',            'cancel_url' => $cancelUrl,            'context' => $this,        ));        $oForm->addWidget(            array('ktcore.widgets.reason',array(                'name' => 'reason',                'label' => _kt('Reason'),                'description' => _kt('The reason for archiving these documents and folders, for historical purposes.'),                'value' => null,                'required' => true,                )        ));        $oForm->setValidators(array(            array('ktcore.validators.string', array(                'test' => 'reason',                'output' => 'reason',            )),        ));        return $oForm;    }    function check_entity($oEntity) {        if((!is_a($oEntity, 'Document')) && (!is_a($oEntity, 'Folder'))) {                return PEAR::raiseError(_kt('Document cannot be archived'));        }        if($oEntity->isSymbolicLink()){        	return PEAR::raiseError(_kt("It is not possible to archive a shortcut. Please archive the target document or folder instead."));        }        if(is_a($oEntity, 'Document')){            if(!KTWorkflowUtil::actionEnabledForDocument($oEntity, 'ktcore.actions.document.archive')){                return PEAR::raiseError(_kt('Document cannot be archived as it is restricted by the workflow.'));            }        }        return parent::check_entity($oEntity);    }	/**     * build the confirmation form that is shown when symlinks are affected by this action.     *     * @return KTForm the form     */	function form_confirm() {	    $cancelUrl = $this->getReturnUrl();        $oForm = new KTForm;        $oForm->setOptions(array(            'label' => _kt('Are you sure?'),            'description' => _kt('There are shortcuts linking to some of the documents or folders in your selection; continuing will automatically delete the shortcuts. Would you like to continue?'),            'action' => 'collectinfo',            'fail_action' => 'main',            'cancel_url' => $cancelUrl,            'submit_label' => _kt('Continue'),            'context' => $this,        ));        $oForm->setWidgets(array(        array('ktcore.widgets.hidden',array(        	'name' => 'archive_confirmed',        	'value' => '1'        ))));        return $oForm;    }    /**     * Shows the confirmation form if symlinks are affected by the current action     *     * @return Template HTML     */	function do_confirm(){		$this->store_lists();        $this->get_lists();    	$this->oPage->setBreadcrumbDetails(_kt('Confirm archive'));    	$oTemplate =& $this->oValidator->validateTemplate('ktcore/bulk_action_confirm');        $oForm = $this->form_confirm();    	$oTemplate->setData(array(            'context' => &$this,            'form' => $oForm,        ));        return $oTemplate->render();    }    // info collection step    function do_collectinfo() {        $this->store_lists();        $this->get_lists();        //check if a the symlinks deletion confirmation has been passed yet		if(KTutil::arrayGet($_REQUEST['data'],'archive_confirmed') != 1){			//check if there are actually any symlinks involved.        	if($this->symlinksLinkingToCurrentList()){        		$this->redirectTo("confirm");        	}        }		$oTemplating =& KTTemplating::getSingleton();		$oTemplate = $oTemplating->loadTemplate('ktcore/bulk_action_info');        return $oTemplate->render(array('context' => $this,                                        'form' => $this->form_collectinfo()));    }    function do_performaction() {        $this->store_lists();        $this->get_lists();        $oForm = $this->form_collectinfo();        $res = $oForm->validate();        if (!empty($res['errors'])) {            $oForm->handleError();        }        $this->sReason = $_REQUEST['data']['reason'];        return parent::do_performaction();    }    function perform_action($oEntity) {        if(is_a($oEntity, 'Document')) {            $res = KTDocumentUtil::archive($oEntity, $this->sReason);            if(PEAR::isError($res)){                return $res;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?