Esempio n. 1
0
 /**
  * add appropriate WHERE clause that filters metafiles linked to given article
  *
  * @param Article $article
  * @return MetaFileQuery
  */
 public function filterByArticle(Article $article)
 {
     if ($article->getId()) {
         $this->innerJoin('articles_files af', 'af.filesID = f.filesID');
         $this->addCondition("af.articlesID = ?", $article->getId());
     }
     return $this;
 }
Esempio n. 2
0
 /**
  * return all metafile instances linked to an article with mimetype 'image/jpeg', 'image/png', 'image/gif'
  *
  * @param Article $article
  * @param callback $callBackSort
  * @throws MetaFileException
  * @return array:\vxPHP\File\MetaFile
  */
 public static function getImagesForArticle(Article $article, $callBackSort = NULL)
 {
     $result = array();
     $mimeTypes = array('image/jpeg', 'image/png', 'image/gif');
     $files = Application::getInstance()->getDb()->doPreparedQuery("\n\t\t\tSELECT\n\t\t\t\tf.*,\n\t\t\t\tCONCAT(fo.Path, IFNULL(f.Obscured_Filename, f.File)) as FullPath\n\t\t\tFROM\n\t\t\t\tfiles f\n\t\t\t\tINNER JOIN folders fo ON f.foldersID = fo.foldersID\n\t\t\t\tINNER JOIN articles_files af ON af.filesID = f.filesID\n\t\t\tWHERE\n\t\t\t\taf.articlesID = ?\n\t\t\t\tAND f.Mimetype IN ('" . implode("','", $mimeTypes) . "')\n\t\t\tORDER BY\n\t\t\t\taf.customSort\n\t\t\t", array($article->getId()));
     foreach ($files as &$f) {
         if (isset(self::$instancesById[$f['filesID']])) {
             $file = self::$instancesById[$f['filesID']];
         } else {
             $file = new self(NULL, NULL, $f);
             self::$instancesById[$f['filesID']] = $file;
             self::$instancesByPath[$file->filesystemFile->getPath()] = $file;
         }
         $result[] = $file;
     }
     if (is_null($callBackSort)) {
         return $result;
     } else {
         if (is_callable($callBackSort)) {
             usort($result, $callBackSort);
             return $result;
         } else {
             if (is_callable("self::{$callBackSort}")) {
                 usort($result, "self::{$callBackSort}");
                 return $result;
             } else {
                 throw new MetaFileException("'{$callBackSort}' is not callable.");
             }
         }
     }
 }