Esempio n. 1
0
 private static function init()
 {
     if (self::$pdo == null) {
         try {
             self::$pdo = new PDO(DB_DSN, DB_USER, DB_PASS);
             self::$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
             if ('mysql' == substr(DB_DSN, 0, 5)) {
                 self::$driver = 'mysql';
                 self::$pdo->exec("SET NAMES 'utf8' COLLATE 'utf8_general_ci'");
             }
         } catch (PDOException $e) {
             $msg = '<h3>Невозможно установить соединение с базой данных!</h3><br/>';
             if ($e->getCode() == 2001) {
                 $msg .= 'Невозможно создать socket-соединение из за ограничений сервера! ';
             } else {
                 if ($e->getCode() == 2002) {
                     $msg .= 'Превышено время ожидания сервера БД! Скорей всего сервер либо временно не доступен, либо не существует. Проверьте настройки подключения к БД.';
                 } else {
                     if ($e->getCode() == 1049) {
                         $msg .= 'Указанная БД не существует! Перепроверьте настройки подключения к базе данных.';
                     } else {
                         $msg .= 'Запрещен доступ для указанного логина и пароля. Перепроверьте настройки подключения к базе данных.';
                     }
                 }
             }
             //$msg .= '<br/><br/><a href="">'.substr($e->getMessage(), 0, 22).'</a>';
             $msg .= '<br/><br/>' . substr($e->getMessage(), 0, 22) . '';
             page::globalVar('title', 'Bagira.CMS');
             page::globalVar('content', $msg);
             page::parseIt(TEMPL_DIR . '/offline.tpl', true, true);
             system::stop();
         }
     }
 }
Esempio n. 2
0
 public function restore()
 {
     if (system::issetUrl(2) && is_numeric(system::url(2))) {
         // Одиночное востановление
         $obj = new ormObject(system::url(2));
         if ($obj->isInheritor('section')) {
             $obj = new ormPage(system::url(2));
         }
         $obj->restore();
         echo 'delete';
     } else {
         if (isset($_POST['objects'])) {
             // Множественное востановление
             while (list($id, $val) = each($_POST['objects'])) {
                 if (is_numeric($id)) {
                     $obj = new ormObject($id);
                     if ($obj->isInheritor('section')) {
                         $obj = new ormPage($id);
                     }
                     $obj->restore();
                 }
             }
             echo 'delete';
         }
     }
     ormPages::clearCache();
     system::stop();
 }
Esempio n. 3
0
 public function proc_upd()
 {
     if (system::issetUrl(2)) {
         $obj = new ormField();
         $obj->setGroupId(system::url(2));
     } else {
         if (system::action() == "proc_upd") {
             $obj = new ormField($_POST['obj_id']);
         } else {
             if (system::action() == "proc_add") {
                 $obj = new ormField();
                 $obj->setGroupId($_POST['obj_id']);
             }
         }
     }
     if (!empty($_POST['fname'])) {
         $obj->setName($_POST['fname']);
     }
     if (!empty($_POST['max_size'])) {
         $obj->setMaxSize($_POST['max_size']);
     } else {
         $obj->setMaxSize(0);
     }
     $obj->setType(0);
     $obj->setInherit(1);
     $obj_id = $obj->save();
     if ($obj_id === false) {
         echo json_encode(array('error' => 1, 'data' => $obj->getErrorListText(' ')));
     } else {
         $tree = new ormFieldsTree();
         $forUpd = system::action() == "proc_add" ? 0 : 1;
         echo json_encode(array('error' => 0, 'data' => $tree->getFieldHTML($obj, $forUpd)));
     }
     system::stop();
 }
Esempio n. 4
0
 public function defAction()
 {
     $file = @fopen(ROOT_DIR . "/revue.log", "w");
     @fclose($file);
     db::q('DELETE FROM <<revue>>');
     echo 'delete';
     system::stop();
 }
Esempio n. 5
0
 public function viewAction()
 {
     if (system::issetUrl(2)) {
         $_SESSION['voting_' . system::url(2)] = 1;
         echo page::macros('voting')->objView(system::url(2));
     }
     system::stop();
 }
Esempio n. 6
0
 public function viewAction()
 {
     if (system::issetUrl(2)) {
         page::assign('hello', '');
         echo page::parse(mailingProcess::getMailHTML(system::url(2)));
     }
     system::stop();
 }
Esempio n. 7
0
 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();
 }
Esempio n. 8
0
 public function change_rateAction()
 {
     if (!isset($_SESSION['comments_rate'][system::url(2)])) {
         if ($comment = comments::get(system::url(2))) {
             if (system::url(3) == 'up') {
                 $comment->rateUp();
             } else {
                 $comment->rateDown();
             }
             $_SESSION['comments_rate'][$comment->id()] = 1;
             $comment->save();
         }
     }
     system::stop();
 }
