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; }
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); }
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); }
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); } } }
/** * Смена статуса (поля '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); }