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; }