Esempio n. 9
0
 public function proc()
 {
     if (system::isAjax() && system::issetUrl(2)) {
         if (system::url(2) == 'start') {
             searchIndex::clear();
             reg::setKey(ormPages::getPrefix('search') . '/index_date', date('d.m.Y'));
             $sel = new ormSelect();
             $sel->fields('name');
             $sel->findInPages();
             $sel->where('active', '=', 1);
             $sel->where('in_search', '=', 1);
             echo $sel->getCount();
         } else {
             if (system::url(2) == 'info') {
                 $data = reg::getKey(ormPages::getPrefix('search') . '/index_date');
                 if (empty($data)) {
                     $data = '-';
                 }
                 system::json(array('pages' => searchIndex::getCountPages(), 'words' => searchIndex::getCountWords(), 'data' => $data));
             } else {
                 $sel = new ormSelect();
                 $sel->findInPages();
                 $sel->where('active', '=', 1);
                 $sel->where('in_search', '=', 1);
                 $sel->limit(system::url(2), 1);
                 searchIndex::indexPage($sel->getObject());
                 echo 'ok';
             }
         }
         system::stop();
     }
     if (system::POST('parram') == 'clear') {
         searchIndex::clear();
     }
     system::redirect('/search/index');
 }
Esempio n. 10
0
 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();
     }
 }
