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; }
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.')); }