Ejemplo n.º 1
0
 public function addAction()
 {
     if (user::isGuest() && reg::getKey('/comments/only_reg')) {
         system::stop();
     }
     if (user::isGuest() && !system::validCapcha('random_image')) {
         system::json(array('error' => 1, 'data' => lang::get('FEEDBACK_ERROR1')));
     }
     // Добавляем новый комментарий
     $comment = new comment();
     $comment->setParentId(system::POST('parent_id'));
     $comment->setObjId(system::POST('obj_id'));
     $comment->setUserName(system::POST('username'));
     $comment->setEmail(system::POST('email'));
     $comment->setText(system::POST('text'));
     $comment->setSendEmail(system::POST('send_email'));
     $obj_id = $comment->save();
     if ($obj_id) {
         page::assign('current_url', system::POST('back_url'));
         $html = page::macros('comments')->view($comment->id());
         system::json(array('error' => 0, 'data' => $html));
     } else {
         system::json(array('error' => 2, 'data' => $comment->getErrorListText(' ')));
     }
     if (!empty($_POST['back_url']) && !system::isAjax()) {
         system::redirect($_POST['back_url'] . '#comment' . $obj_id, true);
     } else {
         system::stop();
     }
 }
Ejemplo n.º 2
0
 private static function init()
 {
     if (empty(self::$cur_lang)) {
         $lang_id = reg::getKey('/core/cur_lang/id');
         if (!empty($lang_id)) {
             // Если язык в системе один, загружаем его данные из реестра
             $lang_prefix = reg::getKey('/core/cur_lang/prefix');
             self::$langs[$lang_id] = array('l_id' => $lang_id, 'l_name' => reg::getKey('/core/cur_lang/name'), 'l_prefix' => $lang_prefix, 'id' => $lang_id);
             self::$langs_rel[$lang_prefix] = $lang_id;
         } else {
             // Языков много, определяем язык по URL`y
             if (system::issetUrl(0) && strlen(system::url(0)) < 6) {
                 self::$cur_lang = self::get(system::url(0));
                 if (self::$cur_lang instanceof language) {
                     system::clipUrl();
                     self::$isCliped = true;
                 }
             }
         }
         if (!self::$cur_lang instanceof language) {
             self::$cur_lang = self::get(domains::curDomain()->getDefLang());
         }
         if (!self::$cur_lang instanceof language) {
             die('не могу определить язык');
         }
     }
 }
Ejemplo n.º 3
0
 /**
  * @return NULL
  * @param int $goods_id - ID товара
  * @param int $count - Количество товаров
  * @desc Добавляет товар в корзину
  */
 static function addGoods($goods_id, $count)
 {
     if (!isset($_SESSION['basket'])) {
         $_SESSION['basket'] = array();
     }
     // Получаем экземпляр товара
     if (is_numeric($goods_id)) {
         $goods = ormPages::get($goods_id, 'goods');
     } else {
         if ($goods_id instanceof ormPage) {
             $goods = $goods_id;
         } else {
             $goods = false;
         }
     }
     // Добавляем в корзину
     if ($goods instanceof ormPage && $goods->isInheritor('goods')) {
         if (!reg::getKey('/eshop/check_count') || reg::getKey('/eshop/min_count') < $goods->count) {
             if (isset($_SESSION['basket'][$goods->id])) {
                 $_SESSION['basket'][$goods->id]['count']++;
             } else {
                 $_SESSION['basket'][$goods->id] = array('goods_id' => $goods->id, 'cost' => $goods->price, 'count' => $count);
             }
         }
     }
 }
Ejemplo n.º 4
0
 public function defAction()
 {
     ui::newButton(lang::get('BTN_SAVE'), "javascript:sendForm('save');");
     ui::newButton(lang::get('BTN_APPLY'), "javascript:sendForm('apply');");
     if (isset($_SESSION['STRUCTURE_LIST_FLAG']) && $_SESSION['STRUCTURE_LIST_FLAG']) {
         ui::setCancelButton('/structure/list');
     } else {
         ui::setCancelButton('/structure/tree');
     }
     $list = reg::getList(ormPages::getPrefix() . '/minitext', true);
     $texts = $js = array();
     foreach ($list as $val) {
         $texts[] = array('id' => $val['id'], 'description' => $val['description'], 'num' => '<center>%text_' . $val['id'] . '%</center>', 'text' => $val['value']);
         $js['text_' . $val['id'] . '_vvv'] = $val['value'];
     }
     // Форма редактирования
     $form = new uiMultiForm('change');
     if (reg::getKey('/core/noDelMiniTexts')) {
         $form->withoutRemoving();
     }
     $form->setRight('minitext_proc');
     $form->setData($texts);
     $form->addColumn('description', lang::get('STRUCTURE_TABLE_FIELD_12'), 200, lang::get('STRUCTURE_TABLE_FIELD_13'));
     $form->addColumn('text', lang::get('STRUCTURE_TABLE_FIELD_9'), 500, lang::get('STRUCTURE_TABLE_FIELD_10'));
     $form->addColumn('num', lang::get('STRUCTURE_TABLE_FIELD_8'), 150, lang::get('STRUCTURE_TABLE_FIELD_11'), false);
     $js = '<script language="javascript"> var textlist = ' . json_encode($js) . ';</script>';
     return $js . $form->getHTML('multi_form_memo');
 }
Ejemplo n.º 5
0
 public function defAction()
 {
     if (file_exists(MODUL_DIR . '/users/template/settings.tpl')) {
         include MODUL_DIR . '/users/template/settings.tpl';
     }
     ui::newButton(lang::get('BTN_SAVE_ONLY'), "javascript:sendForm('save');");
     page::assignArray(lang::get('USERS_FORM_FIELD'));
     page::assign('errorCountBlock', reg::getKey('/users/errorCountBlock'));
     // page::assign('errorCountCapcha', reg::getKey('/users/errorCountCapcha'));
     ui::CheckBox('gzip', 1, reg::getKey('/core/gzip'), lang::get('USERS_FORM_FIELD', 9));
     ui::CheckBox('reg', 1, reg::getKey('/users/reg'), lang::get('USERS_FORM_FIELD', 11));
     ui::CheckBox('activation', 1, reg::getKey('/users/activation'), lang::get('USERS_FORM_FIELD', 28));
     ui::CheckBox('confirm', 1, reg::getKey('/users/confirm'), lang::get('USERS_FORM_FIELD', 35));
     ui::CheckBox('ask_email', 1, reg::getKey('/users/ask_email'), lang::get('USERS_FORM_FIELD', 9));
     //авторизация чере соц. сети
     ui::CheckBox('twitter_bool', 1, reg::getKey('/users/twitter_bool'), lang::get('USERS_FORM_FIELD', 40));
     page::assign('twitter_id', reg::getKey('/users/twitter_id'));
     page::assign('twitter_secret', reg::getKey('/users/twitter_secret'));
     ui::CheckBox('vk_bool', 1, reg::getKey('/users/vk_bool'), lang::get('USERS_FORM_FIELD', 42));
     page::assign('vk_id', reg::getKey('/users/vk_id'));
     page::assign('vk_secret', reg::getKey('/users/vk_secret'));
     ui::CheckBox('ok_bool', 1, reg::getKey('/users/ok_bool'), lang::get('USERS_FORM_FIELD', 45));
     page::assign('ok_id', reg::getKey('/users/ok_id'));
     page::assign('ok_public', reg::getKey('/users/ok_public'));
     page::assign('ok_secret', reg::getKey('/users/ok_secret'));
     ui::CheckBox('facebook_bool', 1, reg::getKey('/users/facebook_bool'), lang::get('USERS_FORM_FIELD', 41));
     page::assign('facebook_id', reg::getKey('/users/facebook_id'));
     page::assign('facebook_secret', reg::getKey('/users/facebook_secret'));
     ui::CheckBox('yandex_bool', 1, reg::getKey('/users/yandex_bool'), lang::get('USERS_FORM_FIELD', 43));
     ui::CheckBox('google_bool', 1, reg::getKey('/users/google_bool'), lang::get('USERS_FORM_FIELD', 44));
     return page::parse($TEMPLATE['frame']);
 }
