Exemple #1
0
 private function as_html(array $variables)
 {
     $controller = $this->router->param('controller');
     $action = $this->router->param('action');
     $template = isset($variables['template']) ? $variables['template'] : 'default';
     $view = isset($variables['view']) ? $variables['view'] : $action;
     extract($variables, EXTR_OVERWRITE);
     $viewfile = JPATH_BASE . DS . 'app' . DS . 'components' . DS . $controller . DS . 'views' . DS . $view . DS . $template . '.php';
     joosFile::exists($viewfile) ? require $viewfile : null;
 }
Exemple #2
0
 public static function lists($params = array())
 {
     $cats = new modelCategories();
     $cats = $cats->get_list(array('where' => '`group` = "content" AND state = 1', 'key' => 'id', 'order' => 'lft ASC'));
     $cats_ids = array_keys($cats);
     if ($params['xml']) {
         $items = new modelContent();
         $items = $items->get_list(array('where' => 'state = 1 AND category_id IN (' . implode(', ', $cats_ids) . ')'));
         $items_by_cats = array();
         foreach ($items as $item) {
             $item->loc = joosRoute::href('content_view', array('slug' => $item->slug));
             $item->lastmod = $item->created_at;
             $items_by_cats[$item->category_id][] = $item;
         }
     }
     $results = array();
     foreach ($cats as $cat) {
         $cat->loc = joosRoute::href('category_view', array('id' => $cat->id, 'slug' => $cat->slug));
         $cat->lastmod = date('Y-m-d');
         $cat->title = $cat->name;
         $cat->level = $cat->level + 1;
         $results[] = $cat;
         if ($params['xml']) {
             if (isset($items_by_cats[$cat->id])) {
                 foreach ($items_by_cats[$cat->id] as $item) {
                     $item->level = $cat->level + 1;
                     $results[] = $item;
                 }
             }
         }
     }
     return $results;
 }
 public function generate_xml()
 {
     // это что бы роутер не жаловался
     joosRoute::init();
     $map = modelSitemap::get_map(true);
     $map->xml_output();
     joosRoute::redirect('index2.php', 'Карта сайта обновлена');
 }
