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('Такая ссылка на сайте невозможна');
     }
 }
Exemplo n.º 6
0
 public static function check_code($alt = null, $method = 'post')
 {
     switch (strtolower($method)) {
         case 'get':
             $validate = joosRequest::get(self::get_code($alt), 0);
             break;
         case 'request':
             $validate = joosRequest::request(self::get_code($alt), 0);
             break;
         case 'post':
         default:
             $validate = joosRequest::post(self::get_code($alt), 0);
             break;
     }
     if (!$validate) {
         joosPages::page403();
     }
     if (!isset($_SERVER['HTTP_USER_AGENT'])) {
         joosPages::page403();
     }
     if (!$_SERVER['REQUEST_METHOD'] == 'POST') {
         joosPages::page403();
     }
 }
Exemplo n.º 7
0
 /**
  * Получение инстанции для работы с базой данных
  * @return joosDatabaseMysqli - объект базы данных
  */
 public static function instance()
 {
     // отметка получения инстенции базы данных
     JDEBUG ? joosDebug::inc('joosDatabaseMysqli::instance()') : null;
     if (self::$instance === NULL) {
         $db_config = joosConfig::get('db');
         $database = new self($db_config['host'], $db_config['user'], $db_config['password'], $db_config['name']);
         if ($database->_error_num) {
             $error_message = $database->_error_msg;
             joosPages::error_database($error_message);
         }
         self::$instance = $database;
     }
     return self::$instance;
 }
Exemplo n.º 8
0
 public function __construct($message = '', array $params = array())
 {
     if (JDEBUG) {
         // при включенной отладке покажем полные данные о ошибке
         parent::__construct(strtr($message, $params));
     } else {
         // при выключенной отладке - общую информацию о системе
         joosPages::error_database(strtr($message, $params));
     }
 }