Ejemplo n.º 6
0
 public function defAction()
 {
     if (file_exists(MODUL_DIR . '/subscription/template/settings.tpl')) {
         include MODUL_DIR . '/subscription/template/settings.tpl';
     }
     ui::newButton(lang::get('BTN_SAVE_ONLY'), "javascript:sendForm('save');");
     page::assignArray(lang::get('SUBSCRIBE_TEXT_SETTINGS'));
     page::assign('count_mails_day', reg::getKey('/subscription/count_mails_day'));
     page::assign('count_mails', reg::getKey('/subscription/count_mails'));
     return page::parse($TEMPLATE['frame']);
 }
Ejemplo n.º 7
0
 public function defAction()
 {
     if (file_exists(MODUL_DIR . '/comments/template/settings.tpl')) {
         include MODUL_DIR . '/comments/template/settings.tpl';
     }
     ui::newButton(lang::get('BTN_SAVE_ONLY'), "javascript:sendForm('save');");
     page::assignArray(lang::get('ESHOP_TEXT_SETTINGS'));
     ui::CheckBox('only_reg', 1, reg::getKey('/comments/only_reg'), lang::get('COMMENT_ONLY_REG'));
     ui::CheckBox('com_moderation', 1, reg::getKey('/comments/com_moderation'), lang::get('COMMENT_COM_MODERATION'));
     page::assign('text_length', reg::getKey('/comments/text_length'));
     return page::parse($TEMPLATE['frame']);
 }
Ejemplo n.º 8
0
 public function defAction()
 {
     if (file_exists(MODUL_DIR . '/eshop/template/settings.tpl')) {
         include MODUL_DIR . '/eshop/template/settings.tpl';
     }
     ui::newButton(lang::get('BTN_SAVE_ONLY'), "javascript:sendForm('save');");
     page::assignArray(lang::get('ESHOP_TEXT_SETTINGS'));
     ui::SelectBox('fisrt_state', ormObjects::getObjectsByClass('eshop_status'), reg::getKey('/eshop/fisrt_state'));
     ui::CheckBox('only_reg', 1, reg::getKey('/eshop/only_reg'), lang::get('ESHOP_TEXT_SETTINGS', 1));
     ui::CheckBox('check_count', 1, reg::getKey('/eshop/check_count'), lang::get('ESHOP_TEXT_SETTINGS', 2));
     ui::CheckBox('dubl_to_email', 1, reg::getKey('/eshop/dubl_to_email'), lang::get('ESHOP_TEXT_SETTINGS', 3));
     //page::assign('nds', reg::getKey('/eshop/nds'));
     page::assign('min_count', reg::getKey('/eshop/min_count'));
     return page::parse($TEMPLATE['frame']);
 }
Ejemplo n.º 9
0
 public function defAction()
 {
     if (file_exists(MODUL_DIR . '/structure/template/settings.tpl')) {
         include MODUL_DIR . '/structure/template/settings.tpl';
     }
     //  ui::newButton(lang::get('BTN_SAVE_ONLY'), "javascript:sendForm('save');");
     ui::newButton(lang::get('BTN_SAVE'), "javascript:sendForm('save');");
     ui::newButton(lang::get('BTN_APPLY'), "javascript:sendForm('apply');");
     if (isset($_SESSION['STRUCTURE_LIST_FLAG']) && $_SESSION['STRUCTURE_LIST_FLAG']) {
         ui::setCancelButton('/structure/list');
     } else {
         ui::setCancelButton('/structure/tree');
     }
     // Основные настройки
     page::assignArray(lang::get('STRUCTURE_FORM_FIELD'));
     page::assign('title_prefix', reg::getKey(ormPages::getPrefix() . '/title_prefix'));
     page::assign('keywords', reg::getKey(ormPages::getPrefix() . '/keywords'));
     page::assign('description', reg::getKey(ormPages::getPrefix() . '/description'));
     ui::CheckBox('cur_date', 1, reg::getKey('/structure/' . domains::curId() . '/cur_date'), lang::get('STRUCTURE_FORM_FIELD', 4));
     ui::CheckBox('no_view_no_edit', 1, reg::getKey(ormPages::getPrefix() . '/no_view_no_edit'), lang::get('STRUCTURE_FORM_FIELD', 7));
     ui::CheckBox('view_as_tree', 1, reg::getKey(ormPages::getPrefix() . '/view_as_tree'), lang::get('STRUCTURE_FORM_FIELD', 18));
     ui::CheckBox('auto_index', 1, reg::getKey(ormPages::getPrefix('search') . '/auto_index'), lang::get('STRUCTURE_FORM_FIELD', 19));
     $file = ROOT_DIR . '/robots_part_' . domains::curDomain()->getName() . '.txt';
     $robots = file_exists($file) ? file_get_contents($file) : '';
     page::assign('robots', $robots);
     // Форма редактирования шаблонов страниц
     $form = new uiMultiForm('page_tpl');
     $form->insideForm();
     $form->setData(templates::getByDestination());
     $form->addColumn('t_name', lang::get('STRUCTURE_TABLE_FIELD_5'), 300);
     $form->addColumn('t_file', lang::get('STRUCTURE_TABLE_FIELD_6'), 300, lang::get('STRUCTURE_TABLE_FIELD_7'));
     page::assign('page_tpl', $form->getHTML());
     // Форма редактирования шаблонов объектов
     $form = new uiMultiForm('obj_tpl');
     $form->insideForm();
     $form->setData(templates::getByDestination(1));
     $form->addColumn('t_name', lang::get('STRUCTURE_TABLE_FIELD_5'), 300);
     $form->addColumn('t_file', lang::get('STRUCTURE_TABLE_FIELD_6'), 300, lang::get('STRUCTURE_TABLE_FIELD_7'));
     page::assign('obj_tpl', $form->getHTML());
     // Управление отображением
     $classes = ormClasses::getPagesClassList();
     ui::SelectBox('no_view_classes', $classes, reg::getList(ormPages::getPrefix() . '/no_view'), 600, '&nbsp;', '', 'selectbox_multi_big');
     ui::SelectBox('no_edit_classes', $classes, reg::getList(ormPages::getPrefix() . '/no_edit'), 600, '&nbsp;', '', 'selectbox_multi_big');
     return page::parse($TEMPLATE['frame']);
 }
Ejemplo n.º 10
0
 public function button($goods_id, $templ_name = 'button')
 {
     $templ_file = '/eshop/' . $templ_name . '.tpl';
     $TEMPLATE = page::getTemplate($templ_file);
     if (!is_array($TEMPLATE)) {
         return page::errorNotFound('eshop.button', $templ_file);
     }
     if ($goods = ormPages::get($goods_id, 'goods')) {
         page::assign('goods_id', $goods->id);
         page::assign('goods_price', $goods->price);
         if (reg::getKey('/eshop/only_reg') && user::isGuest()) {
             // кнопки нет, пользователь не зарегистрирован
             return page::parse($TEMPLATE['empty']);
         } else {
             // кнопка есть
             return page::parse($TEMPLATE['frame']);
         }
     }
 }
