public static function start() { // стартуем сессию с названием из конфигурации session_name(JADMIN_SESSION_NAME); session_start(); joosCore::set_admin_mode(); // это что бы в админке запоминались фильтры, последние страницы и прочие вкусняшки joosSession::init_user_state(); }
public static function get_code($alt = null) { if ($alt) { $random = $alt . date('Ymd'); } else { $random = date('dmY'); } return 'joosCSRF-' . self::hash(JPATH_BASE . $random . (joosCore::user() ? joosCore::user()->id : 'null')); }
/** * Получение системного сообщения * @return string - текст сообщения */ public static function get() { $_s = session_id(); if (!joosCore::is_admin() && empty($_s)) { session_name(joosSession::session_cookie_name()); session_start(); } $message = joosRequest::session('joostina.mosmsg', false); if ($message != '' && joosString::strlen($message) > 300) { // выводим сообщения не длинее 300 символов $message = joosString::substr($message, 0, 300); } /** @var $_SESSION array */ unset($_SESSION['joostina.mosmsg']); return $message ? '<div class="b-system_message">' . $message . '</div>' : ''; }
/** * Автоматическое определение и запуск метода действия * @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('Метод не найден'); } }
public function profile_edit() { if (modelUsers::is_loged() == false) { joosRoute::redirect(JPATH_SITE, 'Вы не авторизованы'); } $user = modelUsers::current(); if (joosCore::user()->id != $user->id) { joosRoute::redirect(JPATH_SITE, 'Ай, ай!'); } // если данные пришли POST методом - то это сохранение профиля if (joosRequest::is_post()) { return self::profile_edit_save(); } else { joosDocument::instance()->set_page_title($user->user_name); joosBreadcrumbs::instance()->add($user->user_name); joosFilter::make_safe($user); return array('user' => $user); } }
/** * Редактирование своих пользовательстких данных * * @static * @return array */ public function my_profile_edit() { $current_user = joosCore::user(); $_GET['id'] = $current_user->id; return parent::edit(); }
<body> <div class="navbar navbar-fixed-top"> <div class="navbar-inner"> <div class="container"> <a class="brand" href="index2.php">Joostina CMS</a> <div class="nav-collapse"><?php joosModuleAdmin::load_by_name('admin_menu'); ?> </div> <ul class="nav pull-right"> <li class="dropdown"> <a data-toggle="dropdown" class="dropdown-toggle" href="#">Выйти <?php echo sprintf('@%s', joosCore::user()->user_name); ?> <b class="caret"></b></a> <ul class="dropdown-menu"> <li><a href="index2.php?option=users&menu=my_profile_edit&task=my_profile_edit">Редактировать профиль</a></li> <li class="divider"></li> <li><a href="<?php echo JPATH_SITE; ?> " target="_blank">Перейти на сайт</a></li> <li><a href="index2.php?option=logout">Выйти</a></li> </ul> </li> <li> </li> </ul>
public function before_store() { $comment_text = $this->comment_text; $comment_text = joosText::text_clean($comment_text); $comment_text = joosText::word_limiter($comment_text, 200); $this->comment_text = $comment_text; $this->user_id = joosCore::user()->id; $this->user_ip = joosRequest::user_ip(); // высчитываем родителя и заполняем дерево if ($this->parent_id > 0) { $parent = new modelComments(); $parent->load($this->parent_id); $this->level = $parent->level + 1; $this->path = $parent->path . ',' . $parent->id; } else { $this->path = 0; } $this->state = 1; return true; }
/** * Получение объекта текущего пользователя * @return modelUsers */ public static function current() { // TODO тут надо как-то унифицировать return joosCore::is_admin() ? joosCoreAdmin::user() : self::instance(); }
public static function is_allowed($full_operations_name) { $user_id = joosCore::user()->id; return self::check_access_for_user_id($full_operations_name, $user_id); }
/** * Менюшка и кнопка выхода */ public static function logged() { return array('state' => 'logged', 'view' => 'logged', 'user' => joosCore::user(), 'user_login_information' => self::get_login_info()); }
public static function set_admin_mode() { self::$is_admin = TRUE; }
<?php /** * Frontend - точка входа * * @package Core * @author JoostinaTeam * @copyright (C) 2007-2012 Joostina Team * @license MIT License http://www.opensource.org/licenses/mit-license.php * Информация об авторах и лицензиях стороннего кода в составе Joostina CMS: docs/copyrights */ // Установка флага родительского файла define('_JOOS_CORE', 1); // рассчет времени работы define('JOOS_START', microtime(true)); // рассчет памяти function_exists('memory_get_usage') ? define('JOOS_MEMORY_START', memory_get_usage()) : null; define('JPATH_BASE', __DIR__); // предстартовые конфигурации require JPATH_BASE . '/app/bootstrap.php'; // подключение главного файла - ядра системы require_once JPATH_BASE . '/core/joostina.php'; try { joosCore::instance()->init()->route(); echo joosController::instance()->run()->render(); echo !JDEBUG ?: joosController::show_debug(); } catch (Exception $e) { echo $e; }
public static function render($element_param, $key, $value, $obj_data, $params) { return joosHtml::hidden($key, joosCore::user()->id); }