Exemplo n.º 1
0
 public function view()
 {
     $id = joosController::instance()->router->param('id');
     $item = new modelNews();
     $item->id = $id;
     $item->find() ? null : joosPages::page404();
     joosDocument::instance()->set_page_title($item->title)->add_meta_tag('description', 'Новости компании');
     return array('item' => $item);
 }
Exemplo n.º 2
0
 public function view()
 {
     $id = joosController::instance()->router->param('id');
     $blog_item = new modelBlogs();
     $blog_item->load($id) && $blog_item->state == 1 ? null : joosPages::page404('Блогозапись не найдена');
     $blog_category = new modelBlogsCategory();
     $blog_category->load($blog_item->category_id) && $blog_category->state == 1 ? null : joosPages::page404('Категория блога не найдена');
     $author = new modelUsers();
     $author->load($blog_item->user_id) && $author->state == 1 ? null : joosPages::page404('Автор блогозаписи не найден');
     joosDocument::instance()->set_page_title($blog_item->title)->add_meta_tag('description', 'Блоги');
     joosBreadcrumbs::instance()->add($blog_item->title);
     return array('blog_item' => $blog_item, 'blog_category' => $blog_category, 'author' => $author);
 }
Exemplo n.º 3
0
 public function view()
 {
     $slug = self::$param['page_name'];
     $page = new modelPages();
     $page->slug = $slug;
     $page->find() ? null : joosPages::page404();
     joosDocument::instance()->set_page_title($page->title)->add_meta_tag('description', $page->meta_description)->add_meta_tag('keywords', $page->meta_keywords)->seo_tag('yandex-vf1', md5(time()))->seo_tag('rating', false);
     // тэг rating - скрываем
     joosBreadcrumbs::instance()->add($page->title);
     // если для текущего действия аквирован счетчик хитов - то обновим его
     joosHit::add('pages', $page->id, 'view');
     // передаём параметры записи и категории в которой находится запись для оформления
     return array('page' => $page);
 }
Exemplo n.º 4
0
 /**
  * Автоматическое определение и запуск метода действия
  * @todo добавить сюда события events ДО, ПОСЛЕ и ВМЕСТО выполнения задачи контроллера
  */
 public function run()
 {
     $router = $this->router = joosCore::instance()->get_router();
     $controller_class_name = 'actions' . ucfirst($router->param('controller'));
     $controller = new $controller_class_name();
     $action = $router->param('action');
     JDEBUG ? joosDebug::add($controller_class_name . '->' . $action) : null;
     if (method_exists($controller_class_name, $action)) {
         $results = $controller->{$action}();
         $page_body = $this->views($results);
         // главное содержимое - стек вывода компонента - mainbody
         joosDocument::set_body($page_body);
         return $this;
     } else {
         //  в контроллере нет запрашиваемого метода
         joosPages::page404('Метод не найден');
     }
 }
Exemplo n.º 5
0
 public function route()
 {
     $routes = self::all();
     $params = NULL;
     foreach ($routes as $name => $route) {
         if ($params = $route->matches($this->current_url)) {
             $this->params = $params;
             $this->current_route = $name;
             return true;
         }
     }
     // если включена отладка - скажем что именно не так
     if (JDEBUG) {
         throw new joosException('Не найдено правило роутинга для ссылки :location', array(':location' => $this->current_url));
     } else {
         // отладка не включена - просто перекинем на 404 страницу с понятным текстом
         joosPages::page404('Такая ссылка на сайте невозможна');
     }
 }