Ejemplo n.º 11
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;
         }
     }
 }
Ejemplo n.º 12
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');
 }
Ejemplo n.º 13
0
 public function proc()
 {
     reg::setKey('/core/gzip', system::POST('gzip', isBool));
     reg::setKey('/core/delToTrash', system::POST('delToTrash', isBool));
     reg::setKey('/core/scaleBigJpeg', system::POST('scaleBigJpeg', isBool));
     reg::setKey('/core/sizeBigJpeg', system::POST('sizeBigJpeg', isInt));
     reg::setKey('/core/noIE6', system::POST('noIE6', isBool));
     reg::setKey('/core/noIE7', system::POST('noIE7', isBool));
     reg::setKey('/core/noIE8', system::POST('noIE8', isBool));
     reg::setKey('/core/noDelMiniTexts', system::POST('noDelMiniTexts', isBool));
     // Загрузка ватермарка
     if (isset($_FILES['file_watermark']) && !empty($_FILES['file_watermark']['name'])) {
         if (system::fileExtIs($_FILES['file_watermark']['name'], array('png'))) {
             $watermark = system::copyFile($_FILES['file_watermark']['tmp_name'], $_FILES['file_watermark']['name'], '/upload/image');
         } else {
             ui::MessageBox(lang::get('CONFIG_SAVE_ERROR'), lang::get('CONFIG_WATERMARK_ERROR'));
         }
     }
     if (!isset($watermark) && isset($_POST['watermark'])) {
         if (system::fileExtIs($_POST['watermark'], array('png')) || empty($_POST['watermark'])) {
             $watermark = system::checkVar($_POST['watermark'], isString);
         } else {
             ui::MessageBox(lang::get('CONFIG_SAVE_ERROR'), lang::get('CONFIG_WATERMARK_ERROR') . '123');
         }
     }
     if (isset($watermark) && $watermark != reg::getKey('/core/watermark')) {
         reg::setKey('/core/watermark', $watermark);
         $this->deleteCacheWatermark($watermark);
     }
     // ******************	Сохранение доменов 	***************************
     function changeDomain($id, $data)
     {
         $online = isset($data['d_online']) ? $data['d_online'] : 0;
         $isAdd = empty($id) ? true : false;
         $obj = new domain($id);
         $obj->setName($data['d_name']);
         $obj->setOnline($online);
         $obj->setDefLang($data['d_def_lang']);
         $obj->setEmail($data['d_email']);
         $obj->setSiteName($data['d_sitename']);
         $id = $obj->save();
         if ($id === false) {
             ui::MessageBox(lang::get('TEXT_MESSAGE_ERROR'), $obj->getErrorListText());
         } else {
             if ($isAdd) {
                 ui::MessageBox(lang::get('CONFIG_DOMAIN_ADD'), lang::get('CONFIG_DOMAIN_TEXT'));
             }
         }
         return true;
     }
     function delDomain($id)
     {
         $obj = new domain($id);
         if ($obj->delete() === false) {
             ui::MessageBox(lang::get('TEXT_MESSAGE_ERROR'), $obj->getErrorListText());
         }
     }
     $form = new uiMultiForm('domains');
     $form->process('changeDomain', 'delDomain');
     // ******************	Сохранение языков 	***************************
     function changeLang($id, $data)
     {
         $isAdd = empty($id) ? true : false;
         $obj = new language($id);
         $obj->setName($data['l_name']);
         $obj->setPrefix($data['l_prefix']);
         $id = $obj->save();
         if ($id === false) {
             ui::MessageBox(lang::get('TEXT_MESSAGE_ERROR'), $obj->getErrorListText());
         } else {
             if ($isAdd) {
                 ui::MessageBox(lang::get('CONFIG_LANG_ADD'), lang::get('CONFIG_LANG_TEXT'));
             }
         }
         return true;
     }
     function delLang($id)
     {
         $obj = new language($id);
         if ($obj->delete() === false) {
             ui::MessageBox(lang::get('TEXT_MESSAGE_ERROR'), $obj->getErrorListText());
         }
     }
     $form = new uiMultiForm('langs');
     $form->process('changeLang', 'delLang');
     // Если в системе только один язык, сохраняем его данные в реестр для быстрой подгрузки
     if (count(languages::getAll(true)) == 1) {
         reg::setKey('/core/cur_lang/id', languages::get(1, true)->id());
         reg::setKey('/core/cur_lang/prefix', languages::get(1, true)->getPrefix());
         reg::setKey('/core/cur_lang/name', languages::get(1, true)->getName());
     } else {
         reg::delKey('/core/cur_lang');
     }
     // Если в системе только один домен, сохраняем его данные в реестр для быстрой подгрузки
     if (count(domains::getAll(true)) == 1) {
         reg::setKey('/core/cur_domain/id', domains::get(1, true)->id());
         reg::setKey('/core/cur_domain/name', domains::get(1, true)->getName());
         reg::setKey('/core/cur_domain/def_lang', domains::get(1, true)->getDefLang());
         reg::setKey('/core/cur_domain/sitename', domains::get(1, true)->getSiteName());
         reg::setKey('/core/cur_domain/email', domains::get(1, true)->getEmail());
         reg::setKey('/core/cur_domain/online', domains::get(1, true)->online());
         reg::setKey('/core/cur_domain/offline_msg', domains::get(1, true)->getOfflineMsg());
         reg::setKey('/core/cur_domain/error_msg', domains::get(1, true)->getErrorMsg());
     } else {
         reg::delKey('/core/cur_domain');
     }
     ui::MessageBox(lang::get('CONFIG_SAVE_OK'), lang::get('CONFIG_SAVE_OK_MSG'));
     reg::clearCache();
     system::log(lang::get('CONFIG_LOG_SAVE'), warning);
     system::redirect('/core/change');
 }
