示例#1
0
 function folderOrDocument($sPath, $bAction = false)
 {
     $sFileName = basename($sPath);
     $sFolderPath = dirname($sPath);
     $aFolderInfo = KTBrowseUtil::_folderOrDocument($sFolderPath);
     if ($aFolderInfo === false) {
         return $aFolderInfo;
     }
     list($iFolderID, $iDocumentID) = $aFolderInfo;
     if ($iDocumentID && $bAction) {
         $aActions = array_keys(KTDocumentActionUtil::getAllDocumentActions());
         if (in_array($sFileName, $aActions)) {
             return array($iFolderID, $iDocumentID, $sFileName);
         }
         return false;
     }
     $sQuery = 'SELECT id FROM folders WHERE parent_id = ? AND name = ?';
     $aParams = array($iFolderID, $sFileName);
     $id = DBUtil::getOneResultKey(array($sQuery, $aParams), 'id');
     if (PEAR::isError($id)) {
         // XXX: log error
         return false;
     }
     if ($id) {
         return array($id, null, null);
     }
     $sQuery = sprintf('SELECT d.id FROM %s AS d' . ' LEFT JOIN %s AS dm ON (d.metadata_version_id = dm.id) LEFT JOIN %s AS dc ON (dm.content_version_id = dc.id)' . ' WHERE d.folder_id = ? AND dc.filename = ?', KTUtil::getTableName(documents), KTUtil::getTableName('document_metadata_version'), KTUtil::getTableName('document_content_version'));
     $aParams = array($iFolderID, $sFileName);
     $iDocumentID = DBUtil::getOneResultKey(array($sQuery, $aParams), 'id');
     if (PEAR::isError($iDocumentID)) {
         // XXX: log error
         return false;
     }
     if ($iDocumentID) {
         return array($iFolderID, $iDocumentID, null);
     }
     if ($bAction) {
         // $aActions = array_keys(KTFolderAction::getFolderActions());
         $aActions = array('ktcore.delete');
         if (in_array($sFileName, $aActions)) {
             return array($iFolderID, null, $sFileName);
         }
     }
     return false;
 }
示例#2
0
 function do_saveactions()
 {
     $disabled_actions = (array) $_REQUEST['fActions'];
     $states = KTWorkflowState::getByWorkflow($this->oWorkflow);
     $actions = KTUtil::keyArray(KTDocumentActionUtil::getAllDocumentActions(), 'getName');
     $this->startTransaction();
     foreach ($states as $oState) {
         $disable = array();
         $state_disabled = (array) $disabled_actions[$oState->getId()];
         if (!empty($state_disabled)) {
             foreach ($actions as $name => $oAction) {
                 if ($state_disabled[$name]) {
                     $disable[] = $name;
                 }
             }
         }
         $res = KTWorkflowUtil::setDisabledActionsForState($oState, $disable);
     }
     $this->successRedirectTo('actionsoverview', _kt('Disabled actions updated.'));
 }