Esempio n. 11
0
 function getHTML($templ_name = 'table')
 {
     $templ_name = $templ_name . '_' . $this->style;
     if (file_exists(MODUL_DIR . '/mpanel/template/' . $templ_name . '.tpl')) {
         include MODUL_DIR . '/mpanel/template/' . $templ_name . '.tpl';
         // Устанавливаем настройки по умолчанию
         $this->prefix = md5(system::url(0) . system::url(1) . (system::url(2) != '' ? system::url(2) : ''));
         if (!isset($_SESSION['table_' . $this->prefix])) {
             $_SESSION['table_' . $this->prefix]['max_count'] = 20;
             $_SESSION['table_' . $this->prefix]['page_num'] = 1;
             $_SESSION['table_' . $this->prefix]['table_search'] = '';
             $_SESSION['table_' . $this->prefix]['page_num_temp'] = 1;
         }
         // Смотрим пришедшие данные из POST
         if (!isset($_POST['filter'])) {
             // Сортировка по столбцу
             if (isset($_POST['field']) && isset($_POST['parram'])) {
                 $_SESSION['table_' . $this->prefix]['order_field'] = system::POST('field');
                 $_SESSION['table_' . $this->prefix]['order_parram'] = system::POST('parram');
             }
             // Количество строк в таблице
             if (isset($_POST['max_count'])) {
                 $_SESSION['table_' . $this->prefix]['max_count'] = $_POST['max_count'];
                 $_SESSION['table_' . $this->prefix]['page_num'] = 1;
             }
             // Выбор нужной страницы
             if (isset($_POST['page_num'])) {
                 $_SESSION['table_' . $this->prefix]['page_num'] = $_POST['page_num'];
             }
             // Поиск по таблице
             if (isset($_POST['table_search'])) {
                 $_SESSION['table_' . $this->prefix]['page_num_temp'] = $_SESSION['table_' . $this->prefix]['page_num'];
                 $_SESSION['table_' . $this->prefix]['page_num'] = 1;
                 if ($_POST['table_search'] == '') {
                     $_SESSION['table_' . $this->prefix]['page_num'] = $_SESSION['table_' . $this->prefix]['page_num_temp'];
                 }
                 $_SESSION['table_' . $this->prefix]['table_search'] = $_POST['table_search'];
             }
             // Очистка результатов поиска
             if (isset($_POST['clear_search'])) {
                 $_SESSION['table_' . $this->prefix]['page_num'] = $_SESSION['table_' . $this->prefix]['page_num_temp'];
                 $_SESSION['table_' . $this->prefix]['table_search'] = '';
                 if ($this->isSelection) {
                     $this->filter->clear();
                 }
                 //$_SESSION['table_'.$this->prefix]['max_count'] = 3;
             }
             // Нажали ссылку "обычный поиск" (скрыть / показать фильтры)
             if ($this->isSelection && isset($_POST['showfilter'])) {
                 if ($_POST['showfilter'] == 0) {
                     $_SESSION['table_' . $this->prefix]['filters'] = '';
                 }
                 $_SESSION['table_' . $this->prefix]['showfilter'] = $_POST['showfilter'];
                 system::stop();
             }
         }
         // Сортировка по столбцу
         if ($this->isSelection && isset($_SESSION['table_' . $this->prefix]['order_field'])) {
             $this->select->orderBy($_SESSION['table_' . $this->prefix]['order_field'], $_SESSION['table_' . $this->prefix]['order_parram']);
         }
         $up_line = '';
         // Устанавливаем список полей для выборки
         if ($this->isSelection && !$this->select->fieldsIsDefined()) {
             /*
                             $class_name = $this->select->getObjectsClass();
                             if (!empty($class_name))
                             	$select = (ormClasses::get($class_name)->issetField('active')) ? 'active' : '';
                             else    */
             $select = 'active';
             while (list($key, $column) = each($this->columns)) {
                 $zpt = !empty($select) ? ', ' : '';
                 if (strpos($column['field'], ' ')) {
                     $vals = explode(' ', $column['field']);
                     while (list($k, $val) = each($vals)) {
                         $select .= $zpt . $val;
                     }
                 } else {
                     $select .= $zpt . $column['field'];
                 }
             }
             $this->select->fields($select);
         }
         // Вывод формы ПОИСКа и установка параметров
         if ($this->show_search) {
             if ($this->isSelection && !empty($_SESSION['table_' . $this->prefix]['table_search'])) {
                 $query = $_SESSION['table_' . $this->prefix]['table_search'];
                 $this->inSearch = true;
                 $where = array();
                 reset($this->columns);
                 while (list($key, $column) = each($this->columns)) {
                     if ($column['field'] != 'children' && $column['field'] != 'parent') {
                         if (strpos($column['field'], ' ')) {
                             $vals = explode(' ', $column['field']);
                             while (list($k, $val) = each($vals)) {
                                 $where[] = $this->select->val($val, 'LIKE', '%' . $query . '%');
                             }
                         } else {
                             $where[] = $this->select->val($column['field'], 'LIKE', '%' . $query . '%');
                         }
                     }
                 }
                 $this->select->where($this->select->logOr($where));
             }
             page::assign('table_search', $_SESSION['table_' . $this->prefix]['table_search']);
             $up_line .= page::parse($TEMPLATE['search']);
         }
         // +  +  +	Все что касается вывода ФИЛЬТРОВ  +	+	+	+	+	+	+	+
         if ($this->isSelection && !$this->disable_filters) {
             //$_SESSION['table_'.$this->prefix]['page_num'] = 1;
             if (!isset($_SESSION['table_' . $this->prefix]['showfilter'])) {
                 $_SESSION['table_' . $this->prefix]['showfilter'] = $this->filters;
             }
             // Определяем нужно или нет показывать список фильтров
             $show_filter = $this->filters;
             if ($_SESSION['table_' . $this->prefix]['showfilter']) {
                 $show_filter = true;
             }
             page::assign('mores', $show_filter ? 'mores' : '');
             $this->filter->setFilters();
             page::assign('filters', $this->filter->getHTML());
             // Кнопка "Показать / спрятать фильтры"
             if ($this->show_search && $this->filter->getCount() > 0) {
                 if ($show_filter) {
                     page::assign('moresearch', 1);
                     page::assign('sh_text', lang::get('TABLE_SEARCH_MIN'));
                 } else {
                     page::assign('moresearch', 0);
                     page::assign('sh_text', lang::get('TABLE_SEARCH_MAX'));
                 }
                 page::fParse('filters_link', $TEMPLATE['filters_link']);
             } else {
                 page::assign('filters_link', '');
             }
             page::fParse('filters', $TEMPLATE['filters']);
             if ($show_filter && $this->filter->getCount() > 0 && !$this->show_search) {
                 page::assign('filters_link', '');
                 $up_line .= page::parse($TEMPLATE['without_search']);
             }
         } else {
             page::assign('filters', '');
         }
         page::assign('up_line', $up_line);
         // Кнопка "версия для печати"
         if ($this->print) {
             $up_line .= page::parse($TEMPLATE['print_link']);
         }
         // Дополнительные параметры запросов
         $str_param = '';
         while (list($key, $param) = each($this->moreParam)) {
             $str_param .= '/' . $param;
         }
         page::assign('parram', $str_param);
         // Вывод сообщения "Таблица пустая"
         $count = $this->isSelection ? $this->select->getCount() : count($this->data);
         if ($count <= 0) {
             if ($this->inSearch || $this->isSelection && $this->filter->isActive()) {
                 $message = lang::get('TABLE_NOT_FOUND') . '<br /><span onClick="stopSearch()">' . lang::get('TABLE_NOT_FOUND2') . '</span>';
             } else {
                 $message = empty($this->empty_text) ? lang::get('TABLE_EMPTY') : $this->empty_text;
             }
             page::assign('message', $message);
             if (system::isAjax()) {
                 echo page::parse($TEMPLATE['empty_frame']);
                 system::stop();
             } else {
                 page::fParse('content', $TEMPLATE['empty_frame']);
                 return page::parse($TEMPLATE['main']);
             }
         }
         // Постраничная навигация
         $this->navigation(5, $TEMPLATE);
         // Вывод прав
         $this->rights($TEMPLATE);
         // Определяем модуль для права по умолчанию
         $pos = strpos($this->def_right, '.');
         if (!empty($pos)) {
             $module = substr($this->def_right, 0, $pos);
             $this->def_right = substr($this->def_right, $pos + 1, strlen($this->def_right));
         } else {
             $module = system::url(0);
         }
         if (user::issetRight($this->def_right, $module)) {
             $this->def_right = system::au() . '/' . $module . '/' . $this->def_right . '/';
         } else {
             $this->def_right = '';
         }
         $this->count = $this->isSelection ? $this->select->getObjectCount() : count($this->data);
         if ($this->count == 0 && $_SESSION['table_' . $this->prefix]['page_num'] != 1) {
             $_SESSION['table_' . $this->prefix]['page_num'] -= 1;
         }
         page::assign('table_parent_id', 0);
         // Вывод строчек
         if ($this->isSelection) {
             $this->selItems($TEMPLATE);
         } else {
             $this->masItems($TEMPLATE);
         }
         // Вывод столбцов
         $this->columns($TEMPLATE);
         // Текст сообщения об удалении элементов
         if (empty($this->del_title) || empty($this->del_text)) {
             $this->del_title = lang::get('TABLE_DROP_TITLE');
             $this->del_text = lang::get('TABLE_DROP_TEXT');
         }
         if (empty($this->del_title_multi) || empty($this->del_text_multi)) {
             $this->del_title_multi = lang::get('TABLE_DROP_TITLE_MULTI');
             $this->del_text_multi = lang::get('TABLE_DROP_TEXT_MULTI');
         }
         page::assign('del_title', $this->del_title);
         page::assign('del_text', $this->del_text);
         page::assign('del_title_multi', $this->del_title_multi);
         page::assign('del_text_multi', $this->del_text_multi);
         page::assign('select_checkbox', lang::get('TABLE_SEL_CHECKBOX'));
         // Версия для печати (НУЖНО ДОДЕЛАТЬ)
         if (system::getCurrentNavVal() == 'print') {
             echo page::parse($TEMPLATE['frame']);
             system::stop();
         }
         if (system::isAjax()) {
             echo page::parse($TEMPLATE['frame']);
             system::stop();
         } else {
             page::fParse('content', $TEMPLATE['frame']);
             return page::parse($TEMPLATE['main']);
         }
     }
 }
