예제 #1
0
 public function boot()
 {
     // App::register( 'Laravelrus\LocalizedCarbon\LocalizedCarbonServiceProvider' );
     $alias = AliasLoader::getInstance();
     // $alias->alias( 'LocalizedCarbon', 'Laravelrus\LocalizedCarbon\LocalizedCarbon' );
     // $alias->alias( 'DiffFormatter'  , 'Laravelrus\LocalizedCarbon\DiffFactoryFacade' );
     $alias->alias('Carbon', '\\Carbon\\Carbon');
     $alias->alias('CW', '\\Clockwork\\Support\\Laravel\\Facade');
     /*
      * Register menu items for the RainLab.Pages plugin
      */
     Event::listen('pages.menuitem.listTypes', function () {
         return ['repertoire' => 'Репертуар', 'troupe' => 'Труппа', 'playbill' => 'Афиша'];
     });
     Event::listen('pages.menuitem.getTypeInfo', function ($type) {
         if ($type == 'repertoire') {
             return PerformanceModel::getMenuTypeInfo($type);
         }
         if ($type == 'troupe') {
             return PersonModel::getMenuTypeInfo($type);
         }
         if ($type == 'playbill') {
             return EventModel::getMenuTypeInfo($type);
         }
     });
     Event::listen('pages.menuitem.resolveItem', function ($type, $item, $url, $theme) {
         if ($type == 'repertoire') {
             return PerformanceModel::resolveMenuItem($item, $url, $theme);
         }
         if ($type == 'troupe') {
             return PersonModel::resolveMenuItem($item, $url, $theme);
         }
         if ($type == 'playbill') {
             return EventModel::resolveMenuItem($item, $url, $theme);
         }
     });
 }
예제 #2
0
 protected function listPosts()
 {
     $params = $this->params;
     /*
      * List all posts
      */
     $posts = EventModel::listFrontEnd($params);
     /*
      * Prepare for View
      */
     $active = Carbon::now();
     $posts->each(function ($post) use($params, &$active) {
         // Assign URLs
         extract($params);
         // if ($post->relation instanceof ArticleModel)
         //     $post->relation->setUrl($newsPage, $this->controller);
         if ($post->relation instanceof PerformanceModel) {
             $post->relation->setUrl($performancePage, $this->controller);
         }
         $date = Carbon::parse($post->event_date);
         if ($active != 'active' && $date->gte($active)) {
             $post->active = $active = 'active';
         }
         // Grouping
         if ($this->inCollection($post->relation->taxonomy, 'title', 'Детские спектакли')) {
             $this->group['child'][] = $post;
         } else {
             $this->group['normal'][] = $post;
         }
     });
     // CW::info($this->group);
     CW::info(['Events' => $posts]);
     return $posts;
 }