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); } }
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); } }
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); } }