Esempio n. 12
0
 public function del()
 {
     $class = new ormClass(system::url(2));
     if ($class->delete()) {
         echo "ok";
     } else {
         echo "error";
     }
     system::stop();
 }
Esempio n. 13
0
 public function del()
 {
     if (system::issetUrl(2) && is_numeric(system::url(2))) {
         // Одиночное удаление
         $obj = ormObjects::get(system::url(2));
         if ($obj->isInheritor('user') && $obj->id != user::get('id')) {
             $this->sendMailDel($obj);
             cache::delete('user' . $obj->id);
             $obj->toTrash();
             echo 'delete';
         }
     } else {
         if (isset($_POST['objects'])) {
             // Множественное удаление
             while (list($id, $val) = each($_POST['objects'])) {
                 if (is_numeric($id)) {
                     $obj = ormObjects::get($id);
                     if ($obj->isInheritor('user') && $obj->id != user::get('id')) {
                         $this->sendMailDel($obj);
                         cache::delete('user' . $obj->id);
                         $obj->toTrash();
                     }
                 }
             }
             echo 'delete';
         }
     }
     system::stop();
 }
Esempio n. 14
0
 static function socialAuthConfirm()
 {
     if (user::isGuest() && isset($_SESSION['SOCIAL_AUTH_USER_INFO'])) {
         $confirm = system::POST('confirm', isBool);
         $email = system::POST('email', isEmail);
         $validate = true;
         if (empty($_SESSION['SOCIAL_AUTH_USER_INFO']['email'])) {
             if (reg::getKey('/users/ask_email') && empty($email)) {
                 $validate = false;
             } else {
                 if (!empty($email)) {
                     $_SESSION['SOCIAL_AUTH_USER_INFO']['email'] = $email;
                 }
             }
         }
         if (reg::getKey('/users/confirm') && !$confirm) {
             $validate = false;
         }
         if ($validate) {
             $user = self::createUserForSocial($_SESSION['SOCIAL_AUTH_USER_INFO']);
             if ($user && !$user->issetErrors()) {
                 user::authHim($user);
                 self::closeWindowAndOpen('/');
             } else {
                 echo $user->getErrorListText();
             }
             system::stop();
         }
     }
 }
