Exemplo n.º 1
0
 /**
  * Заполним ссылки на посты и, если передан параметр exists, удалим элементы, для которых нет постов.
  */
 protected function fillTimeLineItem(LibItemDb $libItem, TimeLineItem $tlItem, ArrayAdapter $params)
 {
     $post = BlogManager::inst()->getPostByIdent($libItem->getIdent(), false);
     if ($post) {
         $tlItem->setLink(BlogManager::inst()->postUrl($post));
     }
     return !$params->bool('exists') || !!$post;
 }
Exemplo n.º 2
0
 /**
  * Метод конвертирует запись в базе для сущности библиотеки в элемент хронологической шкалы.
  * Если элемент не должен отображаться на временной шкале 
  * (не задано начало события или метод фильтрации исключил данное событие), вернётся null.
  * 
  * @return TimeLineItem
  */
 private function convertLibItemDb2TimeLineItem(LibItemDb $libItem, ArrayAdapter $params)
 {
     if (!$libItem->getDtStart()) {
         //Если нет даты начала - событие не стоит брать
         return null;
     }
     $tlItem = TimeLineItem::inst($libItem->getName(), $libItem->getIdent(), $libItem->getDtStart(), $libItem->getDtStop());
     //Обложка
     $tlItem->setImage($this->getCover($libItem->getIdent(), TimeLineManager::COVERS_DIM));
     //Контент
     $tlItem->setContent($libItem->getContent());
     //Заполним данными
     if ($this->fillTimeLineItem($libItem, $tlItem, $params)) {
         return $tlItem;
     }
     return null;
 }
Exemplo n.º 3
0
 protected function buildComposition(ArrayAdapter $params)
 {
     $items = array();
     /* @var $pp PostsProcessor */
     foreach (Handlers::getInstance()->getPostsProcessors() as $pp) {
         foreach ($pp->getPosts() as $post) {
             $items[] = $post;
         }
     }
     $events = array();
     /* @var $post Post */
     foreach ($items as $post) {
         $postType = $post->getPostType();
         $pp = Handlers::getInstance()->getPostsProcessorByPostType($postType);
         $dt_start = DatesTools::inst()->uts2dateInCurTZ($post->getDtPublication(), 'Y-m-d');
         $rec = TimeLineItem::inst($post->getName(), IdHelper::ident($post), $dt_start);
         $rec->setImage($pp->getCoverDi($post->getIdent(), TimeLineManager::COVERS_DIM));
         $rec->setLink($pp->postUrl($post->getId()));
         switch ($postType) {
             case POST_TYPE_ISSUE:
                 $rec->setColorSchema(TimeLineItem::COLOR_SCHEMA_GREEN);
                 break;
             case POST_TYPE_BLOG:
                 $rec->setColorSchema(TimeLineItem::COLOR_SCHEMA_BLUE);
                 break;
             case POST_TYPE_TRAINING:
                 $rec->setColorSchema(TimeLineItem::COLOR_SCHEMA_RED);
                 break;
         }
         $rec->setContent($pp->getPostContentProvider($post->getId())->getPostContentShowcase()->getContent());
         $events[] = $rec;
     }
     $composite = new TimeLineItemsComposite($events);
     $composite->colorOneByOne();
     return $composite;
 }