Ejemplo n.º 14
0
 private static function init()
 {
     if (!self::$isAdmin && system::$isAdmin) {
         // Определяем домен для панели управления
         // Определяем домен по УРЛу
         if (system::issetUrl(0)) {
             $tmp_domain = self::get(str_replace('_', '.', system::url(0)));
             if ($tmp_domain instanceof domain) {
                 self::$cur_domain = $tmp_domain;
                 system::clipUrl();
                 languages::setCurLang(self::$cur_domain->getDefLang());
             }
         }
         // Проверяем, имеет ли пользователь доступ к данному домену
         if (!user::issetRight(languages::curId() . ' ' . self::$cur_domain->id(), 'structure')) {
             //echo languages::curId().' '.self::$cur_domain->id();
             $langs = languages::getAll();
             $domains = domains::getAll();
             if (count($langs) > 1 || count($domains) > 1) {
                 while (list($num2, $domain) = each($domains)) {
                     reset($langs);
                     while (list($num1, $lang) = each($langs)) {
                         if (user::issetRight($lang['l_id'] . ' ' . $domain['d_id'], 'structure')) {
                             $link = ADMIN_URL;
                             if ($domain['d_id'] != 1) {
                                 $link .= '/' . str_replace('.', '_', $domain['d_name']);
                             }
                             if ($lang['l_id'] != 1) {
                                 $link = '/' . $lang['l_prefix'] . $link;
                             }
                             system::redirect($link, true);
                         }
                     }
                 }
             }
         }
         self::$isAdmin = true;
     } else {
         if (empty(self::$cur_domain)) {
             // Опеделяем домен для сайта
             $domain_id = reg::getKey('/core/cur_domain/id');
             if (!empty($domain_id)) {
                 // Если домен в системе один, загружаем его данные из реестра
                 $domain_name = reg::getKey('/core/cur_domain/name');
                 self::$domains[$domain_id] = array('d_id' => $domain_id, 'd_name' => $domain_name, 'd_domain_id' => '', 'd_def_lang' => reg::getKey('/core/cur_domain/def_lang'), 'd_sitename' => reg::getKey('/core/cur_domain/sitename'), 'd_email' => reg::getKey('/core/cur_domain/email'), 'd_online' => reg::getKey('/core/cur_domain/online'), 'd_offline_msg' => reg::getKey('/core/cur_domain/offline_msg'), 'd_error_msg' => reg::getKey('/core/cur_domain/error_msg'), 'id' => $domain_id);
                 self::$domains_rel[$domain_name] = $domain_id;
             } else {
                 $serv_name = $_SERVER['HTTP_HOST'];
                 if (substr($serv_name, 0, 4) == 'www.') {
                     $serv_name = substr($serv_name, 4, strlen($serv_name) - 4);
                 }
                 self::$cur_domain = self::get($serv_name);
             }
             if (!self::$cur_domain instanceof domain) {
                 self::$cur_domain = self::get(1);
             }
             if (!self::$cur_domain instanceof domain) {
                 die('не могу определить домен');
             }
             self::$cur_site_domain = self::$cur_domain;
         }
     }
 }
Ejemplo n.º 15
0
 public function save()
 {
     if (!$this->issetErrors()) {
         if (!empty($this->id)) {
             return $this->changeObject();
         } else {
             $this->setActive(!reg::getKey('/comments/com_moderation'));
             return $this->createObject();
         }
     }
     return false;
 }
Ejemplo n.º 16
0
    /**
    * @return array(
                	'count' => 0,     		// Общее количество страниц
                	'pages' => array()      // Результат поиска. Список ID страниц с учетом параметра $limit
                );
    * @param array $tags - список ID тегов
    * @param int $limit - Максимальное количество страниц в результатах поиска
    * @param int $start_pos - Порядковый номер страницы, с которой начнется вывод результатов
    * @param array $classes_filter - Список ORM-классов, по которым ведется поиск
    * @desc Формирует список страниц имеющих указанные теги.
    */
    static function find($tags, $limit = 10, $start_pos = 0, $classes_filter = array())
    {
        if (!empty($tags)) {
            $q_tags = '';
            foreach ($tags as $id) {
                $or = empty($q_tags) ? '' : ' AND ';
                $q_tags .= $or . 't_id = "' . $id . '"';
            }
            // Генерируем sql-запрос
            if (!empty($q_tags)) {
                // Устанавливаем видимость объектов с учестом прав доступа пользователя
                $state = system::$isAdmin && reg::getKey(ormPages::getPrefix() . '/no_view_no_edit') ? '= 2' : '> 0';
                $groups = '';
                $m = user::getGroups();
                while (list($key, $val) = each($m)) {
                    $groups .= ' or r_group_id = "' . $key . '"';
                }
                // Формируем фильтр по классам
                $cf = '';
                if (!empty($classes_filter) && is_array($classes_filter)) {
                    while (list($num, $class) = each($classes_filter)) {
                        if ($c = ormClasses::get($class)) {
                            $or = empty($cf) ? '' : ' OR ';
                            $cf .= $or . 'o_class_id = "' . $c->id() . '"';
                        }
                    }
                    if (!empty($cf)) {
                        $cf = 'and (' . $cf . ')';
                    }
                }
                // Получаем количество объектов
                $sql = 'SELECT count(tr_obj_id) FROM (SELECT tr_obj_id
	            		FROM <<tags>>, <<tags_rels>>, <<rights>>, <<objects>>, <<pages>>
	            		WHERE t_id = tr_tag_id and
	            			tr_obj_id = r_obj_id and
	            			r_state ' . $state . ' and
	            			(
	            				r_group_id is NULL or
	            				r_group_id = "' . user::get('id') . '"
	            				' . $groups . '
	            			) and
	            			(' . $q_tags . ') and
	            			tr_obj_id = o_id and
	            			o_id = p_obj_id and
	            			active = 1 ' . $cf . '
	            		GROUP BY tr_obj_id) t;';
                $count = db::q($sql, value);
                // Получаем список объектов
                if ($count > 0) {
                    $sql = 'SELECT tr_obj_id page_id
		            		FROM <<tags>>, <<tags_rels>>, <<rights>>, <<objects>>, <<pages>>
		            		WHERE  t_id = tr_tag_id and
	            			    tr_obj_id = r_obj_id and
		            			r_state ' . $state . ' and
		            			(
		            				r_group_id is NULL or
		            				r_group_id = "' . user::get('id') . '"
		            				' . $groups . '
		            			) and
		            			(' . $q_tags . ') and
		            			tr_obj_id = o_id and
		            			o_id = p_obj_id and
		            			active = 1 ' . $cf . '
		            		GROUP BY tr_obj_id';
                    if (empty($start_pos)) {
                        $sql .= ' LIMIT ' . $limit . ';';
                    } else {
                        $sql .= ' LIMIT ' . $start_pos . ', ' . $limit . ';';
                    }
                    $mas = db::q($sql, records);
                } else {
                    $mas = array();
                }
                return array('count' => $count, 'pages' => $mas);
            }
        }
    }
Ejemplo n.º 17
0
 /**
  * @return string
  * @param string $templ_name - Шаблон оформления
  * @desc МАКРОС: Выводит форму второго шага авторизации через соц сети, если требуется указать e-mail или согласиться с правилами.
  */
 function socialAuthConfirm($templ_name = 'social_auth_confirm')
 {
     $templ_file = '/users/' . $templ_name . '.tpl';
     $TEMPLATE = page::getTemplate($templ_file);
     if (!is_array($TEMPLATE)) {
         return page::errorNotFound('users.socialAuthConfirm', $templ_file);
     }
     if (user::isGuest() && !empty($_SESSION['SOCIAL_AUTH_USER_INFO'])) {
         page::assign('obj.email', '');
         foreach ($_SESSION['SOCIAL_AUTH_USER_INFO'] as $key => $val) {
             page::assign('obj.' . $key, $val);
         }
         page::assign('email_block', reg::getKey('/users/ask_email') && empty($_SESSION['SOCIAL_AUTH_USER_INFO']['email']) ? page::parse($TEMPLATE['email']) : '');
         page::assign('confirm_block', reg::getKey('/users/confirm') ? page::parse($TEMPLATE['confirm']) : '');
         // Вывод сообщения об ошибках
         page::parseError('social_auth_confirm');
         return page::parse($TEMPLATE['frame']);
     }
 }
