Пример #1
0
 public function appProject($lang, $slug)
 {
     $project = Dic::valueBySlugs('projects', $slug, ['fields', 'textfields']);
     #Helper::tad($project);
     if (!$project) {
         App::abort(404);
     }
     $project = DicLib::loadImages($project, ['image']);
     $project_page = Page::by_id($project->page_id);
     #Helper::tad($project_page);
     if (!$project_page) {
         App::abort(404);
     }
     $prev_project = null;
     $next_project = null;
     $prev_project = Dic::valuesBySlug('projects', function ($query) use($project) {
         $query->where('lft', '<', $project->lft);
         $query->orderBy('lft', 'ASC');
         $query->take(1);
     }, ['fields', 'textfields'], true, true, true);
     #Helper::ta($prev_project);
     $next_project = Dic::valuesBySlug('projects', function ($query) use($project) {
         $query->where('lft', '>', $project->lft);
         $query->orderBy('lft', 'ASC');
         $query->take(1);
     }, ['fields', 'textfields'], true, true, true);
     #Helper::tad($next_project);
     return View::make(Helper::layout('project'), compact('project', 'project_page', 'prev_project', 'next_project'));
 }
Пример #2
0
 private function getCity($args)
 {
     $city = $city_slug = null;
     #dd($args);
     $direct_route = false;
     $route = Route::current();
     if (is_object($route)) {
         $route_name = $route->getName();
         if (strpos($route_name, '_direct')) {
             $direct_route = true;
         }
     }
     #dd($direct_route);
     if (count($args) == 2) {
         $city_slug = $args[0];
     } elseif (count($args) == 1 || count($args) == 0) {
         /**
          * Вот тут костылек: первым параметром может являться как slug города, так и id сущности.
          * В зависимости от того, генерится ли ссылка на сущность в дефолтном городе или нет.
          * Выход - именовать все прямые роуты (с явным указанием города) по маске: *_direct.
          * И проверять текущий роут - прямой он или нет.
          */
         if ($direct_route) {
             $city_slug = $args[0];
         } else {
             $city = Session::get(self::$user_city_cache_key);
             #Helper::tad($city);
             $city_slug = $city->slug;
         }
     }
     if (is_object($city)) {
         return $city;
     }
     #dd($city_slug);
     if ($city_slug) {
         $city = Dic::valueBySlugs('city', $city_slug, ['fields']);
     }
     #Helper::tad($city);
     return $city;
 }