public function register()
 {
     $validator = UserValidations::registration();
     $user = new modelUsers();
     $user->bind($_POST);
     if (!$user->check($validator)) {
         $error_hash = $validator->GetErrors();
         $errors = '';
         foreach ($error_hash as $inp_err) {
             $errors .= '' . $inp_err . ' |  ';
         }
         echo json_encode(array('error' => 'Ошибки: ' . $errors));
         return false;
     }
     if ($user->save($_POST)) {
         $password = joosRequest::post('password');
         $response = json_decode(modelUsers::login($user->user_name, $password, array('return' => 1)), true);
         if (isset($response['error'])) {
             echo json_encode(array('error' => $response['error']));
             return false;
         } else {
             echo json_encode(array('success' => 'всё пучком'));
             return true;
         }
     } else {
         //userHtml::register($user, $validator);
         echo json_encode(array('error' => 'Что-то не так с данными для регистрации'));
         return false;
     }
 }
 /**
  * Генерация ссылки на страницу
  *
  * @return string|json string
  */
 public function slug_generator()
 {
     $title = joosRequest::post('title', '');
     // формируем из введённого заголовка страницы валидный UTL-адрес
     $slug = joosText::text_to_url($title);
     echo json_encode(array('slug' => $slug));
     return;
 }
 public function add_comment()
 {
     $obj_option = joosRequest::post('obj_option');
     $obj_id = joosRequest::int('obj_id', 0);
     $comment_text = joosRequest::post('comment_text');
     $parent_id = joosRequest::int('parent_id', 0);
     $comment = new modelComments();
     $comment->obj_option = $obj_option;
     $comment->obj_id = $obj_id;
     $comment->comment_text = $comment_text;
     $comment->parent_id = $parent_id;
     $comment->store();
     return array();
 }
 /**
  * Главная страница компонента, вывод списка объектов
  *
  * @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);
 }
 public function upload()
 {
     // активное правило загрузки для файла
     $rules_name = joosRequest::post('rules_name');
     joosUpload::init($rules_name);
     $upload_result = array();
     $check = joosUpload::check();
     if ($check === true) {
         $upload_result = joosUpload::actions_before() + $upload_result;
         $upload_result = joosUpload::easy_upload(joosUpload::get_input_name(), joosUpload::get_upload_location()) + $upload_result;
         $upload_result = joosUpload::actions_after($upload_result) + $upload_result;
         // удаляем физически файл если проверки не прошли в пользователю выдаём ошибку
         if ($upload_result['success'] !== true) {
             joosFile::delete($upload_result['file_base_location']);
         }
     } else {
         $upload_result = $check;
     }
     // подчищаем секретные данные
     unset($upload_result['file_base_location']);
     return $upload_result;
 }
Exemple #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();
     }
 }
 /**
  * Авторизация пользователя
  *
  * @static
  *
  */
 public function login()
 {
     joosCSRF::check_code(1);
     $user_name = joosRequest::post('user_name');
     $password = joosRequest::post('password');
     modelUsers::login($user_name, $password);
 }