Ejemplo n.º 18
0
    public function defAction()
    {
        if (!reg::getKey(ormPages::getPrefix() . '/view_as_tree')) {
            system::redirect('/structure/list');
        }
        $_SESSION['STRUCTURE_LIST_FLAG'] = 0;
        // Если страниц нет, предлагаем добавить новую
        if (ormPages::getCountOfSection(0) == 0) {
            ui::MessageBox(lang::get('STRUCTURE_PAGE_NOT_FOUND'), lang::get('STRUCTURE_PAGE_NOT_FOUND2'));
            system::redirect('/structure/page_add');
        }
        $types = ormClasses::get('section')->getAllInheritors();
        $no_edit = reg::getList(ormPages::getPrefix() . '/no_edit');
        $elem_list = $cat_list = '';
        while (list($id, $name) = each($types)) {
            if (!in_array($id, $no_edit)) {
                $obj = ormClasses::get($id);
                $pach = '/css_mpanel/tree/images/';
                $ico = 'classes/' . $obj->getSName() . '.png';
                if (!file_exists(ROOT_DIR . $pach . $ico)) {
                    $ico = 'file1.gif';
                }
                if ($obj->isInheritor('category') || $obj->getSName() == 'section') {
                    $cat_list .= '
			    	<li><img src="' . $pach . $ico . '">
			    	<a name="' . system::au() . '/structure/page_add/%obj_id%/' . $obj->getSName() . '" href="">' . $obj->getName() . '</a></li>';
                } else {
                    $elem_list .= '
			    	<li ><img src="' . $pach . $ico . '">
			    	<a name="' . system::au() . '/structure/page_add/%obj_id%/' . $obj->getSName() . '" href="">' . $obj->getName() . '</a></li>';
                }
            }
        }
        $class_list = '<ul>' . $cat_list . '</ul><ul>' . $elem_list . '</ul>';
        function getPageNotice($page)
        {
            $notice = '';
            if ($page->is_home_page) {
                $notice = lang::get('STRUCTURE_TREE_TEXT1');
            }
            if ($page->other_link != '') {
                $notice = lang::get('STRUCTURE_TREE_TEXT3');
            }
            if (!$page->view_in_menu) {
                if (!empty($notice)) {
                    $notice .= ', ';
                }
                $notice .= lang::get('STRUCTURE_TREE_TEXT2');
            }
            if (!empty($notice)) {
                return '(' . $notice . ')';
            } else {
                return '';
            }
        }
        $tree = new ormTree(975, 265);
        $tree->setClass('ormPage');
        $tree->setRoot(0, reg::getKey(ormPages::getPrefix() . '/title_prefix'), 'settings');
        $tree->setRightEdit('page_upd');
        $tree->setRightActive('page_proc_act');
        $tree->setRightRemove('page_proc_moveto');
        $tree->setRightAjaxLoad('tree');
        $tree->setDelMessage(lang::get('STRUCTURE_DEL_TITLE'), lang::get('STRUCTURE_DEL_TEXT'));
        $tree->addRight('getUrl()', lang::get('STRUCTURE_PAGE_URL'), 'view_image');
        $tree->addEmptyRight();
        $tree->addEmptyRight();
        $tree->addRight('page_add', lang::right('page_add'), 'add_image', 0, 1, 'class_list', $class_list);
        $tree->addEmptyRight();
        $tree->addRight('list', lang::right('list'), 'list_block_image');
        $tree->addEmptyRight();
        $tree->addRight('page_upd', lang::right('page_upd'), 'compose_image');
        $tree->addRight('page_copy', lang::right('page_copy'), 'copy_image', 0, 0);
        $tree->addRight('page_history', lang::right('page_history'), 'history_image', 0, 0);
        $tree->addRight('page_del', lang::right('page_del'), 'drop_image', 1, 0);
        $tree->setNotice('getPageNotice');
        return $tree->getHTML();
    }
Ejemplo n.º 19
0
 /**
  * @return HTML
  * @param int $comment_id - ID комментария
  * @param string $templ_name - Шаблон оформления комментария
  * @desc МАКРОС: Выводит информацию об указанном комментарии
  */
 public function view($comment_id, $templ_name = 'tree')
 {
     $templ_file = '/comments/' . $templ_name . '.tpl';
     $TEMPLATE = page::getTemplate($templ_file);
     if (!is_array($TEMPLATE)) {
         return page::errorNotFound('comments.view', $templ_file);
     }
     if ($comment = comments::get($comment_id)) {
         if ($comment->isActive() || reg::getKey('/comments/show_noactive')) {
             page::assign('obj.id', $comment->id());
             page::assign('obj.parent_id', $comment->getParentId());
             page::assign('obj.user_id', $comment->getUserId());
             page::assign('obj.publ_date', $comment->getPublDate());
             page::assign('obj.username', $comment->getUserName());
             page::assign('obj.email', $comment->getEmail());
             page::assign('obj.text', $comment->getText());
             page::assign('obj.rate', $comment->getRate());
             if (isset($_SESSION['comments_rate'][$comment->id()])) {
                 page::fParse('rate', $TEMPLATE['rate_change']);
             } else {
                 page::fParse('rate', $TEMPLATE['rate']);
             }
             page::assign('list', '');
             return page::parse($TEMPLATE['list']);
         }
     }
 }
Ejemplo n.º 20
0
 /**
 * @return null
 * @param ormPage $page - страница для индексации
 * @desc Проводит индексацию страницы, предварительно удалив старые
 		данные индексации и проверив возможность такой индексации.
 */
 static function autoIndex($page)
 {
     if (reg::getKey(ormPages::getPrefix('search') . '/auto_index')) {
         if ($page instanceof ormPage) {
             // Если есть, удаляем старый индекс страницы
             self::delIndexForPage($page->id);
             self::indexPage($page);
         }
     }
 }
