示例#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;
 }