/** * Функция формирует массив языковых файлов с именами констант в виде ключей их значений * В качестве эталона для формирования массива используется локализация по умолчанию: '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; }
/** * Получить все файлы SEO относящиеся к выбранному разделу * @param string $part раздел. Пример: agencies, companies * @param string $language текущий язык сайта (глобальная переменная $currLang) */ public static function getSeoFiles($part, $language = 'russian') { $files = filesys::getFilesInDir('lang/' . $language . '/seo/'); $resArray = array(); if (!empty($files)) { foreach ($files as $value) { if (strpos($value, $part) !== false) { $resArray[$value] = self::getSeo($value, $language); } } } return $resArray; }
if (file_exists(SD_ROOT_DIR . 'core/classes/lib/' . $className . '.class.php')) { require_once SD_ROOT_DIR . 'core/classes/lib/' . $className . '.class.php'; } else { // Файл класса ненайден печатаем сообщение об ошибке spl_autoload_register('smartyAutoload'); } } /********** Очистка полученных данных **********/ secure::clearRequestData(); /********** Языковые файлы **********/ if (!empty($_COOKIE['instLang']) && is_dir(SD_ROOT_DIR . 'install/lang/' . $_COOKIE['instLang'] . '/')) { $currLang = $_COOKIE['instLang']; } else { $currLang = SDG_DEFAULT_LANGUAGE; } foreach (filesys::getFilesInDir(SD_ROOT_DIR . 'install/lang/' . $currLang . '/') as $fileLang) { require_once SD_ROOT_DIR . 'install/lang/' . $currLang . '/' . $fileLang; } /********** Инициализация Smarty **********/ define('SMARTY_SPL_AUTOLOAD', 1); require_once SD_ROOT_DIR . 'install/Smarty/Smarty.class.php'; $smarty = new Smarty(); //core smarty object $smarty->error_reporting = E_ALL & ~E_NOTICE; $smarty->template_dir = SD_ROOT_DIR . 'install/templates/'; $smarty->compile_dir = SD_ROOT_DIR . 'install/templates_c/'; $smarty->debugging = false; $smarty->force_compile = true; #################################################################### ############################### INIT ############################### ####################################################################
/** * Функция полностью очишает кеш шаблонов сайта * * @return bool */ static function dropTmplCache() { $result = true; foreach (filesys::getFilesInDir(TEMPLATE_COMPILE_DIR) as $cacheFile) { if (!unlink(TEMPLATE_COMPILE_DIR . $cacheFile)) { $result = false; } } return $result; }
$arrErrors[] = ERROR_FILES_MISSING_FILE; } } */ } elseif ($arrActions['logs']) { // удаление логов if (!empty($_POST['action'])) { if ('deleted' === $_POST['action'] && !empty($_POST['files']) && is_array($_POST['files'])) { foreach ($_POST['files'] as $key => $value) { unlink(CONF_UPDATES_PATH_TO_LOG_FILES . $key); } messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=system&s=updates&action=logs'); } } $arrNamePage[] = array('name' => MENU_UPDATES_LOGS, 'link' => false); $logFiles = filesys::getFilesInDir(CONF_UPDATES_PATH_TO_LOG_FILES); $arrData = array(); if (!empty($logFiles) && is_array($logFiles)) { foreach ($logFiles as &$value) { $fData = filesys::getFileSystemData(CONF_UPDATES_PATH_TO_LOG_FILES . $value); if (!empty($fData) && is_array($fData)) { $arrData[$value] = $fData; } } } $smarty->assignByRef('arrData', $arrData); } elseif ($arrActions['backup'] && !empty($_GET['file']) && file_exists(CONF_UPDATES_PATH_TO_FILES . $_GET['file'])) { // массив проверки обновлений. Указывает, где будут производиться изменения // на основании этих данных определятся какие бэкапы нужно делать $arrBackup = array('php' => true, 'sql' => false); $zip = new PclZip(CONF_UPDATES_PATH_TO_FILES . $_GET['file']);
include_once 'core/mods/payments/' . $_GET['id'] . '/admin.php'; include_once 'core/mods/payments/' . $_GET['id'] . '/conf/' . $_GET['id'] . '.conf.php'; include_once 'core/mods/payments/' . $_GET['id'] . '/conf/' . $_GET['id'] . '.tariffs.php'; $smarty->assignByRef('arrPayments', $arrPayments); $smarty->assignByRef('arrTariffs', $arrTariffs); } elseif ($arrActions['mt'] && !empty($_GET['id']) && $issetMod) { // инициируем "Наименование страницы" отображаемое в форме $arrNamePage[] = array('name' => strtoupper($_GET['id']), 'link' => false); $arrNamePage[] = array('name' => MENU_MANAGER_TEMPLATES, 'link' => false); include_once 'core/mods/payments/' . $_GET['id'] . '/admin.php'; } elseif ($arrActions['lt'] && !empty($_GET['id']) && $issetMod) { $formUrl = CONF_ADMIN_FILE . '?m=mods&s=payments&action=lt&id=' . $_GET['id']; $langDir = 'core/mods/payments/' . $_GET['id'] . '/lang/'; $selects = isset($_POST['currLocaliz']) ? new selects($_POST['currLocaliz']) : new selects(); $currLang = $selects->retCurrLang(); if (!empty($_POST['fileNameLocaliz']) && in_array($_POST['fileNameLocaliz'], filesys::getFilesInDir($langDir . 'russian/'))) { $fileNameLocaliz = array_pop($_POST); $arrData = array(); foreach ($_POST as $constName => &$constValue) { $arrData[] = "define('" . strtoupper($constName) . "', '" . (!empty($constValue) ? $constValue : strtoupper($constName)) . "');"; } $data = "<?php\n\n" . "(!defined('SDG')) ? die ('Triple protection!') : null;\n\n" . implode("\n\n", $arrData) . "\n"; if (file_put_contents($langDir . $currLang . '/' . $fileNameLocaliz, $data)) { messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, $formUrl); } else { messages::messageChangeSaved(MESSAGE_CHANGE_NOT_SAVED, false, $formUrl); } } $smarty->assignByRef('formUrl', $formUrl); $smarty->assignByRef('modId', $_GET['id']); $smarty->assignByRef('currLang', $currLang);
// инициируем "Наименование страницы" отображаемое в форме $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); } else {
} elseif (!empty($_COOKIE['adm_currTmplManage']) && is_dir('templates/site/' . $_COOKIE['adm_currTmplManage'])) { $currTemplate =& $_COOKIE['adm_currTmplManage']; } else { $currTemplate = CONF_TEMPLATE; } // устанавливаем кукисы cookies::setCookieSite('adm_currTmplManage', $currTemplate); // передаем текуший шаблон в Smarty $smarty->assignByRef('currTemplate', $currTemplate); // текущий шаблон // формируем данные - Список файлов шаблона foreach (filesys::getFilesInDir("templates/site/{$currTemplate}/") as $fileName) { if (false !== strstr($fileName, '.tpl')) { // записываем данные в массив $listTemplates[] = array('name' => $fileName, 'id' => $id = str_replace('.', '_', $fileName)); } } // формируем данные - Список файлов стилей foreach (filesys::getFilesInDir("templates/site/{$currTemplate}/style/") as $fileName) { if (false !== strstr($fileName, '.css')) { // записываем данные в массив $listCSS[] = array('name' => $fileName, 'id' => $id = str_replace('.', '_', $fileName)); } } // передаем данные в Smarty $smarty->assignByRef('listTemplates', $listTemplates); $smarty->assignByRef('listCSS', $listCSS); // получаем список доступных дирректорий шаблонов $smarty->assign('templates', filesys::getChildDirs('templates/site/')); $smarty->assignByRef('errors', $arrErrors); $smarty->assignByRef('action', $arrActions);
} elseif (!@mkdir('templates/site/' . $_POST['nameTemplate'], 0755)) { echo 'errCreateDirTemplate'; } elseif (!@mkdir('templates/site/' . $_POST['nameTemplate'] . '/style', 0755)) { echo 'errCreateDirTemplateStyle'; } elseif (!@mkdir('templates/site/' . $_POST['nameTemplate'] . '/images', 0755)) { 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 {
} elseif (file_exists($pathExpertCore . 'base/' . $className . '.class.php')) { require_once $pathExpertCore . 'base/' . $className . '.class.php'; } elseif (file_exists($pathExpertCore . $className . '.class.php')) { require_once $pathExpertCore . $className . '.class.php'; } elseif (file_exists($pathExpertCore . 'lib/' . $className . '.class.php')) { require_once $pathExpertCore . 'lib/' . $className . '.class.php'; } elseif (file_exists($pathExpertCore . $className . '/' . $className . '.class.php')) { require_once $pathExpertCore . $className . '/' . $className . '.class.php'; } else { spl_autoload_register('smartyAutoload'); } } /********** Конфиги **********/ foreach (filesys::getFilesInDir('core/conf/') as $fileConf) { require_once 'core/conf/' . $fileConf; } /********** Языковые файлы **********/ foreach (filesys::getFilesInDir('lang/' . CONF_LANGUAGE . '/') as $fileLang) { 0 === strpos($fileLang, 'adm.') || 'lang.dictionarys.selects.php' === $fileLang ? require_once 'lang/' . CONF_LANGUAGE . '/' . $fileLang : null; } /********** Инициализация Smarty **********/ define('SMARTY_SPL_AUTOLOAD', 1); require_once TEMPLATE_SMARTY_DIR . 'Smarty.class.php'; $smarty = new Smarty(); //core smarty object $smarty->error_reporting = E_ALL & ~E_NOTICE; $smarty->template_dir = TEMPLATE_PATH_ADMIN; $smarty->compile_dir = TEMPLATE_COMPILE_DIR; $smarty->debugging = TEMPLATE_DEBUGGING; $smarty->compile_check = TEMPLATE_COMPILE_CHECK; $smarty->force_compile = TEMPLATE_FORCE_COMPILE;
$arrData[] = "define('" . strtoupper($constName) . "', '" . (!empty($constValue) ? $constValue : strtoupper($constName)) . "');"; } $data = "<?php\n\n" . "(!defined('SDG')) ? die ('Triple protection!') : null;\n\n" . implode("\n\n", $arrData) . "\n"; file_put_contents("lang/{$currLang}/" . $fileNameLocaliz, $data) ? messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=service&s=language.manager&action=localizConst') : messages::messageChangeSaved(MESSAGE_CHANGE_NOT_SAVED, false, CONF_ADMIN_FILE . '?m=service&s=language.manager&action=localizConst'); } $ownAdmin = !empty($_GET['own']) && 'admin' === $_GET['own'] ? true : false; $smarty->assignByRef('ownAdmin', $ownAdmin); $smarty->assign('defLocalizConst', localiz::getLocalizConst('russian', $ownAdmin)); $smarty->assign('currLocalizConst', localiz::getLocalizConst($currLang, $ownAdmin)); } elseif (!empty($arrActions['localizText'])) { // инициируем "Наименование страницы" отображаемое в форме $arrNamePage[] = array('name' => MENU_LANGUAGE_LOCALIZ_TEXT, 'link' => false); // создаем директорию, если она не существует !is_dir("lang/{$currLang}/texts") ? mkdir("lang/{$currLang}/texts", 0757) : null; // формируем данные foreach (filesys::getFilesInDir('lang/russian/texts/') as $fileName) { if (false !== strstr($fileName, '.txt')) { // создаем файл, если он не существует !file_exists("lang/{$currLang}/texts/{$fileName}") ? file_put_contents("lang/{$currLang}/texts/{$fileName}", '') : null; // записываем данные в массив $arrFilesList[] = array('name' => $fileName, 'id' => $id = str_replace('.', '_', $fileName), 'text' => file_get_contents("lang/{$currLang}/texts/{$fileName}"), 'description' => @constant('HELP_ADMIN_MAIL_' . strtoupper($id))); } } // передаем данные в Smarty $smarty->assignByRef('files', $arrFilesList); } elseif (!empty($arrActions['localizAgreement'])) { // инициируем "Наименование страницы" отображаемое в форме $arrNamePage[] = array('name' => MENU_LANGUAGE_LOCALIZ_AGREEMENT, 'link' => false); // создаем директорию, если она не существует !is_dir("lang/{$currLang}/texts") ? mkdir("lang/{$currLang}/texts", 0757) : null; // создаем файл, если он не существует
<?php /******************************************************** 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 ========================================================= Настройки - Файлы ********************************************************/ /** * @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_FILES, 'link' => false)); // сохраняем данные, переданные из формы if (isset($_POST['save'])) { $data = "<?php\n\n" . "(!defined('SDG')) ? die ('Triple protection!') : null;\n\n" . 'define("CONF_FILES_MAX_SIZE", "' . ((int) $_POST['max_size'] ? (int) $_POST['max_size'] : 10000) . '");' . "\n\n" . 'define("CONF_FILES_IMG_CREATE_WATERMARK", "' . (isset($_POST['create_watermark']) ? true : false) . '");' . "\n\n" . 'define("CONF_FILES_IMG_CREATE_WATERMARK_ON", "' . $_POST['watermark_on'] . '");' . "\n\n" . 'define("CONF_FILES_IMG_WATERMARK_ALIGNMENT", "' . strtoupper($_POST['watermark_alignment']) . '");' . "\n\n" . 'define("CONF_FILES_IMG_WATERMARK_TYPE", "' . $_POST['watermark_type'] . '");' . "\n\n" . 'define("CONF_FILES_IMG_WATERMARK_IMAGE", "' . htmlspecialchars($_POST['watermark_image'], ENT_QUOTES, CONF_DEFAULT_CHARSET) . '");' . "\n\n" . 'define("CONF_FILES_IMG_WATERMARK_TEXT", "' . htmlspecialchars($_POST['watermark_text'], ENT_QUOTES, CONF_DEFAULT_CHARSET) . '");' . "\n\n" . 'define("CONF_FILES_IMG_WATERMARK_FONT", "' . $_POST['font'] . '");' . "\n\n" . 'define("CONF_FILES_IMG_WATERMARK_FONT_SIZE", "' . ((int) $_POST['font_size'] ? (int) $_POST['font_size'] : 17) . '");' . "\n\n" . 'define("CONF_FILES_IMG_WATERMARK_FONT_COLOR", "' . htmlspecialchars($_POST['font_color'], ENT_QUOTES, CONF_DEFAULT_CHARSET) . '");' . "\n\n" . 'define("CONF_FILES_IMG_WATERMARK_TRANSPARENT", "' . ((int) $_POST['transparent'] ? (int) $_POST['transparent'] : 0) . '");' . "\n"; if (!tools::saveConfig('core/conf/const.config.files.php', $data, CONF_ADMIN_FILE . '?m=config&s=files')) { $arrErrors[] = ERROR_FILES_MISSING_FILE; } } $smarty->assign('fonts', filesys::getFilesInDir('core/fonts/')); // получаем список доступных дирректорий шаблонов $smarty->assignByRef('errors', $arrErrors);
/** * Определение текущей локализации */ if (!empty($_COOKIE['currLang']) && false !== ($currLang = array_search($_COOKIE['currLang'], $existLangs))) { unset($existLangs[$currLang]); array_unshift($existLangs, $currLang =& $_COOKIE['currLang']); cookies::setCookieSite('currLang', $currLang, 30); } else { unset($existLangs[array_search(CONF_LANGUAGE, $existLangs)]); array_unshift($existLangs, $currLang = CONF_LANGUAGE); cookies::setCookieSite('currLang', $currLang, 30); } /** * Подключения языковых файлов текущей локализации */ foreach (filesys::getFilesInDir('lang/' . $currLang . '/') as $fileLang) { 0 !== strpos($fileLang, 'adm.') ? require_once 'lang/' . $currLang . '/' . $fileLang : null; } /** * Капча */ require_once 'core/si/securimage.php'; /** * Моды */ // empty /** * Инициализация шаблонизатора Smarty */ define('SMARTY_SPL_AUTOLOAD', 1); require_once TEMPLATE_SMARTY_DIR . 'Smarty.class.php';
/** * Функция массив всех фалов резервных копий * * @return array or false */ static function getBackupFiles() { if ($arrFiles = filesys::getFilesInDir(CONF_BACKUPS_PATH_TO_FILES)) { $resArray = array(); foreach ($arrFiles as $value) { if ($arrData = filesys::getFileData(CONF_BACKUPS_PATH_TO_FILES, $value)) { $resArray[$value] = $arrData; } } return $resArray ? $resArray : false; } else { return false; } }