Exemple #4
0
 public static function lists($param)
 {
     $cat_id = $param['cat_id'];
     $sql = sprintf("SELECT b.id, b.title, b.created_at AS lastmod, c.slug as cat_slug FROM #__blog AS b\n                INNER JOIN #__blog_category AS c ON ( c.id=b.category_id AND c.state=1 AND c.id=%s )\n                WHERE b.state=1 ORDER BY b.id DESC", $cat_id);
     $objs = joosDatabase::instance()->set_query($sql)->load_object_list();
     foreach ($objs as $obj) {
         $obj->loc = joosRoute::href('blog_view', array('id' => $obj->id, 'cat_slug' => $obj->cat_slug));
     }
     return $objs;
 }
 /**
  * Главная страница компонента
  *
  * @static
  * @return array
  */
 public function index()
 {
     $blogs = new modelBlogs();
     $page = isset(self::$param['page']) ? self::$param['page'] : 0;
     $pager = new joosPager(joosRoute::href('blog'), $blogs->count('WHERE state = 1'), 5);
     $pager->paginate($page);
     $blog_items = $blogs->get_list(array('select' => 'b.*, bc.title as category_title, bc.slug as category_slug, u.id AS user_id, u.user_name', 'join' => ' AS b' . ' INNER JOIN #__blogs_category AS bc ON( b.category_id = bc.id )' . ' INNER JOIN #__users AS u ON( b.user_id = u.id )', 'where' => 'b.state = 1', 'order' => 'b.id DESC', 'limit' => $pager->limit, 'offset' => $pager->offset));
     joosDocument::instance()->set_page_title('Блоги')->add_meta_tag('description', 'Блоги');
     return array('blogs_items' => $blog_items, 'pager' => $pager);
 }
 /**
  * Главная страница компонента
  *
  * @static
  * @return array
  */
 public function index()
 {
     $news = new modelNews();
     $page = isset(self::$param['page']) ? self::$param['page'] : 0;
     $pager = new joosPager(joosRoute::href('news'), $news->count('WHERE state = 1'), 5);
     $pager->paginate($page);
     $news = $news->get_list(array('where' => 'state = 1', 'order' => 'id DESC', 'limit' => $pager->limit, 'offset' => $pager->offset));
     joosDocument::instance()->set_page_title('Новости')->add_meta_tag('description', 'Новости компании');
     joosBreadcrumbs::instance()->add('Новости');
     return array('news' => $news, 'pager' => $pager);
 }
 /**
  * Главная страница компонента, вывод списка объектов
  *
  * @static
  * @return array
  */
 public function index()
 {
     $search_result = array();
     $total = 0;
     $search_word = isset(self::$param['search_word']) ? self::$param['search_word'] : '';
     if (isset($_POST['search'])) {
         $search_word = joosRequest::post('search');
         $search_word = joosText::simple_clean($search_word);
         $search_word = joosFilter::htmlspecialchars($search_word);
         joosRoute::redirect(joosRoute::href('search_word', array('search_word' => $search_word)));
     }
     $search_word = joosText::simple_clean($search_word);
     joosFilter::make_safe($search_word);
     if (strlen($search_word) > 100) {
         $search_word = joosString::substr($search_word, 0, 99);
     }
     if ($search_word && joosString::strlen($search_word) < 3) {
         $search_word = '';
     }
     if ($search_word != '') {
         $results = joosDatabase::instance()->set_query("SELECT t.id, t.title,t.`fulltext` as text, t.type_id, t.type_cat_id, t.created_at, t.anons_image_id, t.file_id,'topic' AS itemtype,\n                g.title AS gamename, t.game_id, g.slug AS game_slug\n                FROM #__texts as t\n                LEFT JOIN #__games AS g ON g.id=t.game_id\n                WHERE LOWER(t.title) LIKE LOWER('%{$search_word}%') OR  LOWER(t.`fulltext`) LIKE LOWER('%{$search_word}%') ")->load_object_list();
         $rows = array();
         $_n = count($results);
         for ($i = 0, $n = $_n; $i < $n; $i++) {
             $rows = array_merge((array) $rows, (array) $results[$i]);
         }
         $total = count($rows);
         for ($i = 0; $i < $total; $i++) {
             $text =& $rows[$i]->text;
             $search_words = explode(' ', $search_word);
             $needle = $search_words[0];
             $text = modelSearch::prepare_search_content($text, 500, $needle);
             foreach ($search_words as $k => $hlword) {
                 $search_words[$k] = htmlspecialchars(stripslashes($hlword), ENT_QUOTES, 'UTF-8');
             }
             $searchRegex = implode('|', $search_words);
             $text = preg_replace('/' . $searchRegex . '/iu', '<span class="highlight">\\0</span>', $text);
         }
         $search_result = $rows;
     }
     $page = self::$param['page'];
     $pager = new joosPager(joosRoute::href('search_word', array('search_word' => $search_word)), $total, 10);
     $pager->paginate($page);
     // для первой (0) страницы и если есть результаты поиска - запишем словопоиск в базу, для дальнейших ленивых автокомплитов
     $total > 0 && $page == 0 ? modelSearch::add($search_word) : null;
     return array('search_word' => $search_word, 'search_result' => $search_result, 'pager' => $pager);
 }
