/** * Функция формирует массив языковых файлов с именами констант в виде ключей их значений * В качестве эталона для формирования массива используется локализация по умолчанию: 'russian' * Возврашает массив языковых файлов и языковых констант в локализации по умолчанию. * Значения констант берутся в запрашиваемой локализациии, если они существуют. Иначе вместо значения устанавливается имя константы. * * @param (string) $localiz - запрашиваемая локализация (по умолчанию 'russian') * * @return (array) $arrConst - массив языковых файлов с именами констант в виде ключей их значений */ static function getLocalizConst($localiz, $ownAdmin, $langDir = 'lang/') { $arrConst = array(); $langDir = filesys::setPath($langDir); foreach (filesys::getFilesInDir($langDir . 'russian/') as $fileLocaliz) { if (empty($ownAdmin) && 0 === strpos($fileLocaliz, 'adm.') || !empty($ownAdmin) && 0 !== strpos($fileLocaliz, 'adm.')) { continue; } if ('russian' !== $localiz && file_exists($langDir . $localiz . '/' . $fileLocaliz)) { $currLocalizConst = self::getConstForParsingFile($langDir . $localiz . '/' . $fileLocaliz); } foreach (file($langDir . 'russian/' . $fileLocaliz) as $string) { if (false !== strpos($string, 'define(')) { $arrExplode = explode(',', trim($string)); $constName = substr(array_shift($arrExplode), 8, -1); if ('russian' !== $localiz) { $arrConst[$fileLocaliz][$constName] = isset($currLocalizConst[$constName]) ? $currLocalizConst[$constName] : $constName; } else { $arrConst[$fileLocaliz][$constName] = substr(implode(', ', $arrExplode), 2, -3); } } } } return $arrConst; }
public function __construct() { if (!defined(CONF_SCRIPT_URL)) { $this->_host = 'http://' . filesys::setPath($_SERVER['HTTP_HOST']); } else { $this->_host = CONF_SCRIPT_URL; } }
!defined('SDG') ? die('Triple protection!') : null; // инициируем "Наименование страницы" отображаемое в форме $arrNamePage = array(array('name' => MENU_ADMIN_MAIN, 'link' => CONF_ADMIN_FILE), array('name' => MENU_MANAGER_MAILER, 'link' => false)); /** * иницализация массива подключаемых шаблонов: по умолчанию все значения - false * для подключения шаблона, необходимо установить значение - true * шаблоны подключаются в порядке установленном в файле головного шаблона */ $arrActions = array('config' => false, 'templates' => false); // определяем шаблон для отображения isset($_GET['action']) && isset($arrActions[$_GET['action']]) ? $arrActions[$_GET['action']] = true : null; /** Строка запроса из адресной строки браузера **/ $qString = !empty($_SERVER['QUERY_STRING']) ? $_SERVER['QUERY_STRING'] : 'm=manager&s=mailer'; $arrTemplates = array(); // путь к файлам шаблонов писем $path = filesys::setPath(CONF_ROOT_DIR) . 'core/data/templates/mailer/'; $arrFiles = filesys::getFilesInDir($path); foreach ($arrFiles as &$value) { if (file_exists($path . $value)) { $arrTemplates[$value]['name'] = substr($value, 0, strlen($value) - 4); } } /** * Настройки рассылки */ if ($arrActions['config']) { // инициируем "Наименование страницы" отображаемое в форме $arrNamePage[] = array('name' => MENU_CONFIG, 'link' => false); } elseif ($arrActions['templates']) { // инициируем "Наименование страницы" отображаемое в форме $arrNamePage[] = array('name' => MENU_ACTION_TEMPLATE, 'link' => false);
// пересылаем пользователя на первый шаг die('<script type="text/javascript">window.location="install.php?step=1";</script>'); } elseif (empty($_SESSION['sdinstall']['step2'])) { // пересылаем пользователя на второй шаг die('<script type="text/javascript">window.location="install.php?step=2";</script>'); } else { include_once 'core/conf/const.config.tmpl.php'; $tmplMess = TMPL_SMARTY_SETUP_FAIL; $msEr = true; if (isset($_POST['step3'])) { // записываем в сессию седьмой шаг $_SESSION['sdinstall']['step3'] = true; die('<script type="text/javascript">window.location="install.php?step=4";</script>'); } if (!empty($_GET['step']) && 3 == $_GET['step']) { // Копируем Smarty в каталог скрипта if (!inst::copyDirContent('install/Smarty', filesys::setPath(CONF_ROOT_DIR) . 'Smarty')) { $arrErrors[] = ERROR_UNABLE_TO_SETUP_SMARTY; } else { $data = "<?php\n\n" . "(!defined('SDG')) ? die ('Triple protection!') : null;\n\n" . 'define("TEMPLATE_SMARTY_DIR", \'' . filesys::setPath(CONF_ROOT_DIR) . 'Smarty/\');' . "\n\n" . 'define("TEMPLATE_ROOT_DIR", "' . TEMPLATE_ROOT_DIR . '");' . "\n\n" . 'define("CONF_TEMPLATE", "' . CONF_TEMPLATE . '");' . "\n\n" . 'define("TEMPLATE_COMPILE_DIR", "' . TEMPLATE_COMPILE_DIR . '");' . "\n\n" . 'define("TEMPLATE_PATH", "' . TEMPLATE_PATH . '");' . "\n\n" . 'define("TEMPLATE_PATH_ADMIN", "' . TEMPLATE_PATH_ADMIN . '");' . "\n\n" . 'define("TEMPLATE_DEBUGGING", "0");' . "\n\n" . 'define("TEMPLATE_COMPILE_CHECK", "1");' . "\n\n" . 'define("TEMPLATE_FORCE_COMPILE", "0");' . "\n"; if (!file_put_contents('core/conf/const.config.tmpl.php', $data)) { $arrErrors[] = ERROR_UNABLE_TO_SAVE_CONFIG; } else { $tmplMess = TMPL_SMARTY_SETUP_SUCCESS; $msEr = false; } } } $smarty->assign('msEr', $msEr); $smarty->assign('tmplMess', $tmplMess); }
/** * protected функция уведомления администратора о добавлении платежа * @return bool */ protected function adminPaymentNotification() { $mailer = new mailer(); // массив для замены в шаблоне $mailer->setAddReplace(array('%ORDER_ID%' => $this->arrBindFields['order_id'], '%DESCRIPTION%' => $this->additionalFields['description'], '%AMOUNT%' => $this->arrBindFields['amount'], '%DATE%' => $this->arrServiceFields['datetime'], '%ADMIN_PANEL%' => filesys::setPath(CONF_SCRIPT_URL) . CONF_ADMIN_FILE)); return $mailer->sendEmail(CONF_MAIL_ADMIN_EMAIL, false, false, CONF_MAIL_ADMIN_EMAIL, false, MAIL_SUBJ_ADM_PAYMENT, 'adm.payment.jur.add.txt'); }
/** * функция получает все необходимые данные о файле * возвращает массив свойств * @deprecated use getFileSystemData * @param (string) $path - путь к файлу * @param (string) $file - имя файла * @return array or false - массив свойств файла */ static function getFileData($path, &$file) { $path = filesys::setPath($path); if (!file_exists($path . $file)) { return false; } $arrData = stat($path . $file); $ext = filesys::getExtension($file); $sizekb = sprintf("%01.1f", $arrData['size'] / 1024); $sizemb = sprintf("%01.1f", $arrData['size'] / 1048576); $arrFileData = array('name' => $file, 'path' => $path, 'ext' => $ext, 'size' => $arrData['size'], 'date' => $arrData['mtime'], 'title_sizekb' => $sizekb, 'title_sizemb' => $sizemb); return $arrFileData; }
$arrNamePage = array(array('name' => MENU_ADMIN_MAIN, 'link' => CONF_ADMIN_FILE), array('name' => MENU_MANAGER, 'link' => false)); // массив существующих шаблонов писем ОБЩИЕ $arrMailsGeneral = array('html' => HELP_ADMIN_MAIL_TEMPLATE_HTML, 'news.comments.complaint' => HELP_ADMIN_MAIL_TEMPLATE_NEWS_COMMENTS_COMPLAINT, 'articles.comments.complaint' => HELP_ADMIN_MAIL_TEMPLATE_ARTICLES_COMMENTS_COMPLAINT); // массив существующих шаблонов писем АДМИНИСТРАТОРА $arrMailsAdministrator = array('adm.add.announce' => HELP_ADMIN_MAIL_TEMPLATE_ADM_ADD_ANNOUNCE, 'adm.edited.announce' => HELP_ADMIN_MAIL_TEMPLATE_ADM_EDITED_ANNOUNCE, 'adm.moderate.announce' => HELP_ADMIN_MAIL_TEMPLATE_ADM_MODERATE_ANNOUNCE, 'adm.add.article' => HELP_ADMIN_MAIL_TEMPLATE_ADM_ADD_ARTICLE, 'adm.edited.article' => HELP_ADMIN_MAIL_TEMPLATE_ADM_EDITED_ARTICLE, 'adm.moderate.article' => HELP_ADMIN_MAIL_TEMPLATE_ADM_MODERATE_ARTICLE, 'adm.add.news' => HELP_ADMIN_MAIL_TEMPLATE_ADM_ADD_NEWS, 'adm.edited.news' => HELP_ADMIN_MAIL_TEMPLATE_ADM_EDITED_NEWS, 'adm.moderate.news' => HELP_ADMIN_MAIL_TEMPLATE_ADM_MODERATE_NEWS, 'adm.payment' => HELP_ADMIN_MAIL_TEMPLATE_ADM_PAYMENT, 'adm.payment.hand.add' => HELP_ADMIN_MAIL_TEMPLATE_ADM_PAYMENT_HAND_ADD, 'adm.payment.jur.add' => HELP_ADMIN_MAIL_TEMPLATE_ADM_PAYMENT_JUR_ADD, 'adm.reg.user' => HELP_ADMIN_MAIL_TEMPLATE_ADM_REG_USER); // массив существующих шаблонов писем ПОЛЬЗОВАТЕЛЕЙ $arrMailsUsers = array('announce.subscription' => HELP_ADMIN_MAIL_TEMPLATE_ANNOUNCE_SUBSCRIPTION, 'announce.user.activate' => HELP_ADMIN_MAIL_TEMPLATE_ANNOUNCE_ACTIVATE, 'announce.user.added' => HELP_ADMIN_MAIL_TEMPLATE_ANNOUNCE_ADDED, 'announce.user.correction' => HELP_ADMIN_MAIL_TEMPLATE_ANNOUNCE_CORRECTION, 'announce.user.deleted' => HELP_ADMIN_MAIL_TEMPLATE_ANNOUNCE_DELETED, 'announce.user.moderate' => HELP_ADMIN_MAIL_TEMPLATE_ANNOUNCE_MODERATE, 'announce.user.payment' => HELP_ADMIN_MAIL_TEMPLATE_ANNOUNCE_PAYMENT, 'announce.user.vip.reset' => HELP_ADMIN_MAIL_TEMPLATE_ANNOUNCE_VIP_RESET, 'announce.user.hot.reset' => HELP_ADMIN_MAIL_TEMPLATE_ANNOUNCE_HOT_RESET, 'new.pass.confirm' => HELP_ADMIN_MAIL_TEMPLATE_NEW_PASS_CONFIRM, 'new.pass' => HELP_ADMIN_MAIL_TEMPLATE_NEW_PASS, 'moderate.news' => HELP_ADMIN_MAIL_TEMPLATE_MODERATE_NEWS, 'user.add.admin' => HELP_ADMIN_MAIL_TEMPLATE_USER_ADD_ADMIN, 'user.activate' => HELP_ADMIN_MAIL_TEMPLATE_USER_ACTIVATE, 'user.activate.admin' => HELP_ADMIN_MAIL_TEMPLATE_USER_ACTIVATE_ADMIN, 'user.moderate' => HELP_ADMIN_MAIL_TEMPLATE_USER_MODERATE, 'user.not.moderate' => HELP_ADMIN_MAIL_TEMPLATE_USER_NOT_MODERATE, 'user.register' => HELP_ADMIN_MAIL_TEMPLATE_USER_REGISTER, 'payment.hand.message' => HELP_ADMIN_MAIL_TEMPLATE_PAYMENT_HAND_MESAGE, 'payment.jur.message' => HELP_ADMIN_MAIL_TEMPLATE_PAYMENT_JUR_MESAGE, 'user.article.active' => HELP_ADMIN_MAIL_TEMPLATE_USER_ARTICLE_ACTIVE, 'user.article.correction' => HELP_ADMIN_MAIL_TEMPLATE_USER_ARTICLE_CORRECTION, 'user.article.deleted' => HELP_ADMIN_MAIL_TEMPLATE_USER_ARTICLE_DELETED, 'user.news.active' => HELP_ADMIN_MAIL_TEMPLATE_USER_NEWS_ACTIVE, 'user.news.correction' => HELP_ADMIN_MAIL_TEMPLATE_USER_NEWS_CORRECTION, 'user.news.deleted' => HELP_ADMIN_MAIL_TEMPLATE_USER_NEWS_DELETED); $list = false; //переменная определяет, с каким списком файлов мы сейчас работаем $arrFiles = array(); $selects = isset($_POST['langDict']) ? new selects($_POST['langDict']) : new selects(); $currLang = $selects->retCurrLang(); $smarty->assignByRef('currLang', $currLang); // текущая локализация // путь к файлам шаблонов писем $path = filesys::setPath(CONF_ROOT_DIR) . 'lang/' . $currLang . '/mails/'; /** * проверяем, каие шаблоны выводить */ if (isset($_GET['list']) && ('general' === $_GET['list'] || 'administrator' === $_GET['list'] || 'users' === $_GET['list'])) { if ('general' === $_GET['list']) { $arrMails = $arrMailsGeneral; $name_page = MENU_MANAGER_MAIL_TEMPLATES_GENERAL; } elseif ('administrator' === $_GET['list']) { $arrMails = $arrMailsAdministrator; $name_page = MENU_MANAGER_MAIL_TEMPLATES_ADMINISTRATOR; } elseif ('users' === $_GET['list']) { $arrMails = $arrMailsUsers; $name_page = MENU_MANAGER_MAIL_TEMPLATES_USERS; } $list = '&list=' . $_GET['list'];
$arrNamePage[] = array('name' => MENU_MANAGER_FILE, 'link' => false); } if ($_FILES) { // проверяем тип файла if (!empty($_POST['type'])) { switch ($_POST['type']) { case 'image': $files_dir = filesys::setPath(CONF_FILEMANAGER_PATH_TO_IMAGES); break; case 'file': default: $files_dir = filesys::setPath(CONF_FILEMANAGER_PATH_TO_FILES); break; } } else { $files_dir = filesys::setPath(CONF_FILEMANAGER_PATH_TO_FILES); } // загружаем файл if ($fm->loadFile('load_file', $files_dir, $fm->arrFileTypes)) { uploads::$fileProperties['path'] = $files_dir; uploads::$fileProperties['link'] = $files_dir; // если файл - изобажение, обрабатываем его if ('image' === $_POST['type']) { if (img::setParam(uploads::$arrUploadsSubj['file_name'], uploads::$arrUploadsSubj['upload_dir'])) { if (img::createThumbnail(CONF_FILEMANAGER_THUMBNAIL_WIDTH, CONF_FILEMANAGER_THUMBNAIL_HEIGHT)) { $dbData = $fm->getFilesProperties($files_dir . 'mda/uploads.mda'); $dbData[uploads::$fileProperties['filename']] = uploads::$fileProperties; $fm->putFilesProperties($files_dir . 'mda/uploads.mda', $dbData); messages::messageChangeSaved(MESSAGE_FILE_LOAD_SUCCESS, false, CONF_ADMIN_FILE . '?m=manager&s=file'); } else { $arrErrors[] = ERROR_FILE_NOT_LOAD;
if (isset($_POST['operation_xml']) && !empty($_POST['operation_xml']) && isset($_POST['signature']) && !empty($_POST['signature'])) { // проверяем существование параметров $arrResponse = liqpay::checkResultParams($_POST['operation_xml'], $_POST['signature'], LIQPAY_CONF_SIGNATURE); // если статус false, значит сигнатура не совпадает if ($arrResponse['status']) { if ('success' === $arrResponse['data']['status']) { $ourData = $payments->explodeServiceString($arrResponse['data']['service']); $payments->succesAnswer($ourData[0]); } else { $smarty->assignByRef('status', $arrResponse['data']['status']); $smarty->assignByRef('order_id', $arrResponse['data']['order_id']); $smarty->assignByRef('amount', $arrResponse['data']['amount']); $smarty->assign('include_template', SD_ROOT_DIR . 'core/mods/payments/liqpay/templates/liqpay.result.tpl'); } } else { $arrErrors[] = LIQPAY_PAY_ANSWER_ERROR_UNMATCHED; } } } else { // проверяем наличие в сессии необходимых параметров и установлена ли цена в тарифной сетке для выбранной услуги if (isset($_SESSION['payment']) && isset($_SESSION['payment']['service']) && $payments->checkPriceInTariff($_SESSION['payment']['service'], $arrTariffs)) { $lpData = array('order_id' => time(), 'amount' => $arrTariffs[$_SESSION['payment']['service']], 'description' => $payments->generatePaymentDescription($_SESSION['payment']['service'])); $xml = '<request>' . '<version>' . LIQPAY_CONF_API_VERSION . '</version>' . '<result_url>' . filesys::setPath(CONF_SCRIPT_URL) . 'index.php?ut=competitor&do=payments&mod=liqpay&result</result_url>' . '<server_url>' . filesys::setPath(CONF_SCRIPT_URL) . 'index.php?ut=competitor&do=payments&mod=liqpay&server</server_url>' . '<merchant_id>' . LIQPAY_CONF_MERCHANT_ID . '</merchant_id>' . '<order_id>' . $_SESSION['payment']['service'] . '::' . $_SESSION['payment']['id'] . '.' . $lpData['order_id'] . '</order_id>' . '<amount>' . $lpData['amount'] . '</amount>' . '<currency>' . LIQPAY_CONF_CURRENCY . '</currency>' . '<description>' . $lpData['description'] . '</description>' . '<default_phone></default_phone>' . '<pay_way></pay_way>' . '</request>'; $smarty->assign('operation_xml', base64_encode($xml)); $smarty->assign('signature', liqpay::refSign(array($xml, LIQPAY_CONF_SIGNATURE))); $smarty->assignByRef('lpData', $lpData); $smarty->assign('include_template', SD_ROOT_DIR . 'core/mods/payments/liqpay/templates/liqpay.pay.form.tpl'); } else { $arrErrors[] = ERROR_PAY_SYSTEM_NOT_DEFINE_PRICE; } }
$smarty->assign('user_email', false); $smarty->assign('user_type', $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type']); $smarty->assign('codex', $_SESSION['sd_' . DB_PREFIX . 'codex']); // значения, возвращаемые в форму } /** * обработка страниц */ if (isset($_GET['do'])) { // выход из пользовательской части if ('logout' === $_GET['do']) { // очищаем куки и сессию пользователя $user->clearUserSessionAndCookie(); die('<script type="text/javascript">window.location="' . CONF_SCRIPT_URL . '";</script>'); } elseif ('agreement' === $_GET['do']) { die(@file_get_contents(filesys::setPath(SD_ROOT_DIR) . 'lang/' . CONF_LANGUAGE . '/texts/agreement.html')); } elseif ('mod' === $_GET['do']) { if (isset($_GET['name']) && !empty($_GET['name'])) { $work_file = 'core/mod/' . $_GET['mod'] . '/mod.' . $_GET['mod'] . '.php'; $template_file = SD_ROOT_DIR . 'core/mod/' . $_GET['mod'] . '/template/mod.' . $_GET['mod'] . '.tpl'; // проверяем, существуют ли такие файлы if (@file_exists($work_file) && @file_exists($template_file)) { include_once $work_file; $main_template = $template_file; $smarty->assignByRef('menu', $_GET['mod']); $arrNamePage[] = array('name' => @constant('MOD_' . strtoupper(str_replace('.', '_', $_GET['mod'])) . '_MENU'), 'link' => false); // заголовок страницы // путь к папке шаблонов модуля $smarty->assign('template_path', SD_ROOT_DIR . 'core/mod/' . $_GET['mod'] . '/template'); } else { messages::error404();
url: http://sd-group.org.ua/ Copyright 2010-2015 (c) SD-Group All rights reserved ========================================================= Регистрация ********************************************************/ /** * @package * @todo */ !defined('SDG') ? die('Triple protection!') : null; if (CONF_USER_REGISTER) { if ($user->getAuthorized()) { messages::error404(); } else { $smarty->assign('path', file_get_contents(filesys::setPath(CONF_ROOT_DIR) . 'lang/' . CONF_LANGUAGE . '/texts/agreement.html')); if (isset($_POST['arrBindFields']['email'])) { /////////////////////////////////////////////////////////////// // Проверка данных, полученных из формы /////////////////////////////////////////////////////////////// // проверяем, есть ли незаполненные поля if (validate::postDataNotEmpty()) { // если активация отключена, проверяем email пользователя if (!CONF_USER_ACTIVATE) { !validate::validateEmail($_POST['arrBindFields']['email']) ? $arrErrors[] = ERROR_EMAIL : null; } // пользовательское соглашение !isset($_POST['agreement']) ? $arrErrors[] = ERROR_USER_AGREEMENT : null; // проверяем существование Email в БД if (!$arrErrors) { // если такой пользователь уже есть, выдаем ошибку
/** * Функция устанавливает параметры изображения (использует ф-ю getimagesize) * * @param (string) $imgName - имя файла изображения * @param (string) $imgDir - дарректория, в которой находится файл * * @return bool */ static function setParam($imgName, $imgDir) { $imgDir = filesys::setPath($imgDir); // проверяем существование файла if (@file_exists($imgDir . $imgName)) { // проверяем, является ли файл картинкой if ($params = @getimagesize($imgDir . $imgName)) { // проверяем тип изображения if (in_array($params[2], self::$imgTypes)) { self::$arrImgSubj['name'] = strtolower($imgName); self::$arrImgSubj['dir'] = strtolower($imgDir); self::$arrImgSubj['full_path'] = self::$arrImgSubj['dir'] . self::$arrImgSubj['name']; self::$arrImgSubj['width'] = $params[0]; self::$arrImgSubj['height'] = $params[1]; self::$arrImgSubj['type'] = $params[2]; self::$arrImgSubj['mime'] = strtolower($params['mime']); // если в скприпте установлена настройка "Создавать водяной знак для всех изображений" // т.е. для исходного и для всех его копий // тогда создаем водяной знак. // В этом случае исходное изображение уже будет содержать водяной знак // и все копии этого изображения тоже будут с водяным знаком if (CONF_FILES_IMG_CREATE_WATERMARK && CONF_FILES_IMG_CREATE_WATERMARK_ON === 'all') { if (!img::createWatermark()) { @unlink($imgDir . $imgName); return false; } } switch ($params[2]) { case 1: self::$arrImgSubj['ext'] = 'gif'; self::$arrImgSubj['resource'] = @ImageCreateFromGIF(self::$arrImgSubj['full_path']); break; case 2: self::$arrImgSubj['ext'] = 'jpg'; self::$arrImgSubj['resource'] = @ImageCreateFromJPEG(self::$arrImgSubj['full_path']); break; case 3: self::$arrImgSubj['ext'] = 'png'; self::$arrImgSubj['resource'] = @ImageCreateFromPNG(self::$arrImgSubj['full_path']); break; } // если в скприпте установлена настройка "Создавать водяной знак только для исходного изображения" // тогда создаем водяной знак. // В этом случае водяной знак будет только на одной картинке, а его копии будут без водяного знака if (CONF_FILES_IMG_CREATE_WATERMARK && CONF_FILES_IMG_CREATE_WATERMARK_ON === 'source') { if (!img::createWatermark()) { @unlink($imgDir . $imgName); return false; } } return true; } else { self::setError(ERROR_FILE_FORMAT_ERROR); @unlink($imgDir . $imgName); return false; } } else { self::setError(ERROR_FILE_NOT_IMAGE); @unlink($imgDir . $imgName); return false; } } else { self::setError(ERROR_FILE_NOT_EXISTS); return false; } return false; }
/** * Устанавливает дирректорию для загрузки файла * * @param (string) $upload_dir - дирректория, в которую необходимо загрузить файл * * @return void */ static function setUploadDir($upload_dir) { self::$arrUploadsSubj['upload_dir'] = strtolower(filesys::setPath($upload_dir)); }
/******************************************************** JobExpert v1.0 powered by Script Developers Group (SD-Group) email: info@sd-group.org.ua url: http://sd-group.org.ua/ Copyright 2010-2015 (c) SD-Group All rights reserved ========================================================= Настройки - Smarty ********************************************************/ /** * @package * @todo */ !defined('SDG') ? die('Triple protection!') : null; // инициируем "Наименование страницы" отображаемое в форме $arrNamePage = array(array('name' => MENU_ADMIN_MAIN, 'link' => CONF_ADMIN_FILE), array('name' => MENU_CONFIG, 'link' => false), array('name' => MENU_CONFIG_SMARTY, 'link' => false)); // сохраняем данные, переданные из формы if (isset($_POST['save'])) { // если изменился шаблон, очищаем папку откомпилированных шаблонов //($_POST['template'] !== CONF_TEMPLATE) ? $smarty -> clearCompiledTemplate() : null; $_POST['template'] !== CONF_TEMPLATE ? filesys::removeContentInDir(TEMPLATE_COMPILE_DIR) : null; $data = "<?php\n\n" . "(!defined('SDG')) ? die ('Triple protection!') : null;\n\n" . 'define("TEMPLATE_SMARTY_DIR", \'' . htmlspecialchars(filesys::setPath($_POST['smarty_dir'], ENT_QUOTES, CONF_DEFAULT_CHARSET)) . '\');' . "\n\n" . 'define("TEMPLATE_ROOT_DIR", "' . htmlspecialchars(filesys::setPath($_POST['root_dir'], ENT_QUOTES, CONF_DEFAULT_CHARSET)) . '");' . "\n\n" . 'define("CONF_TEMPLATE", "' . htmlspecialchars($_POST['template'], ENT_QUOTES, CONF_DEFAULT_CHARSET) . '");' . "\n\n" . 'define("TEMPLATE_COMPILE_DIR", "' . htmlspecialchars(filesys::setPath($_POST['compile_dir'], ENT_QUOTES, CONF_DEFAULT_CHARSET)) . '");' . "\n\n" . 'define("TEMPLATE_PATH", "' . htmlspecialchars(filesys::setPath($_POST['root_dir'], ENT_QUOTES, CONF_DEFAULT_CHARSET)) . 'site/' . htmlspecialchars($_POST['template'], ENT_QUOTES, CONF_DEFAULT_CHARSET) . '/");' . "\n\n" . 'define("TEMPLATE_PATH_ADMIN", "' . htmlspecialchars(filesys::setPath($_POST['root_dir'], ENT_QUOTES, CONF_DEFAULT_CHARSET)) . 'admin/");' . "\n\n" . 'define("TEMPLATE_DEBUGGING", "' . (!isset($_POST['debugging']) ? false : true) . '");' . "\n\n" . 'define("TEMPLATE_COMPILE_CHECK", "' . (!isset($_POST['compile_check']) ? false : true) . '");' . "\n\n" . 'define("TEMPLATE_FORCE_COMPILE", "' . (!isset($_POST['force_compile']) ? false : true) . '");' . "\n"; if (!tools::saveConfig('core/conf/const.config.tmpl.php', $data, CONF_ADMIN_FILE . '?m=config&s=tmpl')) { $arrErrors[] = ERROR_FILES_MISSING_FILE; } } $smarty->assign('templateDirs', filesys::getChildDirs(TEMPLATE_ROOT_DIR . 'site/')); // получаем список доступных дирректорий шаблонов $smarty->assignByRef('errors', $arrErrors);
/** * функция генерирует ЧПУ * * @param (string) $url - ссылка для ЧПУ * @param (bool) $noCHPU - параметр, указывающий что не нужно приводить сслыки к ЧПУ (по умолчанию FALSE). Параметр был введен для метода strings::generatePage - т.к. он используется и в админке и в польз. части, а в админке ЧПУ не нужно никогда. Параметр можно использовать и в др. необходимых местах. * * @return string */ static function createChpuUrl($url, $noCHPU = false) { // проверяем, включены ли ЧПУ if (CONF_ENABLE_CHPU && !$noCHPU) { $purl = parse_url(str_replace('&', '&', $url)); if (isset($purl['query'])) { parse_str($purl['query'], $query_arr); if (empty($query_arr['ut'])) { unset($query_arr['ut']); } $url = filesys::setPath(CONF_SCRIPT_URL) . implode('/', $query_arr) . (!empty($query_arr['do']) && 'rss' == $query_arr['do'] && !empty($query_arr['action']) ? CONF_CHPU_XML_DATA_EXT : CONF_CHPU_HTML_DATA_EXT) . (isset($purl['fragment']) ? '#' . $purl['fragment'] : null); } } return $url; }
$path = CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&do=resume'; $strPages = strings::generatePage($allRecords, $offset, CONF_ANNOUNCE_PERPAGE_SITE, $path . '&action=offset&'); // формируем страницы $smarty->assign('link', $path . '&action=view&id='); $smarty->assignByRef('string_page', $strPages); //передаем в шаблон строку сформированных страниц } else { messages::error404(); } // END отображение шаблона по умолчанию // определяем шаблон для отображения isset($_GET['action']) && isset($arrActPage[$_GET['action']]) ? $arrActPage[$_GET['action']] = true : null; /** * инициализация пути подключаемых языковых файлов */ $smarty->assign('path', filesys::setPath(CONF_ROOT_DIR) . 'lang/' . CONF_LANGUAGE . '/texts'); /** * инициализация списка "Пол" */ //$smarty->assignByRef('gender', $arrSysDict['Gender']['values']); /** * просмотр объявлений - Резюме */ if (!empty($arrActPage['view']) || !empty($arrActPage['print'])) { // инициируем "Наименование страницы" отображаемое в заголовке формы $arrNamePage[] = array('name' => FORM_VIEW_ANNOUNCE_HEAD, 'link' => false); // если передан id резюме if (isset($_GET['id']) && ($id = validate::checkNaturalNumber($_GET['id']))) { // пытаемся получить данные из таблицы БД if (!$resume->viewAnnounce($id)) { $arrErrors[] = ERROR_ANNOUNCE_NOT_EXISTS;
* Copyright 2010-2015 (c) SD-Group * All rights reserved * =================================================== * Настройки - Сайт * =================================================== * * @package * * @todo * */ !defined('SDG') ? die('Triple protection!') : null; // инициируем "Наименование страницы" отображаемое в форме $arrNamePage = array(array('name' => MENU_ADMIN_MAIN, 'link' => CONF_ADMIN_FILE), array('name' => MENU_CONFIG, 'link' => false), array('name' => MENU_CONFIG_SITE, 'link' => false)); // сохраняем данные, переданные из формы if (isset($_POST['save'])) { $chpu = !isset($_POST['chpu']) ? 0 : 1; $tChpu = empty($chpu) ? CONF_ENABLE_TRANSLITERATION_CHPU : (!isset($_POST['tChpu']) ? 0 : 1); $tChpuPutToEnd = empty($chpu) || empty($tChpu) ? CONF_TRANSLITERATION_CHPU_ID_PUT_TO_END : (empty($_POST['tChpuPutToEnd']) ? 0 : 1); $tChpuMaxLen = empty($chpu) || empty($tChpu) ? CONF_TRANSLITERATION_CHPU_MAX_LENGHT : (($tChpuMaxLen = (int) $_POST['tChpuMaxLenght']) ? $tChpuMaxLen : 0); $data = "<?php\n\n" . "(!defined('SDG')) ? die ('Triple protection!') : null;\n\n" . 'define("CONF_DEFAULT_TITLE", "' . htmlspecialchars($_POST['title'], ENT_QUOTES, CONF_DEFAULT_CHARSET) . '");' . "\n\n" . 'define("CONF_DEFAULT_DESCRIPTION", "' . $_POST['description'] . '");' . "\n\n" . 'define("CONF_DEFAULT_KEYWORDS", "' . $_POST['keywords'] . '");' . "\n\n" . 'define("CONF_SITE_NAME", "' . htmlspecialchars($_POST['site_name'], ENT_QUOTES, CONF_DEFAULT_CHARSET) . '");' . "\n\n" . 'define("CONF_SITE_NAME_TO_TITLE", "' . (!empty($_POST['site_name_to_title']) ? 1 : 0) . '");' . "\n\n" . 'define("CONF_TITLE_PAGE_SEPERATOR", "' . htmlspecialchars($_POST['title_page_separator'], ENT_QUOTES, CONF_DEFAULT_CHARSET) . '");' . "\n\n" . 'define("CONF_LANGUAGE", "' . htmlspecialchars($_POST['language'], ENT_QUOTES, CONF_DEFAULT_CHARSET) . '");' . "\n\n" . 'define("CONF_SITE_URL", "' . htmlspecialchars(filesys::setPath($_POST['site_url'], ENT_QUOTES, CONF_DEFAULT_CHARSET)) . '");' . "\n\n" . 'define("CONF_SCRIPT_URL", "' . htmlspecialchars(filesys::setPath($_POST['script_url'], ENT_QUOTES, CONF_DEFAULT_CHARSET)) . '");' . "\n\n" . 'define("CONF_USE_VISUAL_EDITOR", "' . (!isset($_POST['visual_editor']) ? 0 : 1) . '");' . "\n\n" . 'define("CONF_USE_REDIRECT_EXTERNAL_LINK", "' . (!isset($_POST['redirect_extLink']) ? 0 : 1) . '");' . "\n\n" . 'define("CONF_ENABLE_CACHING", "' . ($_POST['caching'] = !isset($_POST['caching']) ? 0 : 1) . '");' . "\n\n" . 'define("CONF_DISABLE_AUTO_COUNTERS", "' . ($_POST['disable_auto_counters'] = !isset($_POST['disable_auto_counters']) ? 0 : 1) . '");' . "\n\n" . 'define("CONF_ENABLE_CHPU", "' . $chpu . '");' . "\n\n" . 'define("CONF_ENABLE_TRANSLITERATION_CHPU", "' . $tChpu . '");' . "\n\n" . 'define("CONF_TRANSLITERATION_CHPU_ID_PUT_TO_END", "' . $tChpuPutToEnd . '");' . "\n\n" . 'define("CONF_TRANSLITERATION_CHPU_MAX_LENGHT", "' . htmlspecialchars($tChpuMaxLen, ENT_QUOTES, CONF_DEFAULT_CHARSET) . '");' . "\n\n" . 'define("CONF_CHPU_HTML_DATA_EXT", "' . htmlspecialchars($_POST['tChpuHtmlDataExt'], ENT_QUOTES, CONF_DEFAULT_CHARSET) . '");' . "\n\n" . 'define("CONF_CHPU_XML_DATA_EXT", "' . htmlspecialchars($_POST['tChpuXmlDataExt'], ENT_QUOTES, CONF_DEFAULT_CHARSET) . '");' . "\n"; // сброс кеша сайта CONF_ENABLE_CACHING != $_POST['caching'] || CONF_ENABLE_CHPU != $chpu || CONF_ENABLE_TRANSLITERATION_CHPU != $tChpu || CONF_TRANSLITERATION_CHPU_ID_PUT_TO_END != $tChpuPutToEnd ? caching::dropCache() : null; // сохраняем изменения if (!tools::saveConfig('core/conf/const.config.site.php', $data, CONF_ADMIN_FILE . '?m=config&s=site')) { $arrErrors[] = ERROR_FILES_MISSING_FILE; } } $smarty->assign('language_dirs', filesys::getChildDirs('lang/')); // получаем список доступных дирректорий языков $smarty->assignByRef('errors', $arrErrors);
echo 'errCreateDirTemplateImages'; } else { foreach ($arrFiles as &$file) { !empty($_POST['emptyTemplateFiles']) ? file_put_contents(filesys::setPath('templates/site/' . $_POST['nameTemplate']) . $file, '') : copy(filesys::setPath('templates/site/' . $_POST['currTemplate']) . $file, filesys::setPath('templates/site/' . $_POST['nameTemplate']) . $file); } !empty($_POST['includeCss']) ? filesys::copyDirContent('templates/site/' . $_POST['currTemplate'] . '/style', 'templates/site/' . $_POST['nameTemplate'] . '/style') : null; !empty($_POST['includePics']) ? filesys::copyDirContent('templates/site/' . $_POST['currTemplate'] . '/images', 'templates/site/' . $_POST['nameTemplate'] . '/images') : null; echo 'success'; } } elseif ('updateTemplate' === $_GET['action'] && !empty($_POST['nameTemplate']) && is_dir('templates/site/' . $_POST['nameTemplate'])) { if (!($arrFiles = array_diff(filesys::getFilesInDir('templates/site/default/'), filesys::getFilesInDir(filesys::setPath('templates/site/' . $_POST['nameTemplate']))))) { echo ajax::sdgJSONencode(array('result' => 'tplListDiffNotFound')); } else { $arrList = array(); foreach ($arrFiles as &$file) { copy('templates/site/default/' . $file, filesys::setPath('templates/site/' . $_POST['nameTemplate']) . $file); $arrList[] = array('id' => str_replace('.', '_', $file), 'name' => $file); } echo '{"result":"success", "listFiles":' . ajax::sdgJSONencode(array_reverse($arrList)) . '}'; } } elseif ('deleteTemplate' === $_GET['action'] && !empty($_POST['nameTemplate']) && is_dir('templates/site/' . $_POST['nameTemplate'])) { if ('default' == $_POST['nameTemplate']) { echo 'errDelDefaultTemplate'; } elseif (CONF_TEMPLATE == $_POST['nameTemplate']) { echo 'errDelConfTemplate'; } else { sleep(1); echo !filesys::removeDir('templates/site/' . $_POST['nameTemplate']) ? 'errDelTemplate' : 'success'; } } elseif ('addTplFile' === $_GET['action'] && !empty($_POST['nameTplFile']) && is_dir('templates/site/' . $_POST['currTemplate']) && !empty($_POST['discriptionTplFile'])) { if (is_file('templates/site/' . $_POST['currTemplate'] . '/' . $_POST['nameTplFile'])) {
/** * функция получает все необходимые данные о картинке * возвращает массив свойств * * @param (string) $path - путь к файлу * @param (string) $file - имя файла * * @return (array) - массив свойств файла */ public function getImageData($path, $file) { $arrData = @getimagesize(filesys::setPath($path) . $file); $arrImageData = array('thumb' => CONF_FILEMANAGER_THUMBNAIL_PREFIX . $file, 'name' => $file, 'width' => $arrData['0'], 'height' => $arrData['1'], 'mime' => $arrData['mime']); return $arrImageData; }
/** * private функция рассылки почтовых сообщений администратору при регистрации нового пользователя * Завершает работу скрипта, выводом информационного сообщения пользователю * * @param (string) $email - email зарегистрированного пользователя * * @return void */ private function sendAdminEmail($email) { $mailer = new mailer(); // массив для замены в шаблоне $mailer->setAddReplace(array('%EMAIL%' => $email, '%ADMIN_PANEL%' => filesys::setPath(CONF_SCRIPT_URL) . CONF_ADMIN_FILE)); $mailer->sendEmail(CONF_MAIL_ADMIN_EMAIL, false, false, CONF_MAIL_ADMIN_EMAIL, false, MAIL_SUBJ_NEW_USER, 'adm.reg.user.txt'); }