public function generate_xml()
 {
     // это что бы роутер не жаловался
     joosRoute::init();
     $map = modelSitemap::get_map(true);
     $map->xml_output();
     joosRoute::redirect('index2.php', 'Карта сайта обновлена');
 }
 /**
  * Главная страница компонента, вывод списка объектов
  *
  * @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);
 }
 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 #4
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 #5
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 #6
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) {