Exemple #8
0
 /**
  * @static
  * @param $user_name
  * @param  bool   $password
  * @param  array  $params
  * @return string
  *
  * @todo требуется рефакторинг, модуль должен возвращать true или false
  */
 public function login($user_name, $password = false, array $params = array())
 {
     $params += array('redirect' => true);
     $return = (string) joosRequest::param('return');
     if ($return && !(strpos($return, 'com_registration') || strpos($return, 'com_login'))) {
         //$return = $return;
     } elseif (isset($_SERVER['HTTP_REFERER'])) {
         $return = $_SERVER['HTTP_REFERER'];
     } else {
         $return = JPATH_SITE;
     }
     $user = new modelUsers();
     $user->user_name = $user_name;
     $user->find();
     // если акаунт заблокирован
     if (!$user->id) {
         if (isset($params['return'])) {
             return json_encode(array('error' => 'Такого пользователя нет'));
         } else {
             joosRoute::redirect($return, 'Такого пользователя нет');
         }
     }
     // если акаунт заблокирован
     if ($user->state == 0) {
         if (isset($params['return'])) {
             return json_encode(array('error' => _LOGIN_BLOCKED));
         } else {
             joosRoute::redirect($return, _LOGIN_BLOCKED);
         }
     }
     //Проверям пароль
     if (!self::check_password($password, $user->password)) {
         if (isset($params['return'])) {
             return json_encode(array('error' => _LOGIN_INCORRECT));
         } else {
             joosRoute::redirect($return, _LOGIN_INCORRECT);
         }
     }
     // пароль проверили, теперь можно заводить сессиию и ставить куки авторизации
     $session = new modelUsersSession();
     $session->time = time();
     $session->guest = 0;
     $session->user_name = $user->user_name;
     $session->user_id = $user->id;
     $session->is_admin = 0;
     // сгенерием уникальный ID, захеширем его через sessionCookieValue и запишем в базу
     $session->generate_id();
     // записываем в базу данные о авторизованном пользователе и его сессии
     $session->store();
     // формируем и устанавливаем пользователю куку что он автоизован
     $sessionCookieName = joosSession::session_cookie_name();
     // в значении куки - НЕ хешированное session_id из базы
     setcookie($sessionCookieName, $session->get_cookie(), false, '/', JPATH_COOKIE);
     // очищаем базу от всех прежних сессий вновь авторизовавшегося пользователя
     $query = "DELETE FROM #__users_session WHERE  is_admin=0 AND session_id != " . $session->_db->get_quoted($session->session_id) . " AND user_id = " . (int) $user->id;
     joosDatabase::instance()->set_query($query)->query();
     // обновляем дату последнего визита авторизованного пользователя
     $user->lastvisit_date = JCURRENT_SERVER_TIME;
     $user->store();
     $token = new modelUsersTokens();
     $token->generate_token($user->id);
     if (isset($params['return'])) {
         return json_encode(array('user' => $user));
     } else {
         joosRoute::redirect($return);
     }
 }
Exemple #9
0
echo $search_word;
?>
" />
            </div>
            <button class="search_button" type="submit">&rarr;</button>
        </form>
    </div>

    <?php 