Exemple #8
0
 public static function autoajax()
 {
     //$option = joosRequest::param('option');
     // выполняемая задача
     $task = joosRequest::param('task');
     // идентификатор запрашиваемого элемента
     $obj_id = joosRequest::int('obj_id', 0, $_POST);
     // ключ-название запрашиваемого элемента
     $obj_key = joosRequest::post('obj_key');
     // название объекта запрашиваемого элемента
     $model = joosRequest::param('obj_model');
     if (!$model) {
         return false;
     }
     // пустой объект для складирования результата
     $return_onj = new stdClass();
     if (class_exists($model)) {
         // создаём объект класса
         $obj = new $model();
         switch ($task) {
             case 'status_change':
                 $obj->load($obj_id);
                 // меняем состояние объекта на противоположное
                 $obj->change_state($obj_key);
                 // получаем настройки полей
                 $fields_info = $obj->get_fieldinfo();
                 $fields_info[$obj_key] = array_merge_recursive($fields_info[$obj_key], array('html_table_element_param' => array('statuses' => array(0 => 'Скрыто', 1 => 'Опубликовано'), 'images' => array(0 => 'publish_x.png', 1 => 'publish_g.png'))));
                 // формируем ответ из противоположных элементов текущему состоянию
                 $return_onj->image = isset($fields_info[$obj_key]['html_table_element_param']['images'][!$obj->{$obj_key}]) ? $fields_info[$obj_key]['html_table_element_param']['images'][!$obj->{$obj_key}] : 'error.png';
                 $return_onj->mess = isset($fields_info[$obj_key]['html_table_element_param']['statuses'][!$obj->{$obj_key}]) ? $fields_info[$obj_key]['html_table_element_param']['statuses'][!$obj->{$obj_key}] : 'ERROR';
                 $return_onj->new_class = $obj->{$obj_key} ? 'icon-remove' : 'icon-ok';
                 break;
             default:
                 return false;
                 break;
         }
         echo json_encode($return_onj);
         return true;
     }
     $return_onj->image = 'error.png';
     $return_onj->mess = 'error-class';
     echo json_encode($return_onj);
     return false;
 }
 public function codegenerator()
 {
     $template_vars_default = array('component_title' => '', 'component_name' => '', 'component_description' => '', 'component_author' => 'Joostina Team', 'component_authoremail' => '*****@*****.**', 'component_copyright' => '(C) 2007-2012 Joostina Team');
     $template_vars = array();
     foreach ($template_vars_default as $var => $default_value) {
         $value = joosRequest::post($var, false);
         $template_vars[':' . $var] = $value ? $value : $default_value;
     }
     $template_vars[':component_name_camelcase'] = joosInflector::camelize($template_vars[':component_name']);
     $template_path_root = JPATH_BASE . DS . 'app' . DS . 'components' . DS . 'coder' . DS . 'templates' . DS . 'component' . DS;
     $template_files = array('controller.component_name', 'controller.component_name.ajax', 'controller.admin.component_name', 'controller.admin.component_name.ajax');
     $return = array();
     $create_files = array();
     foreach ($template_files as $template_file) {
         $template_body = joosFile::get_content($template_path_root . $template_file);
         $file_body = strtr($template_body, $template_vars);
         $file_name = str_replace('component_name', $template_vars[':component_name'], $template_file);
         $return[$template_file] = sprintf('%s.php<br /><textarea class="span10" rows="10">%s</textarea>', $file_name, $file_body);
         $create_files[$file_name] = $file_body;
     }
     return array('success' => true, 'body' => implode("\n", $return), 'component_name' => $template_vars[':component_name'], 'files_body' => $create_files);
 }
Exemple #10
0
 private function update_password()
 {
     if (!$this->id) {
         $this->password = self::prepare_password($this->password);
         $this->register_date = JCURRENT_SERVER_TIME;
     } else {
         $new_password = joosRequest::post('new_password', false);
         if ($new_password) {
             $this->password = self::prepare_password($new_password);
         }
     }
 }
Exemple #11
0
 /**
  * Смена статуса (поля 'state')
  */
 public static function set_state()
 {
     $obj_id = joosRequest::int('obj_id', 0, $_POST);
     $obj_state = joosRequest::post('obj_state');
     $obj_model = joosRequest::post('obj_model');
     if (!$obj_model || !class_exists($obj_model)) {
         return array('type' => 'error');
     }
     $new_state = $obj_state == 1 ? 0 : 1;
     $obj = new $obj_model();
     $obj->load($obj_id);
     if (!$obj->change_state('state')) {
         return array('type' => 'error');
     }
     return array('type' => 'success', 'message' => 'Статус изменён', 'new_state' => $new_state, 'new_title' => $new_state == 1 ? 'Активно' : 'Не активно', 'new_class' => $new_state == 1 ? 'icon-ok' : 'icon-remove');
 }
 public function add_to_basket()
 {
     $obj_name = joosRequest::post('obj');
     $obj_id = joosRequest::post('obj_id');
     return joosBasket::add($obj_name, $obj_id);
 }