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(); } }
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('не могу определить язык'); } } }
/** * @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); } } } }
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'); }
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']); }
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']); }
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']); }
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']); }
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, ' ', '', 'selectbox_multi_big'); ui::SelectBox('no_edit_classes', $classes, reg::getList(ormPages::getPrefix() . '/no_edit'), 600, ' ', '', 'selectbox_multi_big'); return page::parse($TEMPLATE['frame']); }
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']); } } }
/** * @return stirng - Путь до изображения * @param string $file_name - Исходное изображение * @param CONST $scale_type - Способ масштабирования рисунка, одна из трех констант stRateably - Масштабирование с учетом пропорций, относительно $width или $height stSquare - Обрезать по квадрату со стороной $width stInSquare - Вписать в квадрат со стороной $width * @param int $width - Ширина конечного изображения, если == 0 не учитывается * @param int $height - Высота конечного изображения, если == 0 не учитывается * @param string $watermark - Способ наложения водяного знака. Одно из нескольких значений: 0 - Водяной знак не накладывается 1-9 - Водяной знак накладывается в одну из 9 позиций квадрата (см. документацию) * @desc МАКРОС: При необходимости масштабирует изображение под заданные параметры и возвращает путь до кешированного файла. */ public function resize($file_name, $scale_type, $width = 0, $height = 0, $watermark = 0) { if (!empty($file_name)) { if (system::checkVar($file_name, isAbsUrl)) { return $file_name; } $scale = !is_numeric($scale_type) ? constant($scale_type) : $scale_type; $dir = '/cache/img/' . $scale_type . '_' . $width . 'x' . $height . '_' . $watermark; $new_file = $dir . '/' . system::fileName($file_name); if (!file_exists(ROOT_DIR . $new_file)) { if (!is_dir(ROOT_DIR . $dir)) { @mkdir(ROOT_DIR . $dir, 0777); } $img = new resizer($file_name, $scale, $width, $height); if (is_numeric($watermark) && $watermark > 0) { $img->setWatermark(reg::getKey('/core/watermark'), $watermark); } $img->save(ROOT_DIR . $new_file); } if (file_exists(ROOT_DIR . $new_file)) { return $new_file; } } }
public function 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'); }
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'); }
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; } } }
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; }
/** * @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); } } }
/** * @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']); } }
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(); }
/** * @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']); } } }
/** * @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); } } }
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(); }
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(); } } }
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(); }
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>'; }
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(); } } } }
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']); }
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); }
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; } }
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(); }
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(); } } }