if ($search_result) {
    for ($index = $pager->low; $index < $pager->high + 1; $index++) {
        if (isset($search_result[$index])) {
            $row = $search_result[$index];
            $section = joosHTML::anchor(joosRoute::href('game_index'), 'Что-то');
            $row->anons_image = JPATH_SITE_IMAGES . '/' . joosFile::make_file_location((int) $row->image_id) . '/image.png';
            $row->view_href = joosRoute::href('opa_view', array('id' => $row->id, 'alias' => $row->game_slug));
            ?>
                    <div class="item">
                        <h2><?php 
            echo $section . ' &rarr; ';
            echo joosHTML::anchor($row->view_href, $row->title);
            ?>
</h2>
                        <?php 
            if ($row->anons_image) {
                ?>
                            <a class="thumb" href="<?php 
                echo $row->view_href;
                ?>
">
                                <img src="<?php 
Exemple #10
0
?>
</a>
        </li>

        <li class="date"><i class="icon-time"></i> <?php 
echo joosDateTime::russian_date('d F, Y');
?>
</li>

        <li class="tags">
            <i class="icon-tags"></i>
            <a title="<?php 
echo joosFilter::htmlspecialchars($blog_category->title);
?>
" href="<?php 
echo joosRoute::href('blog_cat', array('category_slug' => $blog_category->slug));
?>
"><?php 
echo $blog_category->title;
?>
</a>
        </li>
    </ul>

    <div class="post-text">
        <p><?php 
echo $blog_item->text_full;
?>
</p>
    </div>
Exemple #11
0
 public function route()
 {
     $this->router = new joosRoute();
     $this->router->route();
     return $this;
 }
Exemple #12
0
 * Joostina! - свободное программное обеспечение распространяемое по условиям лицензии GNU/GPL
 * Для получения информации о используемых расширениях и замечаний об авторском праве, смотрите файл help/copyright.php.
 */
// запрет прямого доступа
defined('_JOOS_CORE') or exit;
?>

<?php 
foreach ($pages as $page) {
    ?>

    <div class="row">
        <div class="span12">
            <h2>
                <a href="<?php 
    echo joosRoute::href('pages_view', array('page_name' => $page->slug));
    ?>
">
                    <?php 
    echo $page->title;
    ?>
                </a>
            </h2>
            <p><?php 
    echo $page->text;
    ?>
</p>
        </div>
    </div>

<?php 
Exemple #13
0
            <a title="<?php 
    echo joosFilter::htmlspecialchars($blog_item->title);
    ?>
" href="<?php 
    echo joosRoute::href('blog_cat', array('category_slug' => $blog_item->category_slug));
    ?>
"><?php 
    echo $blog_item->category_title;
    ?>
</a>
        </li>
    </ul>

    <div class="post-text">
        <p><?php 
    echo $blog_item->text_intro;
    ?>
</p>
    </div>

    <a class="btn btn-large btn-primary" href="<?php 
    echo joosRoute::href('blog_view', array('category_slug' => $blog_item->category_slug, 'id' => $blog_item->id));
    ?>
">Читать дальше</a>
</article>
<?php 
}
?>

<?php 
echo $pager->output;
Exemple #14
0
            <li><a class="js-login-modal-replace">Войти</a></li>
            <li><a href="#">Забыли пароль?</a></li>
            <li class="divider"></li>
            <li><a href="#">Регистрация</a></li>
        </ul>
    </li>
</ul>

<div class="modal hide fade" id="modal-login_form">
     <div class="modal-header">
         <a class="close" data-dismiss="modal">×</a>
         <h3>Вход</h3>
     </div>
     <div class="modal-body">
         <form class="form-horizontal" action="<?php 
echo joosRoute::href('login');
?>
" method="post">
             <div class="control-group">
                 <label class="control-label" for="inp-login">Логин:</label>
                 <div class="controls">
                     <input type="text" class="input-medium" id="inp-login" name="user_name">
                 </div>
             </div>

             <div class="control-group">
                 <label class="control-label" for="inp-password">Пароль:</label>
                 <div class="controls">
                     <input type="password" class="input-medium" id="inp-password" name="password">
                 </div>
             </div>
Exemple #15
0
    <h5>Восстановление пароля</h5>

    <div class="menu_inside_submenu">
        <ul class="menu_inside_submenu_ul active_ul by_statuses">
            <li>
                <span>
                    <a title="Регистрация" href="<?php 
echo joosRoute::href('register');
?>
">Регистрация</a>
                </span>
            </li>
            <li class="menu_inside_submenu_active">
                <span>
                    <a title="Восстановление пароля" href="<?php 
echo joosRoute::href('lostpassword');
?>
">Восстановление
                        пароля</a>
                </span>
            </li>
        </ul>
    </div>

    <form action="<?php 
throw new joosException('Переделать!');
?>
" method="post">
        <dl class="form_lostpassword">
            <dt><label for="user_name_f">Введите имя пользователя</label></dt>
            <dd><input type="text" name="user_name" id="user_name_f" size="40" value="" class="inputbox" maxlength="20"/>
Exemple #16
0
                </span>
            </li>
            <li>
                <span>
                    <a title="Восстановление пароля" href="<?php 
echo joosRoute::href('lostpassword');
?>
">Восстановление
                        пароля</a>
                </span>
            </li>
        </ul>
    </div>

    <form action="<?php 
echo joosRoute::href('register');
?>
" method="post" id="reg_form">

        <div class="errors"><?php 
echo $user->get_errors();
?>
</div>
        <dl class="form_registration">
            <dt><label for="user_name">Имя пользователя:</label></dt>
            <dd><input type="text" name="user_name" id="user_name" size="40" value="<?php 
echo $user->user_name;
?>
"
                       class="inputbox" maxlength="10"/></dd>
Exemple #17
0
define('_JOOS_CORE', 1);
// рассчет памяти
function_exists('memory_get_usage') ? define('_MEM_USAGE_START', memory_get_usage()) : null;
// считаем время за которое сгенерирована страница
$sysstart = microtime(true);
// корень файлов панели управления
define('JPATH_BASE_ADMIN', __DIR__);
require_once dirname(JPATH_BASE_ADMIN) . DIRECTORY_SEPARATOR . 'core' . DIRECTORY_SEPARATOR . 'joostina.php';
require_once JPATH_BASE . DS . 'core' . DS . 'admin.root.php';
joosDocument::header();
// работа с сессиями начинается до создания главного объекта взаимодействия с ядром
joosCoreAdmin::start();
// стартуем пользователя
joosCoreAdmin::init_user();
if (helperAcl::is_allowed('admin_panel::init') !== true) {
    joosRoute::redirect(JPATH_SITE_ADMIN, 'В доступе отказано');
}
ob_start();
joosAutoadmin::dispatch();
joosDocument::set_body(ob_get_clean());
ob_start();
// начало вывода html
// загрузка файла шаблона
$template_file = JPATH_BASE . DS . 'app' . DS . 'templates' . DS . JTEMPLATE_ADMIN . DS . 'index.php';
if (file_exists($template_file)) {
    require_once $template_file;
} else {
    throw new joosException('Файл index.php шаблона :template_name не найден', array(':template_name' => JTEMPLATE_ADMIN));
}
// подсчет времени генерации страницы
if (JDEBUG) {
Exemple #18
0
<?php

defined('_JOOS_CORE') or exit;
/*
 * Конфиг главного меню сайта
 */
return array('Главная' => array('title' => '', 'href' => joosRoute::href('default')), 'Новости' => array('title' => '', 'href' => joosRoute::href('news')), 'Блоги' => array('title' => '', 'href' => joosRoute::href('blog')), 'Вёрстка здесь' => array('title' => '', 'href' => false, 'children' => array('Блог' => array('title' => '', 'href' => joosRoute::href('layouts', array('tpl' => 'blog_index'))), 'Блог. Пост' => array('title' => '', 'href' => joosRoute::href('layouts', array('tpl' => 'blog_post'))), 'Пользователи. Список' => array('title' => '', 'href' => joosRoute::href('layouts', array('tpl' => 'users_index'))))));
Exemple #19
0
 */
?>
<h1>Новости</h1>

<ul class="news-list unstyled">
    <?php 
foreach ($news as $item) {
    ?>
    <li>
        <div class="date"><?php 
    echo joosDateTime::russian_date('d F в H:m', strtotime($item->created_at));
    ?>
</div>
        <h2>
            <a class="news-title" href="<?php 
    echo joosRoute::href('news_view', array('id' => $item->id));
    ?>
">
                <?php 
    echo $item->title;
    ?>
            </a>
        </h2>

        <p><?php 
    echo $item->introtext;
    ?>
</p>
    </li>
    <?php 
}
 private static function save_register($validator)
 {
     $user = new modelUsers();
     $user->bind($_POST);
     if ($user->check($validator) && $user->save($_POST)) {
         modelUsers::login($user->user_name, $_POST['password']);
     } else {
         joosRoute::redirect(JPATH_SITE);
         //userHtml::register($user, $validator);
     }
 }
Exemple #21
0
 /**
  * Смена статуса (поля 'state')
  */
 public static function publish_unpublish($state = 1)
 {
     joosCSRF::check_code();
     $cid = (array) joosRequest::array_param('cid');
     $option = joosRequest::param('option');
     $obj_data = joosAutoadmin::get_active_model_obj();
     $obj_data->set_state_group($cid, $state) ? joosRoute::redirect('index2.php?option=' . $option . '&menu=' . static::$active_menu, 'Выполнено успешно') : joosRoute::redirect('index2.php?option=' . $option . '&menu=' . static::$active_menu, 'Ошибка смены статуса');
 }
Exemple #22
0
?>
 <b class="caret"></b>
        </a>
        <ul class="dropdown-menu">
            <li>
                           <a href="<?php 
echo joosRoute::href('user_view', array('id' => $user->id, 'user_name' => $user->user_name));
?>
">Перейти в профиль</a>
                    </li>
                       <li><a href="<?php 
echo joosRoute::href('user_edit');
?>
">Настройки профиля</a></li>
                    <li class="divider"></li>
                    <li class="logout">
                           <form action="<?php 
echo joosRoute::href('logout');
?>
" method="post" id="m-auto_logout">
                               <button type="submit" class="btn">Выйти</button>
                               <input type="hidden" name="<?php 
echo joosCSRF::get_code(1);
?>
" value="1" />
                           </form>
                    </li>
        </ul>
    </li>
</ul>
Exemple #23
0
                <h1><?php 
echo $user->user_name;
?>
                    <small>(<?php 
echo $user->user_name;
?>
)</small>
                </h1>
            </div>
        </div>
    </div>

    <h2>Редактирование профиля</h2>

    <form class="form-horizontal" action="<?php 
echo joosRoute::href('user_edit');
?>
" method="post">
        <fieldset>
            <legend>Основные данные</legend>

            <div class="control-group">
                <label for="real_name" class="control-label">Реальное имя</label>

                <div class="controls">
                    <input type="text" value="<?php 
echo $user->real_name;
?>
" class="input-xlarge" id="real_name" name="real_name">
                </div>
            </div>