Ejemplo n.º 21
0
    public function defAction()
    {
        $_SESSION['STRUCTURE_LIST_FLAG'] = 1;
        // Если страниц нет, предлагаем добавить новую
        if (ormPages::getCountOfSection(0) == 0) {
            ui::MessageBox(lang::get('STRUCTURE_PAGE_NOT_FOUND'), lang::get('STRUCTURE_PAGE_NOT_FOUND2'));
            system::redirect('/structure/page_add');
        }
        $obj_id = system::issetUrl(2) ? system::url(2) : 0;
        function getPageNotice($page)
        {
            $notice = '';
            if ($page->is_home_page) {
                $notice = lang::get('STRUCTURE_TREE_TEXT12');
            }
            if ($page->other_link != '') {
                $notice = lang::get('STRUCTURE_TREE_TEXT32');
            }
            if (!$page->view_in_menu) {
                if (!empty($notice)) {
                    $notice .= ', ';
                }
                $notice .= lang::get('STRUCTURE_TREE_TEXT22');
            }
            if (!empty($notice)) {
                return '(' . $notice . ')';
            } else {
                return '';
            }
        }
        // Вывод дерева объектов
        $tree = new ormTree(328, 57);
        $tree->setClass('ormPage');
        $tree->setRoot(0, reg::getKey(ormPages::getPrefix() . '/title_prefix'), 'list/0');
        $tree->setNotice('getPageNotice');
        $tree->setRightEdit('list');
        $tree->setRightActive('page_proc_act');
        $tree->setRightRemove('page_proc_moveto');
        $tree->setRightAjaxLoad('list');
        $tree->setDelMessage(lang::get('STRUCTURE_DEL_TITLE'), lang::get('STRUCTURE_DEL_TEXT'));
        $tree->addRight('page_upd', lang::right('page_upd'), 'compose_image');
        $tree->addRight('page_add', lang::right('page_add'), 'add_image');
        //, 'class_list', $class_list
        ui::setLeftPanel($tree->getHTML());
        // Заголовок страницы
        ui::setHeader(lang::right('tree'));
        if (!empty($obj_id) && ($obj = ormPages::get($obj_id))) {
            ui::setNaviBar(lang::right('list'));
            ui::setHeader($obj->name);
            ui::setBackButton('/structure/list/' . $obj->getParentId());
        } else {
            $obj_id = 0;
        }
        // Формируем список классов для быстрого добавления
        $class_name = ormPages::getPopularClass($obj_id);
        $class = ormClasses::get($class_name);
        $types = ormClasses::get('section')->getAllInheritors();
        $no_edit = reg::getList(ormPages::getPrefix() . '/no_edit');
        $elem_list = $cat_list = '';
        while (list($id, $name) = each($types)) {
            if (!in_array($id, $no_edit)) {
                $bc = ormClasses::get($id);
                $pach = '/css_mpanel/tree/images/';
                $ico = 'classes/' . $bc->getSName() . '.png';
                if (!file_exists(ROOT_DIR . $pach . $ico)) {
                    $ico = 'file1.gif';
                }
                if ($bc->isInheritor('category') || $bc->getSName() == 'section') {
                    $cat_list .= '
			    	<li><img src="' . $pach . $ico . '">
			    	<a href="' . system::au() . '/structure/page_add/' . $obj_id . '/' . $bc->getSName() . '">' . $bc->getName() . '</a></li>';
                } else {
                    $elem_list .= '
			    	<li ><img src="' . $pach . $ico . '">
			    	<a href="' . system::au() . '/structure/page_add/' . $obj_id . '/' . $bc->getSName() . '">' . $bc->getName() . '</a></li>';
                }
            }
        }
        $class_list = '<ul>' . $cat_list . '</ul><ul>' . $elem_list . '</ul>';
        ui::newButton(lang::get('PANEL_BTN_ADD_PART') . $class->getPadej(0), "/structure/page_add/" . $obj_id, 'class_list', $class_list);
        // Формируем выборку страниц для таблицы
        $sel = new ormSelect();
        $sel->findInPages();
        $sel->where('parents', '=', $obj_id);
        // Определяем способ сортировки списка
        $order_by = !empty($obj_id) ? $obj->order_by : '';
        if (!empty($order_by)) {
            $pos = strpos($order_by, ' ');
            if ($pos) {
                $parram = substr($order_by, $pos + 1);
                $order_by = substr($order_by, 0, $pos);
            } else {
                $parram = '';
            }
            $sel->orderBy($order_by, $parram);
        } else {
            $sel->orderBy(position, asc);
        }
        // Вывод таблицы
        $table = new uiTable($sel);
        $table->formatValues(true);
        $table->showSearch(true);
        $table->hideEmptyColumns(true);
        $table->addColumn('name', lang::get('STRUCTURE_TABLE_FIELD_1'), 500, true);
        $table->addColumn('image', lang::get('STRUCTURE_TABLE_FIELD_2'), 400, false, false);
        $table->addColumn('price', lang::get('STRUCTURE_TABLE_FIELD_3'), 400);
        $table->addColumn('publ_date', lang::get('STRUCTURE_TABLE_FIELD_4'), 400);
        $table->defaultRight('page_upd');
        $table->addRight('page_upd', 'edit', single);
        $table->addRight('list', 'list', single);
        $table->addRight('page_history', 'history', single);
        $table->addRight('page_proc_act', 'active', multi);
        $table->addRight('page_del', 'drop', multi);
        $table->setDelMessage(lang::get('STRUCTURE_DEL_TITLE'), lang::get('STRUCTURE_DEL_TITLE'));
        $table->setMultiDelMessage(lang::get('STRUCTURE_DEL_TITLE_MULTI'), lang::get('STRUCTURE_DEL_TEXT_MULTI'));
        return $table->getHTML();
    }
Ejemplo n.º 22
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();
         }
     }
 }
Ejemplo n.º 23
0
 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();
 }
Ejemplo n.º 24
0
 static function getFileSiteMap()
 {
     self::init();
     $cur_date = reg::getKey('/structure/' . domains::curId() . '/cur_date');
     $text = '';
     reset(self::$pages);
     foreach (self::$pages as $page) {
         if ($page['active'] && $page['in_index'] && empty($page['other_link'])) {
             $date = date('Y-m-d', strtotime($page['o_change_date']));
             if ($cur_date) {
                 $left = (time() - strtotime($page['o_change_date'])) / 86400;
                 if ($left > 30) {
                     $date = date('Y-m-d');
                 }
             }
             $url = self::getPageUrlById($page['o_id']);
             $priority = $page['is_home_page'] ? 1 : 1 - (count(explode('/', $url)) - 1) * 0.1;
             $tmp = '';
             $tmp .= '<loc>http://' . domains::curDomain()->getName() . $url . '</loc>';
             $tmp .= '<lastmod>' . $date . '</lastmod>';
             $tmp .= '<priority>' . $priority . '</priority>';
             $text .= '<url>' . $tmp . '</url>';
         }
     }
     return '<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">' . $text . '</urlset>';
 }
Ejemplo n.º 25
0
 private function sendStateMsg()
 {
     if (!empty($this->obj)) {
         if ($this->change_state && ($state = ormObjects::get($this->obj->state)) && $state->info) {
             page::assign('order.id', $this->obj->id);
             page::assign('order.number', $this->getNumber());
             page::assign('order.cost', $this->getTotalCost());
             // Информация о доставке
             page::assign('order.delivery', $this->obj->_delivery);
             page::assign('order.delivery_price', $this->getDeliveryPrice());
             page::assign('order.name', $this->obj->delivery_name);
             page::assign('order.surname', $this->obj->delivery_surname);
             page::assign('order.phone', $this->obj->delivery_phone);
             page::assign('order.address', $this->obj->delivery_address);
             page::assign('username', user::get('surname') . ' ' . user::get('name'));
             page::assign('goods_list', page::macros('eshop')->goodsList($this->obj->id, 'goods_list_email'));
             $text = str_replace(array('{', '}'), '%', $state->email_msg);
             $title = str_replace(array('{', '}'), '%', $state->email_title);
             $mail = new phpmailer();
             $mail->WordWrap = 50;
             $mail->IsHTML(true);
             $mail->From = domains::curDomain()->getEmail();
             $mail->FromName = domains::curDomain()->getSiteName();
             $mail->Subject = page::parse($title);
             $mail->Body = page::parse($text);
             // Отправляем письмо пользователю
             $mail->AddAddress($this->obj->email);
             $mail->Send();
             // Отправляем письмо администратору
             if ($state->id == reg::getKey('/eshop/fisrt_state') && reg::getKey('/eshop/dubl_to_email')) {
                 $mail->ClearAddresses();
                 $mail->AddAddress(domains::curDomain()->getEmail());
                 $mail->Send();
             }
         }
     }
 }
