public static function get($id) { $class = false; if (!empty($id) && !is_array($id)) { self::init(); // Проверяем переданные данные, определяем ID if (is_numeric($id)) { $id = system::checkVar($id, isInt); } else { if (!is_array($id)) { $sname = system::checkVar($id, isVarName); if (!empty($sname) && array_key_exists($sname, self::$cl_names)) { $id = self::$cl_names[$sname]; } } } // Загрузка класса if (is_numeric($id) && isset(self::$classes[$id])) { $class = self::$classes[$id]; } else { if (isset(self::$classes_data[$id])) { $class = new ormClass(self::$classes_data[$id]); if (!$class->issetErrors()) { self::$classes[$class->id()] = $class; } else { $class = false; } } } } if ($class) { return $class; } }
static function changeGoods($goods_id, $count) { if (isset($_SESSION['basket'][$goods_id])) { $count = system::checkVar($count, isInt); $_SESSION['basket'][$goods_id]['count'] = $count; return true; } return false; }
/** * @return null * @param integer $id - ID ORM-объекта * @param string $title - Заголовок для корня * @param string $url - Ссылка (если нужно) * @desc Устанавливает корень дерева с указанием параметров */ public function setRoot($id, $title, $url = '#') { $this->root_id = system::checkVar($id, isInt); $title = system::checkVar($title, isString); if ($title != false) { $this->root_title = $title; } $url = system::checkVar($url, isString); if ($url != false) { $this->root_url = $url; } }
public function proc_edit() { $text = system::checkVar(system::POST('minitext'), isText); $id = system::checkVar(system::POST('minitext_id'), isInt); $key = ormPages::getPrefix() . '/minitext/' . $id; if ($text && $id && reg::existKey($key)) { if (reg::setKey($key, $text)) { system::json(array('error' => 0)); system::stop(); } } system::json(array('error' => 1, 'errorInfo' => lang::get('STRUCTURE_MINITEXT_ERROR'))); system::stop(); }
/** * @return null * @param string $name - префикс * @desc Устанавливает префикс языковой версии */ public function setPrefix($name) { $name = system::checkVar($name, isVarName, 4); if (empty($name)) { $this->newError(50, 'Префикс языка указан в неправильном формате!'); } else { $isset = db::q('SELECT count(l_id) FROM <<langs>> WHERE l_prefix = "' . $name . '" and l_id <> "' . $this->id . '";', value); if (empty($isset)) { $this->values['l_prefix'] = $name; } else { $this->newError(51, 'Невозможно добавить язык с префиксом "' . $name . '". Язык с таким префиксом уже зарегистрирован в системе!'); } } }
public static function getObjectsByClass($class_id) { $class_id = system::checkVar($class_id, isVarName); if (is_numeric($class_id)) { $sql = 'SELECT o_id id, o_name name FROM <<objects>> WHERE o_class_id = "' . $class_id . '" and o_to_trash = 0;'; } else { $sql = 'SELECT o_id id, o_name name FROM <<objects>>, <<classes>> WHERE o_class_id = c_id and c_sname = "' . $class_id . '" and o_to_trash = 0;'; } return db::q($sql, records); }
public function change_basketAction() { $goods_list = basket::getGoodsData(); $num = $cost = 0; while (list($id, $goods) = each($goods_list)) { if (isset($_POST['basket_check'][$id]) && isset($_POST['basket_count'][$id])) { $count = system::checkVar($_POST['basket_count'][$id], isInt); if (empty($count)) { $count = 1; } basket::changeGoods($id, $count); } else { basket::delGoods($id); } } if (system::POST('is_order', isBool)) { system::redirect('/eshop/order'); } else { system::redirect('/eshop/basket'); } }
public function change_rateAction() { if ($page = ormPages::get(system::url(2))) { if (!isset($_SESSION['change_rate'][$page->id]) && $page->getClass()->issetField('rate')) { // Высчитываем новый рейтинг $rate = system::checkVar(system::url(3), isInt); if ($rate > 5) { $rate = 5; } else { if ($rate < 1) { $rate = 1; } } $new_rate = $page->rate != 0 ? ($page->rate + $rate) / 2 : $rate; // Сохраняем $page->rate = $new_rate; $page->save(); $_SESSION['change_rate'][$page->id] = 1; system::json(array('error' => 0, 'new_rate' => $new_rate)); } } system::json(array('error' => 1, 'new_rate' => 0)); }
/** * @return stirng - Путь до изображения * @param string $file_name - Исходное изображение * @param CONST $scale_type - Способ масштабирования рисунка, одна из трех констант stRateably - Масштабирование с учетом пропорций, относительно $width или $height stSquare - Обрезать по квадрату со стороной $width stInSquare - Вписать в квадрат со стороной $width * @param int $width - Ширина конечного изображения, если == 0 не учитывается * @param int $height - Высота конечного изображения, если == 0 не учитывается * @param string $watermark - Способ наложения водяного знака. Одно из нескольких значений: 0 - Водяной знак не накладывается 1-9 - Водяной знак накладывается в одну из 9 позиций квадрата (см. документацию) * @desc МАКРОС: При необходимости масштабирует изображение под заданные параметры и возвращает путь до кешированного файла. */ public function resize($file_name, $scale_type, $width = 0, $height = 0, $watermark = 0) { if (!empty($file_name)) { if (system::checkVar($file_name, isAbsUrl)) { return $file_name; } $scale = !is_numeric($scale_type) ? constant($scale_type) : $scale_type; $dir = '/cache/img/' . $scale_type . '_' . $width . 'x' . $height . '_' . $watermark; $new_file = $dir . '/' . system::fileName($file_name); if (!file_exists(ROOT_DIR . $new_file)) { if (!is_dir(ROOT_DIR . $dir)) { @mkdir(ROOT_DIR . $dir, 0777); } $img = new resizer($file_name, $scale, $width, $height); if (is_numeric($watermark) && $watermark > 0) { $img->setWatermark(reg::getKey('/core/watermark'), $watermark); } $img->save(ROOT_DIR . $new_file); } if (file_exists(ROOT_DIR . $new_file)) { return $new_file; } } }
public function send_messageAction() { if ($form_obj = ormObjects::get(system::POST('form_id'))) { $issetErrors = false; $answer = array(); // Проверка капчи if ($form_obj->captcha && !system::validCapcha('random_image')) { $issetErrors = true; $answer = array('field' => 'random_image', 'msg' => lang::get('FEEDBACK_ERROR1')); } // Если указанно куда, добавляем объект в БД if (($form_obj->any_sections || $form_obj->section) && !$issetErrors) { // Определяем раздел, в который будем добавлять отзыв if ($form_obj->any_sections) { $section = system::POST('section_id', isInt); } else { $section = $form_obj->section; $section = !empty($section) ? $section[0] : 0; } // Создаем объект обратной связи $obj = new ormPage(); $obj->setParent($section); $obj->setClass($form_obj->form_class); $obj->tabuList('pseudo_url', 'h1', 'keywords', 'title', 'description', 'answer', 'active', 'is_home_page', 'view_in_menu', 'view_submenu', 'in_search', 'in_index', 'in_new_window', 'other_link', 'img_act', 'img_no_act', 'img_h1'); $obj->loadFromPost(); $obj->active = 0; $obj->view_in_menu = 1; $obj->view_submenu = 1; $obj->in_search = 1; $obj->in_index = 1; $obj->is_home_page = 0; if ($obj->name != '') { $obj->h1 = $obj->name; $obj->title = $obj->name; } $obj->pseudo_url = rand(1000, 9999); $obj->template_id = ($sect = ormPages::get($form_obj->section)) ? $sect->template_id : 1; $obj->form_id = $form_obj->id; $obj->setRightForAll(2); $obj_id = $obj->save(); if ($obj_id) { $obj->pseudo_url = $obj_id; $obj->save(); $obj = new ormPage($obj_id); } else { $issetErrors = true; $f = $obj->getErrorFields(); $answer = array('field' => $f['focus'], 'msg' => $obj->getErrorListText(' ')); } } if (!$issetErrors) { // Отправка нужных писем page::assign('site_name', domains::curDomain()->getSiteName()); page::assign('site_url', domains::curDomain()->getName()); page::assign('base_email', domains::curDomain()->getEmail()); while (list($key, $val) = each($_POST)) { page::assign($key, system::checkVar($val, isText)); } if (isset($obj)) { $fields = $obj->getClass()->loadFields(); foreach ($fields as $field) { if (in_array($field['f_type'], array(70, 75, 80, 85))) { $fsname = $field['f_sname']; $fvalue = $obj->{$fsname}; if ($fvalue != '') { page::assign($fsname, $fvalue); } } } } // Если указан список адресатов, отправляем письма if ($form_obj->mailing_list != '') { $mail = new phpmailer(); $mail->From = $this->parse($form_obj->admin_sender_address); $mail->FromName = $this->parse($form_obj->admin_sender_name); /* if (!empty($this->files)) for($i = 0; $i < count($this->files); $i++) $mail->AddAttachment($this->files[$i][0], $this->files[$i][1]); */ $mail->AddAddress($form_obj->mailing_list); $mail->WordWrap = 50; $mail->IsHTML(true); $mail->Subject = $this->parse($form_obj->admin_subject); $mail->Body = $this->parse($form_obj->admin_template); $mail->Send(); } // Если нужно, отправляем уведомление пользователю if ($form_obj->send_notice && !$issetErrors) { $mail = new phpmailer(); $mail->From = $this->parse($form_obj->notice_sender_address); $mail->FromName = $this->parse($form_obj->notice_sender_name); $mail->AddAddress(system::POST('email')); $mail->WordWrap = 50; $mail->IsHTML(true); $mail->Subject = $this->parse($form_obj->notice_subject); $mail->Body = $this->parse($form_obj->notice_template); $mail->Send(); } // Показываем результат if (system::isAjax()) { if ($form_obj->msg != '') { $text = $form_obj->msg; } else { $text = lang::get('FEEDBACK_MSG_1'); } system::json(array('field' => 0, 'msg' => strip_tags($text))); } else { system::redirect('/feedback/ok/' . $form_obj->id); } } else { // Произошли ошибки if (system::isAjax()) { system::json($answer); } else { system::savePostToSession(); system::saveErrorToSession('feedback', $answer); if (empty($_POST['back_url'])) { $_POST['back_url'] = '/structure/map'; } system::redirect($_POST['back_url'], true); } } system::stop(); } else { system::stop(); } }
function getGroupBySName($name, $only_id = false) { $sname = system::checkVar($name, isVarName); if ($sname !== false) { $sql = 'SELECT fg_id FROM <<fgroup>> WHERE fg_class_id = "' . $this->id . '" and fg_sname="' . $sname . '";'; $id = db::q($sql, value); if ($id !== false) { if (!$only_id) { return new ormFieldsGroup($id); } else { return $id; } } else { return false; } } }
static function getTags($limit = 100) { $limit = system::checkVar($limit, isInt); if (empty($limit)) { $limit = 100; } $tags = db::q('SELECT t_id id, t_name name, t_count count FROM <<tags>>, <<tags_rels>> WHERE t_id = tr_tag_id and tr_obj_id = "' . $obj_id . '" ORDER BY t_id LIMIT ' . $limit . ';', records, 0); return $tags; }
/** * @return null * @param integer $parent_id - ID родительского ORM-объекта к которому прикрепляем данный объект. * @param integer $position - Позиция в которую устанавливаем данный объект * @desc Устанавливает нового родителя, сохраняя связи с другими родителями */ public function setNewParent($parent_id, $position = 0) { $id = system::checkVar($parent_id, isInt); $position = system::checkVar($position, isInt); $this->new_parents[$id] = array('parent_id' => $id, 'position' => $position); }
static function delIndexForPage($page_id) { if (system::checkVar($page_id, isInt)) { db::q('DELETE FROM <<search_rankings>> WHERE sr_obj_id = "' . $page_id . '";'); } }
public function setFilters() { if ($this->getCount() > 0) { reset($this->filters); while (list($fname, $field) = each($this->filters)) { if (isset($_SESSION['filters_' . $this->prefix][$fname])) { // Запоминаем данные пришедшие через POST if (isset($_POST['filter']) && isset($_POST[$fname])) { if ($_POST[$fname] == '' || empty($_POST[$fname]) && ($field['f_type'] == 90 || $field['f_type'] == 95)) { $value = ''; } else { if ($field['f_type'] == 50 || $field['f_type'] > 69 && $field['f_type'] < 86) { $value = system::checkVar($_POST[$fname], isInt); } else { if ($field['f_type'] == 90 || $field['f_type'] == 95) { $value = system::checkVar($_POST[$fname], isInt); } else { $value = system::checkVar($_POST[$fname], isString); } } } $_SESSION['filters_' . $this->prefix][$fname] = $value; if (isset($_POST[$fname . '2'])) { if (empty($_POST[$fname . '2'])) { $value2 = ''; } else { if ($field['f_type'] > 24 && $field['f_type'] < 33) { $value2 = system::checkVar($_POST[$fname . '2'], isString); } else { $value2 = system::checkVar($_POST[$fname . '2'], isInt); } } $_SESSION['filters_' . $this->prefix][$fname . '_2'] = $value2; } } if (isset($_SESSION['filters_' . $this->prefix][$fname . '_2'])) { $value2 = $_SESSION['filters_' . $this->prefix][$fname . '_2']; } else { if (isset($value2)) { unset($value2); } } $value = $_SESSION['filters_' . $this->prefix][$fname]; // Устанавливаем на основе сохраненных данных фильтры if ($value !== '' || isset($value2) && $value2 !== '') { if ($field['f_type'] == 50) { // Галочка if (!empty($value)) { $value = $value === 1 ? true : false; $this->select->where($fname, '=', $value); $this->is_filtered = true; } } else { if ($field['f_type'] > 69 && $field['f_type'] < 86) { // Файлы if ($value === 1) { $this->select->where($fname, '<>', ''); $this->is_filtered = true; } else { if ($value === 2) { $this->select->where($fname, '=', ''); $this->is_filtered = true; } } } else { if ($field['f_type'] == 90 || $field['f_type'] == 95) { // Справочники if (!empty($value)) { if ($field['f_relation'] == 2) { $parents[] = $value; } else { $this->select->where($fname, '=', $value); } $this->is_filtered = true; } } else { if ($field['f_type'] == 25 || $field['f_type'] == 30 || $field['f_type'] == 32) { // Фильтры по временным отрезкам if ($field['f_type'] == 25) { // Дата if (!empty($value)) { $value = date('Y-m-d', strtotime($value)); } if (!empty($value2)) { $value2 = date('Y-m-d', strtotime($value2)); } } else { if ($field['f_type'] == 30) { // Время if (!empty($value)) { $value = date('H:i:s', strtotime($value)); } if (!empty($value2)) { $value2 = date('H:i:s', strtotime($value2)); } } else { if ($field['f_type'] == 32) { // Дата и Время if (!empty($value)) { $value = date('Y-m-d H:i:s', strtotime($value)); } if (!empty($value2)) { $value2 = date('Y-m-d H:i:s', strtotime($value2)); } } } } if (isset($value2)) { if ($value !== '' && $value2 === '') { $this->select->where($fname, '>=', $value); } else { if ($value === '' && $value2 !== '') { $this->select->where($fname, '<=', $value2); } else { if ($value !== '' && $value2 !== '') { $this->select->where($fname, 'BETWEEN', $value, $value2); } } } } else { $this->select->where($fname, '=', $value); } $this->is_filtered = true; } else { if (is_numeric($value) || isset($value2) && is_numeric($value2)) { // Числовые поля if (isset($value2)) { if ($value !== '' && $value2 === '') { $this->select->where($fname, '>=', $value); } else { if ($value === '' && $value2 !== '') { $this->select->where($fname, '<=', $value2); } else { if ($value !== '' && $value2 !== '') { $this->select->where($fname, 'BETWEEN', $value, $value2); } } } } else { $this->select->where($fname, '=', $value); } $this->is_filtered = true; } else { if (!empty($value)) { // Текстовые поля $this->select->where($fname, 'LIKE', '%' . $value . '%'); $this->is_filtered = true; } } } } } } } } } } }
/** * @return null * @param string $name - Доменное имя * @param integer $id - ID зеркала * @desc Добавляет или изменяет зеркало домена. */ public function changeMirror($name, $id = '') { $id = system::checkVar($id, isInt); $name = system::checkVar($name, isRuDomain); if (!empty($this->id) && !empty($this->values['d_def_lang']) && !empty($name)) { if (!empty($id)) { db::q('UPDATE <<domains>> SET d_name = "' . $name . '" WHERE d_id = "' . $id . '";'); system::log('Изменено зеркало "' . $name . '" (id:' . $id . ') домена "' . $this->values['d_name'] . '" (id:' . $this->id . ')', warning); } else { db::q('INSERT INTO <<domains>> SET d_name = "' . $name . '", d_domain_id = "' . $this->id . '", d_def_lang = NULL, d_online = 1;'); system::log('Добавлено зеркало "' . $name . '" (id:' . $id . ') к домена "' . $this->values['d_name'] . '" (id:' . $this->id . ')', warning); } return true; } }
/** * @return integer * @param integer $obj_id - ID объекта * @param boolean $only_active - Если true - вернет количество активных (проверенных) комментариев * @desc Вернет общее количество комментариев для указанного объекта */ public static function getAllCount($obj_id, $only_active = false) { $obj_id = system::checkVar($obj_id, isInt); if ($obj_id) { $where = $only_active ? ' and c_active = 1' : ''; $count = db::q('SELECT count(c_id) FROM <<comments>> WHERE c_obj_id = "' . $obj_id . '" ' . $where . ';', value); if ($count) { return $count; } } return 0; }
static function addEmail($email, $subscriptions, $copyUserData = false) { $email = system::checkVar($email, isEmail); if (!empty($email) && !empty($subscriptions)) { $obj = new ormObject(); $obj->setClass('subscribe_user'); $obj->name = $email; if (!user::isGuest() && $copyUserData) { $obj->second_name = user::get('surname'); $obj->first_name = user::get('name'); $obj->user_id = user::get('id'); } // Указываем на какие подписки подписать while (list($key, $val) = each($subscriptions)) { $obj->setNewParent($val); } // Сохраняем изменения $sid = $obj->save(); if ($obj->issetErrors(29)) { // Если указанный e-mail уже существует, пытаемся найти его и подписать на рассылки. $sel = new ormSelect('subscribe_user'); $sel->where('name', '=', $email); $sel->limit(1); if ($obj = $sel->getObject()) { if (!user::isGuest() && $copyUserData) { $obj->second_name = user::get('surname'); $obj->first_name = user::get('name'); $obj->user_id = user::get('id'); } reset($subscriptions); while (list($key, $val) = each($subscriptions)) { $obj->setNewParent($val); } $sid = $obj->save(); } } return $sid; } }
/** * @return null * @param integer $state - Право доступа к странице * @desc Установка для всех (групп и пользователей) единого права доступа */ public function setRightForAll($state) { $this->right_for_all = system::checkVar($state, isInt); $this->right_state = $this->right_for_all; }
/** * @return null * @param string $change_funct - Имя php-функции для обработки добавления/изменения записей. * @param string $del_funct - Имя php-функции для обработки удаления записей. * @param string $addit_val - Дополнительный параметр передаваемый в функцию. * @desc Сохраняет все пришедшие данные. Метод используется обработчиком формы. */ public function process($change_funct, $del_funct = '', $addit_val = '') { // print_r($_POST); if (isset($_POST['obj' . $this->form_name])) { while (list($id, $fields) = each($_POST['obj' . $this->form_name])) { $id = system::checkVar($id, isInt); if (!$this->without_del && isset($_POST['delete_' . $this->form_name . '_' . $id])) { if (!empty($del_funct)) { if (function_exists($del_funct)) { call_user_func($del_funct, $id, $this->form_name, $addit_val); } else { trigger_error('Not found user function "' . $del_funct . '()"!', E_USER_ERROR); } } } else { $check = false; foreach ($fields as $val) { if (!empty($val)) { $check = true; } } if ($check) { if (function_exists($change_funct)) { $is_ok = call_user_func($change_funct, $id, $fields, $this->form_name, $addit_val); } else { trigger_error('Not found user function "' . $change_funct . '()"!', E_USER_ERROR); } if (!$is_ok) { system::savePostToSession(); } } } } } }
public function activateAction() { if (!reg::getKey('/users/reg') || !reg::getKey('/users/activation')) { system::redirect('/'); } if ($userKey = system::checkVar(system::url(2), isMD5)) { // Ищем нужного пользователя $sel = new ormSelect('user'); $sel->where('md5_flag', '=', $userKey); $sel->limit(1); if ($user = $sel->getObject()) { $key = md5(date('d.m.Y') . 'activate' . $user->id); if ($key == $userKey) { $user->active = 1; $user->md5_flag = ''; $user->save(); // Авторизуем пользователя user::authHim($user); page::globalVar('h1', lang::get('USERS_ADD_H1')); page::globalVar('title', lang::get('USERS_ADD_H1')); return lang::get('USERS_ADD_MSG2'); } } } return ormPages::get404(); }
public function setParram($text) { $this->newprop['c_parram'] = system::checkVar($text, isString); }
private static function getMacrosContent($post_parram = 0) { $macros = self::macros(system::url(1)); $parram = array(); if (!empty($post_parram) && is_array($post_parram)) { while (list($key, $val) = each($post_parram)) { $parram[] = system::checkVar($val, isString); } } else { $num = 3; while (system::issetUrl($num)) { $parram[] = system::url($num); $num++; } } if (method_exists($macros, system::url(2))) { $html = call_user_func_array(array($macros, system::url(2)), $parram); } else { $html = 'Указанный макрос не существует "' . system::url(1) . '.' . system::url(2) . '()"<br>'; } return $html; }
static function auth($login, $password) { $ret = false; $login = system::checkVar($login, isString); $sel = new ormSelect('user'); $sel->where($sel->val('active', '=', 1), $sel->val('login', '=', trim($login)), $sel->containedIn('user_group', $sel->val('active', '=', 1))); $sel->limit(1); if (self::$obj = $sel->getObject()) { if (self::$obj->password == system::checkVar($password, isPassword)) { $ret = self::authHim(self::$obj); } else { $max_error = reg::getKey('/users/errorCountBlock'); //Смотрим, если у юзера уже N неправильных паролей, то блокируем его if (self::$obj->error_passw + 1 >= $max_error && $max_error > 0) { self::$obj->active = 0; self::sendMailBlock(self::$obj); } self::$obj->error_passw++; self::$obj->save(); if (!self::$obj->active) { //записываем что пользователь заблокирован по своей дурости из-за не знания пароля system::log(str_replace('%user%', $login, str_replace('%count%', $max_error, lang::get('BLOCKED_USER'))), error); } else { //Записываем в журнал о неправильном вводе пароля system::log(str_replace('%user%', $login, lang::get('ERROR_PASSWORD')), error); } } } return $ret; }
/** * @return HTML * @param int $section_id - ID новостной ленты, для которой необходимо построить RSS-ленту * @param string $templ_name - Шаблон оформления, по которому будет строится RSS-лента * @desc МАКРОС: Выводит содержимое RSS-ленты. */ public function rss($section_id, $templ_name = 'rss') { $templ_file = '/structure/rss/' . $templ_name . '.tpl'; $TEMPLATE = page::getTemplate($templ_file); if (!is_array($TEMPLATE)) { return page::errorNotFound('structure.rss', $templ_file); } $cur_domain = 'http://' . domains::curDomain()->getName(); page::assign('channel.url', $cur_domain); page::assign('channel.date', date('r')); page::assign('channel.notice', ''); // Определяем из каких категорий выводить ленту новостей $sections = array(); if ($section_id == 'all') { // Из нескольких $sel = new ormSelect('news_feed'); $sel->findInPages(); $sel->fields('id'); $sel->where('rss_export', '=', 1); $sel->where('active', '=', 1); while ($obj = $sel->getObject()) { $sections[] = $obj->id; } page::assign('channel.title', domains::curDomain()->getSiteName()); } else { // Из одной $section_id = system::checkVar($section_id, isInt); if (empty($section_id)) { return ''; } $sections[] = $section_id; if ($sect = ormPages::get($section_id)) { page::assign('channel.title', $sect->name); } } // Формируем выборку объектов $sel = new ormSelect(); $sel->findInPages(); $sel->fields('name, notice, publ_date'); $sel->where('parents', '=', $sections, 'OR'); $sel->where('active', '=', 1); $sel->orderBy('publ_date', desc); $sel->limit(3); // Формируем список $list = ''; while ($obj = $sel->getObject()) { $num = $sel->getObjectNum() + 1; page::assign('obj.num', $num); page::assign('obj.id', $obj->id); page::assign('obj.url', $cur_domain . $obj->_url); page::assign('obj.name', $obj->name); $notice = str_replace(' ', '', strip_tags($obj->notice)); page::assign('obj.notice', $notice); $date = date('r', strtotime($obj->publ_date)); page::assign('obj.date', $date); /* if ($obj->podkast != '') { page::assign('obj.media_url', $cur_domain.$obj->podkast); page::fParse('media', $TEMPLATE['media']); } else page::assign('media', ''); */ if (isset($TEMPLATE['list'])) { $list .= page::parse($TEMPLATE['list']); } else { return page::errorBlock('structure.rss', $templ_file, 'list'); } } if (!empty($list)) { page::assign('list', $list); if (isset($TEMPLATE['frame_list'])) { $list = page::parse($TEMPLATE['frame_list']); } else { return page::errorBlock('structure.rss', $templ_file, 'frame_list'); } } return $list; }
/** * @return null * @param integer $id - ID домена * @desc Привязывает шаблон к указанному домену */ public function setDomainId($id) { $name = system::checkVar($id, isInt); if (empty($name)) { $this->newError(67, 'Не указан домен для шаблона!'); } else { $this->values['t_domain_id'] = $name; } }
/** * @return string HTML * @param integer $obj_id - ID группы или пользователя * @param boolean $obj_type - Тип объекта: 0 - группа, 1 - пользователь * @desc Сохраняет настройки прав пришедшие через POST для группы или пользователя */ public static function setListForModuls($obj_id, $obj_type) { if (!empty($obj_id)) { db::q("DELETE FROM <<modules_rgu>> WHERE rgu_obj_id = {$obj_id}"); if (!empty($_POST['rights'])) { if ($obj_type == 0) { while (list($key, $right) = each($_POST['rights'])) { $right = system::checkVar($right, isInt); db::q("INSERT INTO <<modules_rgu>>\n\t\t\t SET rgu_obj_id = {$obj_id},\n\t\t\t rgu_value = 1,\n\t\t\t rgu_right_id = {$right};"); } } else { while (list($right, $value) = each($_POST['rights'])) { $right = system::checkVar($right, isInt); $value = system::checkVar($value, isInt); if ($value != 0 && $right != false && $value != false) { db::q("INSERT INTO <<modules_rgu>>\n\t\t\t SET rgu_obj_id = {$obj_id},\n\t\t\t rgu_value = {$value},\n\t\t\t rgu_right_id = {$right};"); } } } } } }
/** * @return null * @param ormObject $obj - ORM-Объект информация о котором заносится в журнал * @param string $text - Текст сообщения * @param const $state - Статус сообщения, используйте одну из контант: info - В порядке информации error - Ошибка warning - Предупреждение * @param string $type - Тип записи (для системных нужд, использовать не рекомендуется) 0 - обычная, 1 - информаци о помещении объекта в корзину * @desc Функция реализует добавление событий об изменение ORM-объектов в базу данных */ static function revue(ormObject $obj, $text, $state = error, $type = 0) { $state = system::checkVar($state, isInt); $type = system::checkVar($type, isInt); $text = system::checkVar($text, isString); db::q('INSERT INTO <<revue>> SET rev_state = "' . $state . '", rev_type = "' . $type . '", rev_obj_id = "' . $obj->id . '", rev_class_id = "' . $obj->getClass()->id() . '", rev_user_id = "' . user::get('id') . '", rev_user = "******", rev_datetime = "' . date('Y-m-d H:i:s') . '", rev_message = "' . $text . '", rev_ip = "' . $_SERVER['REMOTE_ADDR'] . '";'); }
/** * @return boolean В случае успеха true * @param string $key - Ключ в котором будет хранится список * @param string $value - Записываемое значение * @desc Добавляем значения в список. Все значения записанные в список идентифицируются по ID. Метод удобно использовать, когда не важно какой ключ будет у значений списка. Пример: reg::addToList('/core/test_list', 'La'); reg::addToList('/core/test_list', 'Ma'); reg::addToList('/core/test_list', 'Pa'); print_r(reg::getList('/core/test_list')); Вернет: Array ( [705] => La [706] => Ma [707] => Pa ) */ static function addToList($key, $value = '', $desc = '') { self::init(); $value = system::checkVar($value, isText); $way = self::getWay($key); $keyID = self::getIDKey($way); if ($keyID['state'] === true) { // Добавляем ключ $sect = $keyID['id']; for ($i = $keyID['level']; $i < count($way); $i++) { if ($sect !== false) { $w = count($way) == $i ? $way[$i] : 'auto_id'; $val = count($way) - 1 == $i ? $value : ''; $desc = count($way) - 1 == $i ? $desc : ''; $sect = self::newKey($w, $val, $sect, $desc); } } return true; } }
static function get($page_id, $filter_class = '') { self::init(); if (is_numeric($page_id) && !empty($page_id) && !is_array($page_id)) { $page_id = system::checkVar($page_id, isInt); if (!isset(self::$pages_obj[$page_id])) { if (self::issetPage($page_id)) { self::$pages_obj[$page_id] = new ormPage(self::$pages[$page_id]); } else { self::$pages_obj[$page_id] = new ormPage($page_id); } } $obj = self::$pages_obj[$page_id]; if (isset($obj) && $obj instanceof ormPage && !$obj->issetErrors() && $obj->id == $page_id) { if (empty($filter_class) || $obj->isInheritor($filter_class)) { return $obj; } } } else { if (is_array($page_id) && isset($page_id['o_id'])) { if (!isset(self::$pages_obj[$page_id['o_id']])) { $obj = new ormPage($page_id); self::$pages_obj[$obj->id] = $obj; if (!isset(self::$pages[$obj->id])) { self::$pages[$obj->id] = $page_id; if (isset($page_id['r_parent_id'])) { self::$pages_rel[$page_id['o_id']] = $page_id['r_parent_id']; self::$pages_rel2[$page_id['r_parent_id']][] = $page_id['o_id']; } } } else { $obj = self::$pages_obj[$page_id['o_id']]; $obj->supplementData($page_id); } if (empty($filter_class) || $obj->isInheritor($filter_class)) { return $obj; } } } return false; }