Example #1
0
 public function action_index()
 {
     // Если запрошен аяксом
     if ($this->request->is_ajax()) {
         // Устанавливаем заголовки json-ответа
         $this->response->headers('Content-Type', 'application/json');
         $pagealias = $this->request->param('pagealias');
         $page = ORM::factory('page')->where('alias', '=', $pagealias)->and_where('status', '=', '1')->find();
         // Если страница не найдена, выдаем ошибку
         if (!$page->loaded()) {
             throw new Kohana_HTTP_Exception_404();
         }
         $page_array['pagename'] = $page->pagename;
         $page_array['date'] = $page->date;
         $page_array['alias'] = $page->alias;
         $page_array['catalog'] = $page->catalogs->catname;
         $page_array['author'] = $page->users->username;
         $page_array['content'] = $page->content;
         echo parent::json_encode_cyr($page_array);
     } else {
         // Выбираем страницу из БД согласно алиасу
         $pagealias = $this->request->param('pagealias');
         $page = ORM::factory('page')->where('alias', '=', $pagealias)->and_where('status', '=', '1')->find();
         // Выбираем все настройки
         foreach (Kohana::$config->load('site') as $key => $value) {
             $options[$key] = Kohana::$config->load('site.' . $key);
         }
         if (!empty($page->metadesc)) {
             $options['description'] = $page->metadesc;
         }
         if (!empty($page->metakeywords)) {
             $options['keywords'] = $page->metakeywords;
         }
         // Подключаем профайлер
         if ($options['debug'] == 1) {
             $profiler = View::factory('profiler/stats');
         }
         $nav = View::factory('site/blocks/V_nav');
         $footer = View::factory('site/blocks/V_footer');
         $main = View::factory('site/index')->bind('nav', $nav)->bind('footer', $footer)->bind('options', $options)->bind('profiler', $profiler);
         $this->response->body($main);
     }
 }
Example #2
0
 public function action_index()
 {
     // Если запрошен аяксом
     if ($this->request->is_ajax()) {
         // Устанавливаем заголовки json-ответа
         $this->response->headers('Content-Type', 'application/json');
         // Если кэш включен
         if (Kohana::$config->load('site.cache') === '1') {
             if (!($pages = Cache::instance()->get('pages'))) {
                 $pages = ORM::factory('page')->where('status', '=', '1')->order_by('id')->find_all()->as_array();
                 Cache::instance()->set('pages', $pages, Date::MINUTE * 5);
             }
         } else {
             $pages = ORM::factory('page')->where('status', '=', '1')->order_by('id')->find_all()->as_array();
         }
         foreach ($pages as $page) {
             $pages_array['pagename'] = $page->pagename;
             $pages_array['date'] = $page->date;
             $pages_array['alias'] = $page->alias;
             $pages_array['catalog_alias'] = $page->catalogs->alias;
             $pages_array['catalog'] = $page->catalogs->catname;
             $pages_array['content'] = $page->content;
             $pages_array['author'] = $page->users->username;
             $pages_result[] = $pages_array;
         }
         echo parent::json_encode_cyr($pages_result);
     } else {
         // Загружаем все настройки
         $cfgsite = Kohana::$config->load('site');
         foreach ($cfgsite as $key => $value) {
             $options[$key] = Kohana::$config->load('site.' . $key);
         }
         // Подключаем профайлер
         if ($options['debug'] == 1) {
             $profiler = View::factory('profiler/stats');
         }
         $nav = View::factory('site/blocks/V_nav');
         $footer = View::factory('site/blocks/V_footer');
         $view = View::factory('site/index')->bind('options', $options)->bind('nav', $nav)->bind('footer', $footer)->bind('profiler', $profiler);
         $this->response->body($view);
     }
 }
Example #3
0
 public function action_index()
 {
     // Если запрошен аяксом
     if ($this->request->is_ajax()) {
         // Устанавливаем заголовки json-ответа
         $this->response->headers('Content-Type', 'application/json');
         $catalias = $this->request->param('catalias');
         $catalog = ORM::factory('catalog')->where('alias', '=', $catalias)->and_where('status', '=', '1')->find();
         // Если каталог не найден, выдаем ошибку
         if (!$catalog->loaded()) {
             throw new Kohana_HTTP_Exception_404();
         }
         $catalog_id = $catalog->id;
         $catalog_desc = $catalog->content;
         // Выбираем все страницы текущего каталога
         $pages = ORM::factory('page')->where('catalog_id', '=', $catalog_id)->and_where('status', '=', '1')->order_by('id')->find_all();
         foreach ($pages as $page) {
             $pages_array['pagename'] = $page->pagename;
             $pages_array['date'] = $page->date;
             $pages_array['alias'] = $page->alias;
             $pages_array['catalog_alias'] = $page->catalogs->alias;
             $pages_array['catalog'] = $page->catalogs->catname;
             $pages_array['content'] = $page->content;
             $pages_array['author'] = $page->users->username;
             $pages_result[] = $pages_array;
         }
         // Выбираем все каталоги у которых parent_id равен id текущего каталога
         $allcatalogs = ORM::factory('catalog')->where('parent_id', '=', $catalog_id)->and_where('status', '=', '1')->find_all();
         // Если такие каталоги существуют
         if (!empty($allcatalogs[0])) {
             // Выбираем страницы вложенные в каталоги текущего каталога
             foreach ($allcatalogs as $cat) {
                 $pages = ORM::factory('page')->where('catalog_id', '=', $cat->id)->and_where('status', '=', '1')->order_by('id')->find_all();
                 $allpages[] = $pages;
             }
             // Добавляем в массив все страницы
             foreach ($allpages as $catpages) {
                 foreach ($catpages as $page) {
                     $pages_array['pagename'] = $page->pagename;
                     $pages_array['date'] = $page->date;
                     $pages_array['alias'] = $page->alias;
                     $pages_array['catalog_alias'] = $page->catalogs->alias;
                     $pages_array['catalog'] = $page->catalogs->catname;
                     $pages_array['content'] = $page->content;
                     $pages_array['author'] = $page->users->username;
                     $pages_result[] = $pages_array;
                 }
             }
             $pages_result[] = (array) $catalog_desc;
             echo parent::json_encode_cyr($pages_result);
         } else {
             $pages_result[] = (array) $catalog_desc;
             echo parent::json_encode_cyr($pages_result);
         }
     } else {
         // Загружаем все настройки
         $cfgsite = Kohana::$config->load('site');
         foreach ($cfgsite as $key => $value) {
             $options[$key] = Kohana::$config->load('site.' . $key);
         }
         // Подключаем профайлер
         if ($options['debug'] === '1') {
             $profiler = View::factory('profiler/stats');
         }
         $nav = View::factory('site/blocks/V_nav');
         $footer = View::factory('site/blocks/V_footer');
         $view = View::factory('site/index')->bind('options', $options)->bind('nav', $nav)->bind('footer', $footer)->bind('profiler', $profiler);
         $this->response->body($view);
     }
 }