Ejemplo n.º 26
0
 public function tagAction()
 {
     $templ_file = '/search/gettag.tpl';
     $TEMPLATE = page::getTemplate($templ_file);
     if (!is_array($TEMPLATE)) {
         return page::errorNotFound('search.getTag', $templ_file);
     }
     if (system::issetUrl(2) && ($tag = tags::infoTag(system::url(2)))) {
         $msg = lang::get('SEARCH_H1_TAGS') . ' "' . $tag['name'] . '"';
         page::globalVar('h1', $msg);
         page::globalVar('title', $msg);
         // Получаем список классов
         $classes_filter = array();
         if (!empty($_POST['classes'])) {
             $tmp = explode(",", $_POST['classes']);
             $classes_filter = array();
             foreach ($tmp as $v) {
                 $v = trim($v);
                 if (!empty($v)) {
                     $classes_filter[] = $v;
                 }
             }
         }
         $max_count = reg::getKey(ormPages::getPrefix('search') . '/max_count');
         $start = (system::getCurrentNavNum() - 1) * $max_count;
         $result = tags::find(array($tag['id']), $max_count, $start, $classes_filter);
         $list = '';
         while (list($num, $val) = each($result['pages'])) {
             if ($page = ormPages::get($val['page_id'])) {
                 page::assign('obj.id', $page->id);
                 page::assign('obj.num', $num + $start + 1);
                 page::assign('obj.name', $page->name);
                 page::assign('obj.url', $page->_url);
                 //page::assign('obj.content', $page->content);
                 $cn = $page->getClass()->getSName();
                 $block_name = isset($TEMPLATE['list_' . $cn]) ? 'list_' . $cn : 'list';
                 $list .= page::parse($TEMPLATE[$block_name]);
             }
         }
         page::assign('count_page', ceil($result['count'] / $max_count));
     } else {
         $list = '';
         $msg = lang::get('SEARCH_H1_TAGS2');
         page::globalVar('h1', $msg);
         page::globalVar('title', $msg);
     }
     if (!empty($list)) {
         page::assign('list', $list);
         page::fParse('list', $TEMPLATE['frame_list']);
     } else {
         page::fParse('list', $TEMPLATE['not_found']);
     }
     return page::parse($TEMPLATE['frame']);
 }
Ejemplo n.º 27
0
    public function defAction()
    {
        // Устанавливаем статус системы "в режиме администрирования".
        system::$isAdmin = true;
        page::$macros = 0;
        // Попытка авторизации
        if (!empty($_POST['enter'])) {
            if (!user::auth($_POST['login'], $_POST['passw'])) {
                $this->showAuthForm(1);
            } else {
                header("Location: " . $_SERVER["HTTP_REFERER"]);
            }
        }
        // Если пользователь не админ, показываем форму авторизации
        if (!user::isAdmin()) {
            $this->showAuthForm();
        }
        // Определяем текущий домен
        domains::curDomain();
        // Выход из системы
        if (system::issetUrl(0) && system::url(0) == 'logout') {
            user::logout();
        }
        if (system::url(0) == 'showhide') {
            $_SESSION['SH_FIELDS'] = system::url(1) == 0 ? 'hide' : 'show';
            system::stop();
        }
        // Обработка запросов от поля ObjectLinks
        ui::checkObjectLinks();
        system::$defTemplate = MODUL_DIR . '/mpanel/template/default.tpl';
        // Определяем модуль
        if (!system::issetUrl(0)) {
            system::setUrl(0, user::getDefModul());
        }
        // Если есть ссылка на обработчик формы
        if (!empty($_POST['right'])) {
            system::setUrl(1, system::POST('right', isVarName));
        }
        // Определяем право
        if (system::issetUrl(1)) {
            // Проверяем существует ли указанное право
            if (user::issetRight(system::url(1))) {
                $currRight = system::url(1);
            } else {
                if (user::issetRight(str_replace('_proc', '', system::url(1)))) {
                    $currRight = system::url(1);
                }
            }
        } else {
            // Пытаемся найти право по умолчанию
            $def_right = user::getDefaultRight(system::url(0));
            if ($def_right) {
                $currRight = $def_right;
                system::setUrl(1, $def_right);
            }
        }
        $this->getMenu();
        page::assign('current_url', system::getCurrentUrl());
        page::assign('admin_url', system::au());
        if (!empty($currRight)) {
            // Определяем имя и метод контролера
            $pos = strpos($currRight, '_');
            if ($pos) {
                $class_name = '__' . substr($currRight, 0, $pos);
                $action_name = substr($currRight, $pos + 1, strlen($currRight) - $pos);
            } else {
                $class_name = '__' . $currRight;
                $action_name = 'defAction';
            }
            $mod_name = MODUL_DIR . '/' . system::url(0) . '/' . $class_name . '.php';
            // Пытаемся подгрузить модуль
            if (file_exists($mod_name)) {
                include $mod_name;
                if (file_exists(MODUL_DIR . '/' . system::url(0) . '/lang-ru.php')) {
                    include MODUL_DIR . '/' . system::url(0) . '/lang-ru.php';
                }
                ui::setHeader(lang::right($currRight));
                if (class_exists($class_name)) {
                    eval('$c = new ' . $class_name . '();');
                    if (ui::$stop) {
                        $content = '.';
                    } else {
                        if (method_exists($c, $action_name)) {
                            $content = call_user_func(array($c, $action_name));
                        }
                    }
                }
            }
            if (empty($content)) {
                $msg = lang::get('TEXT_PROC_NOTFOUND2') . '<br />' . system::getCurrentUrl() . '<br /><br />
	                        ' . lang::get('TEXT_PROC_NOTFOUND3') . '<br />' . $mod_name . '<br /><br />
	                        ' . lang::get('TEXT_PROC_NOTFOUND4');
                system::log(lang::get('TEXT_PROC_NOTFOUND') . ' ' . system::getCurrentUrl());
                ui::MessageBox(lang::get('TEXT_PROC_NOTFOUND'), $msg);
                system::redirect('/');
            }
        } else {
            system::log(lang::get('TEXT_ERROR_RIGHT_LOG') . system::getCurrentUrl());
            ui::MessageBox(lang::get('TEXT_ERROR_RIGHT'), lang::get('TEXT_ERROR_RIGHT2'));
            system::redirect('/');
        }
        //Производим сжатие страницы
        if (reg::getKey('/config/gzip')) {
            $PREFER_DEFLATE = false;
            $FORCE_COMPRESSION = false;
            $AE = isset($_SERVER['HTTP_ACCEPT_ENCODING']) ? $_SERVER['HTTP_ACCEPT_ENCODING'] : $_SERVER['HTTP_TE'];
            $support_gzip = strpos($AE, 'gzip') !== FALSE || $FORCE_COMPRESSION;
            $support_deflate = strpos($AE, 'deflate') !== FALSE || $FORCE_COMPRESSION;
            if ($support_gzip && $support_deflate) {
                $support_deflate = $PREFER_DEFLATE;
            }
            if ($support_deflate) {
                header("Content-Encoding: deflate");
                ob_start("compress_output_deflate");
            } else {
                if ($support_gzip) {
                    header("Content-Encoding: gzip");
                    ob_start("compress_output_gzip");
                } else {
                    ob_start();
                }
            }
        }
        return ui::getMainHTML($content);
    }
Ejemplo n.º 28
0
 public function toTrash()
 {
     if (!empty($this->id)) {
         if (reg::getKey('/core/delToTrash')) {
             $ret = db::q('UPDATE <<objects>> SET o_to_trash = 1 WHERE o_id = "' . $this->id . '";');
             if ($ret === false) {
                 $this->newError(12, 'Ошибка в SQL запросе!');
                 return false;
             }
             system::revue($this, lang::get('REVUE_TO_TRASH'), info, 1);
             return true;
         } else {
             $this->delete();
         }
     } else {
         return false;
     }
 }
