Пример #1
0
 /**
  * ให้ค่า instance ของ model ที่ระบุด้วย entity type และ $refId
  * @param int $type
  * @param int $refId
  * @return ActiveRecord
  */
 public static function getInstance($type, $refId, $orderNo = NULL)
 {
     $instance = null;
     switch ($type) {
         case self::TYPE_ACTIVITY:
             $instance = Activity::findOne($refId);
             break;
         case self::TYPE_BLOG:
             $instance = Blogs::findOne($refId);
             break;
         case self::TYPE_CARTOON:
             $arr = preg_split('/-/', $refId);
             $instance = CartoonChapter::findOne(array('cartoonId' => $arr[0], 'chapter' => $arr[1]));
             break;
         case self::TYPE_CONTENT:
             $instance = Content::findOne($refId);
             break;
         case self::TYPE_DOCUMENT:
             $instance = Document::findOne(array('type' => $type, 'refId' => $refId, 'itemNo' => $orderNo));
             break;
         case self::TYPE_FAQ:
             $instance = Faq::findOne($refId);
             break;
         case self::TYPE_FEEDCONTENT:
             $instance = FeedContent::findOne($refId);
             break;
         case self::TYPE_FEED:
             $instance = Feed::findOne($refId);
             break;
         case self::TYPE_GALLERY:
             $instance = Gallery::findOne($refId);
             break;
         case self::TYPE_INFOGRAPHIC:
             $instance = InfoGraphic::findOne($refId);
             break;
         case self::TYPE_LIVEREPORT:
             $instance = LiveReport::findOne($refId);
             break;
         case self::TYPE_LOTTERY:
             $instance = Lottery::findOne($refId);
             break;
         case self::TYPE_BUNNY:
         case self::TYPE_MEDIA_COLLECTION:
             $instance = MediaCollection::findOne($refId);
             break;
         case self::TYPE_NEWSPAPER:
             // temporary class for media upload
             $instance = new stdClass();
             $instance->createTime = date('Y-m-d H:i:s');
             break;
         case self::TYPE_NOVEL:
             $instance = Novel::findOne($refId);
             break;
         case self::TYPE_PERSON:
             $instance = Person::findOne($refId);
             break;
         case self::TYPE_SPORT_PLAYER:
             $instance = Player::findOne($refId);
             break;
         case self::TYPE_SPORT_TEAM:
             $instance = Team::findOne($refId);
             break;
         case self::TYPE_QUOTE:
             $instance = Quote::findOne($refId);
             break;
         case self::TYPE_WIDGET:
             $instance = Widget::findOne($refId);
             break;
         case self::TYPE_TV_ANCHOR:
             $instance = TvAnchor::findOne($refId);
             break;
         case self::TYPE_TV_PROGRAM:
             $instance = TvProgram::findOne($refId);
             break;
         case self::TYPE_TV_HIGHLIGHT:
             $instance = TvHighlight::findOne($refId);
             break;
         case self::TYPE_TV_SCHEDULE:
             $instance = TvSchedule::findOne($refId);
             break;
         case self::TYPE_USER:
             $instance = User::findOne($refId);
             break;
         case self::TYPE_VIDEO:
             $instance = Video::findOne($refId);
             break;
         case self::TYPE_VIDEO_PLAYLIST:
             $instance = VideoPlaylist::findOne($refId);
             break;
         case self::TYPE_WATCHTOPIC:
             $instance = WatchTopic::findOne($refId);
             break;
         case self::TYPE_WEATHER:
             $instance = WeatherForecast::findOne($refId);
             break;
     }
     return $instance;
 }
Пример #2
0
 /**
  * @return MediaCollection
  */
 public function getAdditionalMedia()
 {
     $collection = new MediaCollection();
     $collection->addFilter(new Ajde_Filter_Join('node_media', 'node_media.media', 'media.id'));
     $collection->addFilter(new Ajde_Filter_Join('node', 'node.id', 'node_media.node'));
     $collection->addFilter(new Ajde_Filter_Where('node_media.node', Ajde_Filter::FILTER_EQUALS, $this->getPK()));
     $collection->orderBy('node_media.sort');
     return $collection;
 }
Пример #3
0
 private function _unused()
 {
     $used = new MediaCollection();
     $unused = new MediaCollection();
     $unused->addFilter(new Ajde_Filter_Where('id', Ajde_Filter::FILTER_EQUALS, '-9999'));
     $db = Ajde_Db::getInstance()->getConnection();
     /** @var MediaModel $media */
     foreach ($used as $media) {
         $stmt = $db->query('SELECT id FROM node WHERE media = ' . $media->getPK());
         $stmt->execute();
         $node = $stmt->rowCount();
         $stmt = $db->query('SELECT id FROM node_media WHERE media = ' . $media->getPK());
         $stmt->execute();
         $nodeMedia = $stmt->rowCount();
         $meta = 0;
         $stmt = $db->query('SELECT * FROM node_meta INNER JOIN meta ON meta.id = node_meta.meta AND node_meta.`value` <> \'\' AND meta.type = \'media\' AND node_meta.`value` = ' . $media->getPK());
         $stmt->execute();
         $meta += $stmt->rowCount();
         $stmt = $db->query('SELECT * FROM setting_meta INNER JOIN meta ON meta.id = setting_meta.meta AND setting_meta.`value` <> \'\' AND meta.type = \'media\' AND setting_meta.`value` = ' . $media->getPK());
         $stmt->execute();
         $meta += $stmt->rowCount();
         if ($node == 0 && $nodeMedia == 0 && $meta == 0) {
             $unused->add($media);
         }
     }
     return $unused;
 }