コード例 #1
0
ファイル: admin.root.php プロジェクト: joostina/joostina
 public static function start()
 {
     // стартуем сессию с названием из конфигурации
     session_name(JADMIN_SESSION_NAME);
     session_start();
     joosCore::set_admin_mode();
     // это что бы в админке запоминались фильтры, последние страницы и прочие вкусняшки
     joosSession::init_user_state();
 }
コード例 #2
0
ファイル: csrf.php プロジェクト: joostina/joostina
 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'));
 }
コード例 #3
0
ファイル: flashmessage.php プロジェクト: joostina/joostina
 /**
  * Получение системного сообщения
  * @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>' : '';
 }
コード例 #4
0
ファイル: controller.php プロジェクト: joostina/joostina
 /**
  * Автоматическое определение и запуск метода действия
  * @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('Метод не найден');
     }
 }
コード例 #5
0
 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);
     }
 }
コード例 #6
0
 /**
  * Редактирование своих пользовательстких данных
  *
  * @static
  * @return array
  */
 public function my_profile_edit()
 {
     $current_user = joosCore::user();
     $_GET['id'] = $current_user->id;
     return parent::edit();
 }
コード例 #7
0
ファイル: index.php プロジェクト: joostina/joostina
<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>
コード例 #8
0
ファイル: model.comments.php プロジェクト: joostina/joostina
 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;
 }
コード例 #9
0
ファイル: model.users.php プロジェクト: joostina/joostina
 /**
  * Получение объекта текущего пользователя
  * @return modelUsers
  */
 public static function current()
 {
     // TODO тут надо как-то унифицировать
     return joosCore::is_admin() ? joosCoreAdmin::user() : self::instance();
 }
コード例 #10
0
ファイル: model.acls.php プロジェクト: joostina/joostina
 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);
 }
コード例 #11
0
ファイル: login.php プロジェクト: joostina/joostina
 /**
  * Менюшка и кнопка выхода
  */
 public static function logged()
 {
     return array('state' => 'logged', 'view' => 'logged', 'user' => joosCore::user(), 'user_login_information' => self::get_login_info());
 }
コード例 #12
0
ファイル: joostina.php プロジェクト: joostina/joostina
 public static function set_admin_mode()
 {
     self::$is_admin = TRUE;
 }
コード例 #13
0
ファイル: init.php プロジェクト: joostina/joostina
<?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;
}
コード例 #14
0
 public static function render($element_param, $key, $value, $obj_data, $params)
 {
     return joosHtml::hidden($key, joosCore::user()->id);
 }