Ejemplo n.º 29
0
 static function start()
 {
     header('Content-Type: text/html; charset=utf-8');
     self::parseUrl();
     // Опредяем текущий язык и домен (в случае необходимости обрезаем URL)
     languages::curLang();
     // Устанавливаем в доступ языковые переменные
     if (file_exists(MODUL_DIR . '/core/sitelang-' . languages::curPrefix() . '.php')) {
         include MODUL_DIR . '/core/sitelang-' . languages::curPrefix() . '.php';
         lang::setLang($LANG);
     }
     // Подключаем класс для работы с текущим пользователем
     user::init();
     // активация шаблонной системы
     self::$defTemplate = '/structure/default.tpl';
     page::init('%', '%');
     page::globalVar('h1', '');
     page::globalVar('title', '');
     page::globalVar('site_name', domains::curDomain()->getSiteName());
     page::globalVar('base_email', domains::curDomain()->getEmail());
     page::globalVar('user_id', user::get('id'));
     page::globalVar('pre_lang', languages::pre());
     page::globalVar('time', time());
     page::globalVar('current_url', self::getCurrentUrl());
     page::globalVar('current_url_pn', self::getCurrentUrlPN());
     page::assign('current_url', self::getCurrentUrl());
     page::assign('current_url_pn', self::getCurrentUrlPN());
     // Заглушка для IE6
     if (reg::getKey('/core/noIE6') && preg_match('/msie/i', $_SERVER['HTTP_USER_AGENT']) && !preg_match('/opera/i', $_SERVER['HTTP_USER_AGENT'])) {
         $val = explode(" ", stristr($_SERVER['HTTP_USER_AGENT'], 'msie'));
         if ($val[1] == '6.0;') {
             page::parseIt('/ieDie.tpl', false, true);
             system::stop();
         }
     }
     // Заглушка для IE7
     if (reg::getKey('/core/noIE7') && preg_match('/msie/i', $_SERVER['HTTP_USER_AGENT']) && !preg_match('/opera/i', $_SERVER['HTTP_USER_AGENT'])) {
         $val = explode(" ", stristr($_SERVER['HTTP_USER_AGENT'], 'msie'));
         if ($val[1] == '7.0;') {
             page::parseIt('/ieDie.tpl', false, true);
             system::stop();
         }
     }
     // Заглушка для IE8
     if (reg::getKey('/core/noIE8') && preg_match('/msie/i', $_SERVER['HTTP_USER_AGENT']) && !preg_match('/opera/i', $_SERVER['HTTP_USER_AGENT'])) {
         $val = explode(" ", stristr($_SERVER['HTTP_USER_AGENT'], 'msie'));
         if ($val[1] == '8.0;') {
             page::parseIt('/ieDie.tpl', false, true);
             system::stop();
         }
     }
     // Оффлайн сообщение
     if (!domains::curDomain()->online() && !user::isAdmin() && !(self::issetUrl(0) && self::url(0) == 'mpanel')) {
         page::globalVar('content', domains::curDomain()->getOfflineMsg());
         page::parseIt('/offline.tpl', false, true);
         system::stop();
     }
     // Генерация файлов robots.txt и sitemap.xml
     ormPages::getContentFileRobots();
     ormPages::getContentFileSiteMap();
     // Проверяем, есть ли текущая страница в кэше
     page::checkCache();
     // Вызов макроса через Ajax
     page::callAjaxMacros();
     // Парсим мето-информацию "по умолчанию"
     page::globalVar('keywords', reg::getKey(ormPages::getPrefix() . '/keywords'));
     page::globalVar('description', reg::getKey(ormPages::getPrefix() . '/description'));
     // Загрузка необходимого функционала в зависимости от адреса
     $content = '';
     // Пытаемся загрузить МОДУЛЬ
     if (self::issetUrl(0)) {
         $content = self::loadController('controller');
     }
     // Пытаемся загрузить СТРАНИЦУ
     if (!self::issetUrl(0) || $content === false) {
         $content = self::loadController('controller', 1, 'structure');
     }
     // Отображение сообщения "Страница не найдена"
     if (empty($content)) {
         $content = ormPages::get404();
     }
     // Парсим контент на страницу
     page::fParse('content', $content);
     // Версия для печати
     $print_file = '/structure/_' . self::getCurrentNavVal() . '.tpl';
     if (self::getCurrentNavVal() != '' && file_exists(TEMPL_DIR . $print_file)) {
         self::$defTemplate = $print_file;
     }
     if (!self::$isAdmin) {
         $title = str_replace('%text%', page::getGlobalVar('title'), reg::getKey(ormPages::getPrefix() . '/title_prefix'));
         page::globalVar('title', $title);
         if (file_exists(MODUL_DIR . '/core/template/minitext.tpl')) {
             include MODUL_DIR . '/core/template/minitext.tpl';
         }
         // Мини-тексты, если есть
         $list = reg::getList(ormPages::getPrefix() . '/minitext');
         while (list($id, $val) = each($list)) {
             //инлайн редактирование
             if (user::isAdmin() && user::issetRight('minitext_edit', 'structure')) {
                 $val = str_replace('%val%', $val, str_replace('%id%', $id, $TEMPLATE['frame']));
             }
             page::globalVar('text_' . $id, $val);
         }
     }
     // Выводим содержимое на экран
     page::parseIt(self::$defTemplate);
     // Завершение работы
     self::stop();
 }
Ejemplo n.º 30
0
 static function sendNextBlock($release_id, $num_block)
 {
     if ($release = ormObjects::get($release_id)) {
         $subscribe = $release->getParent();
         $release->last_subscribe = date('Y-m-d H:i:s');
         $release->error_iteration_num = $num_block + 1;
         $release->save();
         $start = ($_SESSION['SUBSCR_PART'] - 1) * reg::getKey('/subscription/count_mails_day') + ($num_block - 1) * reg::getKey('/subscription/count_mails');
         $sel = new ormSelect('subscribe_user');
         $sel->where('parents', '=', $release->parent_id);
         $sel->limit($start, reg::getKey('/subscription/count_mails'));
         while ($obj = $sel->getObject()) {
             // Подставляем ФИО пользователя
             page::assign('user.id', $obj->id);
             page::assign('user_name', '');
             if (file_exists(TEMPL_DIR . '/subscription/mails/' . $subscribe->template . '.tpl')) {
                 include TEMPL_DIR . '/subscription/mails/' . $subscribe->template . '.tpl';
                 if ($obj->first_name != '') {
                     if ($subscribe->name_format == 2) {
                         $name = $obj->second_name . ' ' . $obj->first_name;
                     } else {
                         $name = $obj->first_name;
                     }
                     page::assign('user_name', $name);
                     $hello = page::parse($TEMPLATE['hello_username']);
                 } else {
                     $hello = page::parse($TEMPLATE['hello']);
                 }
             } else {
                 $hello = '';
             }
             page::assign('hello', $hello);
             // Отправляет письмо
             $mail = new phpmailer();
             $mail->From = $subscribe->back_email;
             $mail->FromName = $subscribe->back_name;
             $mail->AddAddress($obj->name);
             $mail->WordWrap = 50;
             $mail->IsHTML(true);
             $mail->AddAttachment(ROOT_DIR . '/' . $release->file, system::fileName($release->file));
             $mail->Subject = page::parse($_SESSION['SUBSCR_SUBJECT']);
             $mail->Body = page::parse($_SESSION['SUBSCR_MAILHTML']);
             $mail->Send();
         }
     }
 }