Esempio n. 15
0
 public function moveto()
 {
     $obj = new ormFieldsGroup(system::url(2));
     $obj->setPosition(system::url(3));
     if ($obj->save()) {
         echo "ok";
     } else {
         echo "error";
     }
     system::stop();
 }
Esempio n. 16
0
 public function rssAction()
 {
     if (!system::issetUrl(2)) {
         page::globalVar('h1', lang::get('RSS_TITLE'));
         page::globalVar('title', lang::get('RSS_TITLE'));
         return page::macros('structure')->rssList();
     } else {
         header("content-type: text/xml; charset=UTF-8");
         echo page::macros('structure')->rss(system::url(2));
         system::stop();
     }
 }
Esempio n. 17
0
 private function showAuthForm($error = 0)
 {
     if (file_exists(MODUL_DIR . '/mpanel/template/auth.tpl')) {
         include MODUL_DIR . '/mpanel/template/auth.tpl';
         page::assign('title', lang::get('CMF'));
         if (user::isGuest()) {
             // Пользователь не авторизован
             page::assign('url', system::getCurrentUrl());
             page::assign('login', lang::get('AUTHFORM_LOGIN'));
             page::assign('passw', lang::get('AUTHFORM_PASSW'));
             page::assign('enter', lang::get('AUTHFORM_ENTER'));
             page::assign('error', $error);
             echo page::parse($TEMPLATE['frame']);
         } else {
             // Пользователь авторизован, но не является админом
             page::assign('exit_url', '/users/logout');
             page::assign('user', user::get('name'));
             page::assign('hello', lang::get('AUTHFORM_HELLO'));
             page::assign('big_text', lang::get('AUTHFORM_BIG_TEXT'));
             page::assign('exit_text', lang::get('AUTHFORM_EXIT_TEXT'));
             echo page::parse($TEMPLATE['frame_no_admin']);
         }
         system::stop();
     }
 }
Esempio n. 18
0
 function getHTML($templ_name = 'orm_tree')
 {
     if (file_exists(MODUL_DIR . '/mpanel/template/' . $templ_name . '.tpl')) {
         include MODUL_DIR . '/mpanel/template/' . $templ_name . '.tpl';
         $main_url = system::au() . '/' . system::url(0) . '/';
         page::assign('main_url', $main_url);
         page::assign('plus_table', $this->plus_table);
         // Помечаем веточку закрытой
         if (system::isAjax() && (system::url(2) == 'close' || system::url(2) == 'open') && system::issetUrl(3)) {
             if (system::url(2) == 'open' && is_numeric(system::url(3))) {
                 $_SESSION['TREE_OPEN_NODES'][system::url(3)] = 1;
             } else {
                 if (isset($_SESSION['TREE_OPEN_NODES'][system::url(3)])) {
                     unset($_SESSION['TREE_OPEN_NODES'][system::url(3)]);
                 }
             }
             system::stop();
         } else {
             // По POST запросу формируем ветку дерева
             if (isset($_POST['id'])) {
                 if (!empty($_POST['id'])) {
                     //system::log($_POST['id']);
                     $_POST['id'] = str_replace('phtml_', '', $_POST['id']);
                     $pos = strpos($_POST['id'], '_');
                     $_POST['id'] = substr($_POST['id'], 0, strlen($_POST['id']) - (strlen($_POST['id']) - $pos));
                     //system::log($_POST['id']);
                 }
                 $_SESSION['TREE_OPEN_NODES'][$_POST['id']] = 1;
                 ormPages::init(array($_POST['id'] => 1));
                 // Строим одни уровень дерева
                 $tmp = $this->build_menu($_POST['id'], $TEMPLATE, false);
                 //echo str_replace('`%`', '%', $tmp);
                 echo $tmp;
                 system::stop();
             }
         }
         // Парсим дерево разделов
         if (isset($_SESSION['TREE_OPEN_NODES'])) {
             ormPages::init($_SESSION['TREE_OPEN_NODES']);
         }
         $subm = $this->build_menu($this->root_id, $TEMPLATE);
         page::assign('sub_items', $subm);
         page::assign('item.id', $this->root_id);
         page::assign('item.parent_id', '');
         page::assign('item.url', $this->root_url);
         page::assign('item.active', 1);
         page::assign('item.name', $this->root_title);
         page::assign('item.notice', '');
         page::assign('obj.ico', '/css_mpanel/tree/images/classes/core.png');
         page::assign('obj.url', '');
         page::assign('close', empty($subm) ? '' : ' open');
         page::fParse('items', $TEMPLATE['items']);
         page::fParse('frame_items', $TEMPLATE['frame_items']);
         // Выводим список прав для веточек
         $item = '';
         $zagl_width = 0;
         while (list($key, $right) = each($this->rights)) {
             if ($right['java'] == 1) {
                 $zagl_width += 20;
             }
             if ($right == 'empty' || !user::issetRight($right['name']) && $right['name'] != 'getUrl()') {
                 $item .= $right != 'empty' ? '' : page::parse($TEMPLATE['item_right_null']);
             } else {
                 page::assign('title', $right['title']);
                 page::assign('image_style', $right['class']);
                 page::assign('url', $main_url . $right['name'] . '/');
                 page::assign('hide_in_root', $right['show_in_root'] ? '' : ' hide_in_root');
                 if ($right['name'] == 'getUrl()') {
                     $templ = 'item_right_url';
                 } else {
                     $templ = $right['java'] == 1 ? 'item_right_del' : 'item_right';
                 }
                 if (!empty($right['list'])) {
                     $templ = 'item_right_list';
                     page::assign('list_id', $right['list']);
                     page::assign('list_html', $right['list_html']);
                     page::fParse('tree_list', $TEMPLATE['tree_list']);
                 }
                 $item .= page::parse($TEMPLATE[$templ]);
             }
         }
         page::assign('rights', $item);
         page::assign('act_link', $this->rightActive);
         page::assign('remove_link', $this->rightRemove);
         page::assign('load_link', $this->ajaxLink);
         page::assign('root_id', $this->root_id);
         page::assign('zagl_width', $zagl_width);
         // Текст сообщения об удалении элементов
         if (empty($this->del_title) || empty($this->del_text)) {
             $this->del_title = lang::get('TABLE_DROP_TITLE');
             $this->del_text = lang::get('TABLE_DROP_TEXT');
         }
         page::assign('del_title', $this->del_title);
         page::assign('del_text', $this->del_text);
         page::assign('width', $this->width);
         page::assign('width2', $this->width2);
         page::assign('left', $this->width - $this->width2);
         page::assign('style_prefix', $this->miniStyle ? '_mini' : '');
         page::assign('isEditable', $this->rightEdit ? 1 : 0);
         page::assign('isChangeActive', $this->rightActive ? 1 : 0);
         page::assign('isDragged', $this->rightRemove ? 1 : 0);
         page::assign('isShowRight', empty($this->rights) ? 0 : 1);
         return page::parse($TEMPLATE['main']);
     }
 }
Esempio n. 19
0
 public function del()
 {
     if (system::issetUrl(2) && is_numeric(system::url(2))) {
         // Одиночное удаление
         if (mailingProcess::delEmailById(system::url(2), system::url(3))) {
         }
         echo 'delete';
     } else {
         if (isset($_POST['objects'])) {
             // Множественное удаление
             while (list($id, $val) = each($_POST['objects'])) {
                 mailingProcess::delEmailById($id, system::url(3));
             }
             echo 'delete';
         }
     }
     system::stop();
 }
Esempio n. 20
0
 function toScreen()
 {
     $this->imageResize('screen');
     system::stop();
 }
Esempio n. 21
0
 // удаление объекта
 public function del()
 {
     if (system::issetUrl(2) && is_numeric(system::url(2))) {
         // Одиночное удаление
         ormObjects::get(system::url(2))->toTrash();
         echo 'delete';
     } else {
         if (isset($_POST['objects'])) {
             // Множественное удаление
             while (list($id, $val) = each($_POST['objects'])) {
                 ormObjects::get($id)->toTrash();
             }
             echo 'delete';
         }
     }
     system::stop();
Esempio n. 22
0
 /**
  * @return null
  * @param string $filename - Путь к файлу шаблона
  * @param boolean $absolut - Если true - путь считается абсолютным и вычисляется от корневой папки, в которой находится движок
  * @desc Обрабатывает указанный файл шаблона и выводит его на страницу
  */
 static function parseIt($filename, $absolut = false, $withoutCache = false)
 {
     if (!system::$isAdmin && !$absolut) {
         $site_prefix = domains::curId() == 1 && languages::curId() == 1 ? '' : '/__' . str_replace('.', '_', domains::curDomain()->getName()) . '_' . languages::curPrefix();
         if (file_exists(TEMPL_DIR . $site_prefix . $filename)) {
             $filename = TEMPL_DIR . $site_prefix . $filename;
         } else {
             if (file_exists(TEMPL_DIR . $site_prefix . '/structure/default.tpl')) {
                 $filename = TEMPL_DIR . $site_prefix . '/structure/default.tpl';
             } else {
                 echo lang::get('ERROR_TEMPL2');
                 system::stop();
             }
         }
     }
     while (list($key, $val) = each(self::$page_mas)) {
         self::assign($key, $val);
     }
     self::$arr = self::parse(file($filename));
     // Сохраняем страницу в кэш
     if (!$withoutCache && self::isCashePage()) {
         $page = array('html' => self::$arr, 'page_id' => ormPages::getCurPageId(), 'page_url' => system::getCurrentUrlPN(), 'active_pages' => ormPages::getActiveId(), 'host' => $_SERVER['HTTP_HOST']);
         cache::set(system::getCurrentUrlPN(), $page);
     }
     // Вторично обрабатывает шаблон
     self::$arr = self::parse(self::parse(self::$arr, 2), 2);
     // Выводит обработанный шаблон на печать
     //echo str_replace('`%`', '%', self::$arr);
     echo self::$arr;
     self::freshAll();
 }
Esempio n. 23
0
 public function del()
 {
     if (!isset($_POST['objects']) && system::issetUrl(2) && is_numeric(system::url(2))) {
         // Одиночное удаление
         $obj = ormObjects::get(system::url(2));
         if ($obj->isInheritor('user_group') && $obj->id != 32 && $obj->id != 48) {
             $obj->toTrash();
             echo 'delete';
         }
     } else {
         if (isset($_POST['objects'])) {
             // Множественное удаление
             while (list($id, $val) = each($_POST['objects'])) {
                 if (is_numeric($id)) {
                     $obj = ormObjects::get($id);
                     if ($obj->isInheritor('user_group') && $obj->id != 32 && $obj->id != 48) {
                         $obj->toTrash();
                     }
                 }
             }
             echo 'delete';
         }
     }
     system::stop();
 }
Esempio n. 24
0
 static function getContentFileSiteMap()
 {
     if (system::url(0) == 'sitemap.xml') {
         if (!($content = cache::get('sitemap.xml'))) {
             $content = ormPages::getFileSiteMap();
             // Записываем в кэш
             cache::set('sitemap.xml', $content);
         }
         header('Content-type: text/xml; charset=UTF-8');
         echo $content;
         system::stop();
     }
 }
Esempio n. 25
0
 public function act()
 {
     if (system::issetUrl(2) && is_numeric(system::url(2))) {
         // Одиночное изменение
         $obj = ormObjects::get(system::url(2));
         if ($obj->isInheritor('subscription')) {
             $obj->active = $obj->active ? false : true;
             $obj->save();
             if (!$obj->issetErrors()) {
                 echo $obj->active ? 'active' : 'no_active';
             }
         }
     } else {
         if (isset($_POST['objects'])) {
             // Множественное изменение
             $invert = true;
             while (list($id, $val) = each($_POST['objects'])) {
                 if (is_numeric($id)) {
                     $obj = ormObjects::get($id);
                     if ($obj->isInheritor('subscription')) {
                         $obj->active = $obj->active ? false : true;
                         $obj->save();
                         if ($obj->issetErrors()) {
                             $invert = false;
                         }
                     }
                 }
             }
             if ($invert) {
                 echo 'invert';
             }
         }
     }
     system::stop();
 }
Esempio n. 26
0
 public function moveto()
 {
     $obj = new ormField(system::url(2));
     $obj->setPosition(system::url(3));
     $obj->setGroupId(system::url(4));
     if ($obj->save()) {
         echo "ok";
     } else {
         print_r($obj->getErrorList());
         echo 'error';
     }
     system::stop();
 }
Esempio n. 27
0
    /**
     * @return string HTML
     * @param integer $obj - Экземпляр объекта (ormObject, ormPage)
     * @param string $action - Тип действия: "upd" - изменение, "add" - добавление
     * @desc Выводит форму изменения прав доступа для объекта
     */
    public static function getListForObject($obj, $action)
    {
        if (file_exists(MODUL_DIR . '/users/template/right_list_object.tpl')) {
            include MODUL_DIR . '/users/template/right_list_object.tpl';
        }
        if (isset($_POST['query'])) {
            // Формируем список подсказок для пользователя
            $sel = new ormSelect('user');
            $sel->fields('login');
            $sel->where('id', '<>', '29');
            $sel->where('login', 'LIKE', '%' . $_POST['query'] . '%');
            $users = '';
            while ($user = $sel->getObject()) {
                $zapi = $sel->getObjectNum() != 0 ? ', ' : '';
                $users .= $zapi . "'" . $user->login . "'";
            }
            echo "{ query:'" . $_POST['query'] . "', suggestions:[" . $users . "], data:[] }";
            system::stop();
        } else {
            if (isset($_POST['user_name'])) {
                // Добавляем выбранного пользователя в список
                $sel = new ormSelect('user');
                $sel->fields('login');
                $sel->where('id', '<>', '29');
                $sel->where('login', '=', $_POST['user_name']);
                $sel->limit(1);
                $user = $sel->getObject();
                if ($user instanceof ormObject) {
                    page::assign("group.id", $user->id);
                    page::assign("group.name", $user->login);
                    page::assign("checked_edit", '');
                    page::assign("checked_view", 'checked');
                    echo page::parse($TEMPLATE['group']);
                }
                system::stop();
            }
        }
        // Выводим список групп
        $sel = new ormSelect('user_group');
        $sel->where('id', '<>', '32');
        $sel->orderBy('name', asc);
        $groups = $sel->getData();
        $rights = array();
        if ($action == 'upd') {
            $users = db::q('SELECT o_id, login o_name
							FROM <<rights>>, <<objects>>, <<__user>>
							WHERE r_obj_id = "' . $obj->id . '" and
								  r_group_id = o_id and
								  obj_id = o_id and
								  o_class_id <> 33;', records);
            $groups = array_merge($groups, $users);
            $tmp = db::q('SELECT r_state, r_group_id FROM <<rights>> WHERE r_obj_id = "' . $obj->id . '";', records);
            while (list($key, $right) = each($tmp)) {
                $rights[$right['r_group_id']] = $right['r_state'];
            }
            $select_all = count($tmp) == 1 && empty($tmp[0]['r_group_id']) ? $tmp[0]['r_state'] : false;
        } else {
            $select_all = 2;
        }
        $items = '';
        $num = $edit_num = $view_num = 0;
        while (list($key, $group) = each($groups)) {
            $state = isset($rights[$group['o_id']]) ? $rights[$group['o_id']] : 0;
            if ($state == 2) {
                $edit_num++;
            }
            $checked_edit = $state == 2 || $select_all == 2 ? 'checked' : '';
            page::assign("checked_edit", $checked_edit);
            if ($state > 0) {
                $view_num++;
            }
            $checked_view = $state > 0 || $select_all > 0 ? 'checked' : '';
            page::assign("checked_view", $checked_view);
            page::assign("group.id", $group['o_id']);
            page::assign("group.name", $group['o_name']);
            $items .= page::parse($TEMPLATE['group']);
            $num = $key + 1;
        }
        $checked_edit = $select_all == 2 || $num == $edit_num ? 'checked' : '';
        page::assign("checked_edit", $checked_edit);
        $checked_view = $select_all > 0 || $num == $view_num ? 'checked' : '';
        page::assign("checked_view", $checked_view);
        page::assign("text.all_user", lang::get('STRUCTURE_RIGHT_ALL_USER'));
        page::assign("text.title", lang::get('STRUCTURE_RIGHT_TITLE'));
        page::assign("groups", $items);
        return page::parse($TEMPLATE['frame']);
    }
Esempio n. 28
0
 public function del()
 {
     if (system::issetUrl(2) && is_numeric(system::url(2))) {
         // Одиночное удаление
         if ($obj = ormObjects::get(system::url(2))) {
             if ($obj->isInheritor('subscribe_msg')) {
                 $obj->toTrash();
             }
         }
         echo 'delete';
     } else {
         if (isset($_POST['objects'])) {
             // Множественное удаление
             while (list($id, $val) = each($_POST['objects'])) {
                 if ($obj = ormObjects::get($id)) {
                     if ($obj->isInheritor('subscribe_msg')) {
                         $obj->toTrash();
                     }
                 }
             }
             echo 'delete';
         }
     }
     system::stop();
 }
Esempio n. 29
0
 public function del()
 {
     if (system::issetUrl(2) && is_numeric(system::url(2))) {
         // Одиночное удаление
         if ($obj = ormObjects::get(system::url(2), 'eshop_delivery_method')) {
             $obj->toTrash();
             echo 'delete';
         }
     } else {
         if (isset($_POST['objects'])) {
             // Множественное удаление
             while (list($id, $val) = each($_POST['objects'])) {
                 if ($obj = ormObjects::get($val, 'eshop_delivery_method')) {
                     $obj->toTrash();
                 }
             }
             echo 'delete';
         }
     }
     system::stop();
 }
Esempio n. 30
0
 static function json($param)
 {
     echo json_encode($param);
     system::stop();
 }