/** * Функция запуска робота * * @param (array) $arrConf - массив настроек робота * * @return bool */ static function start(&$arrConf) { $arrRobotData = filesys::getSerializedData('core/data/robot.mda'); if (!empty($arrRobotData['clear_cache']) && is_array($arrRobotData['clear_cache'])) { foreach ($arrRobotData['clear_cache'] as $cacheKey => &$caheData) { !empty($caheData) && $caheData < time() ? caching::clearCache($cacheKey) : null; } } if (!empty($arrConf['configs']['robot_running']) && !empty($arrConf['configs']['robot_running_firsttime']) && $arrConf['configs']['robot_running_firsttime'] <= time()) { if (!($arrRobotData = filesys::getSerializedData('core/data/robot.mda')) || !isset($arrRobotData['next_running']) || $arrRobotData['next_running'] <= time()) { control::actionsControl($arrConf['actions']); $arrRobotData['next_running'] = time() + $arrConf['configs']['robot_term'] * $arrConf['configs']['robot_term_coef']; return filesys::putSerializedData('core/data/robot.mda', $arrRobotData); } else { return true; } } else { return true; } }
* 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);
$crpt = isset($_POST['crpt']) && (int) $_POST['crpt'] ? (int) abs($_POST['crpt']) : 72; $crct = isset($_POST['crct']) && (int) $_POST['crct'] ? (int) abs($_POST['crct']) : 72; $crvipt = isset($_POST['crvipt']) && (int) $_POST['crvipt'] ? (int) abs($_POST['crvipt']) : 0; $crvips = isset($_POST['crvips']) ? 1 : 0; $crvipsp = isset($_POST['crvipsp']) && (int) $_POST['crvipsp'] ? (int) abs($_POST['crvipsp']) : 5; $crhott = isset($_POST['crhott']) && (int) $_POST['crhott'] ? (int) abs($_POST['crhott']) : 0; $crhotsp = isset($_POST['crhotsp']) && (int) $_POST['crhotsp'] ? (int) abs($_POST['crhotsp']) : 5; $crls = isset($_POST['crls']) ? 1 : 0; $crlsp = isset($_POST['crlsp']) && (int) $_POST['crlsp'] ? (int) abs($_POST['crlsp']) : 5; $crap = isset($_POST['crap']) ? 1 : 0; $crapmw = isset($_POST['crapmw']) && (int) $_POST['crapmw'] ? (int) abs($_POST['crapmw']) : 150; $crapmh = isset($_POST['crapmh']) && (int) $_POST['crapmh'] ? (int) abs($_POST['crapmh']) : 150; $crapfms = isset($_POST['crapfms']) && (int) $_POST['crapfms'] ? (int) abs($_POST['crapfms']) : 1024; $data = "<?php\n\n" . "(!defined('SDG')) ? die ('Triple protection!') : null;\n\n" . 'define("CONF_ANNOUNCE_USER_AGREEMENT_NOMEMBERS_REQUIRED", ' . CONF_ANNOUNCE_USER_AGREEMENT_NOMEMBERS_REQUIRED . ');' . "\n\n" . 'define("CONF_ANNOUNCE_ADD_SUCCESS_ADMIN_INFORM", ' . CONF_ANNOUNCE_ADD_SUCCESS_ADMIN_INFORM . ');' . "\n\n" . 'define("CONF_ANNOUNCE_ADD_SUCCESS_USER_INFORM", ' . CONF_ANNOUNCE_ADD_SUCCESS_USER_INFORM . ');' . "\n\n" . 'define("CONF_ANNOUNCE_USE_VISUAL_EDITOR", ' . CONF_ANNOUNCE_USE_VISUAL_EDITOR . ');' . "\n\n" . 'define("CONF_ANNOUNCE_PREVIEW", ' . CONF_ANNOUNCE_PREVIEW . ');' . "\n\n" . 'define("CONF_ANNOUNCE_PERPAGE_SITE", ' . CONF_ANNOUNCE_PERPAGE_SITE . ');' . "\n\n" . 'define("CONF_ANNOUNCE_PERPAGE_ADMIN_PANEL", ' . CONF_ANNOUNCE_PERPAGE_ADMIN_PANEL . ');' . "\n\n" . 'define("CONF_CATEGORY_PERLINE", ' . CONF_CATEGORY_PERLINE . ');' . "\n\n" . 'define("CONF_EMAIL_ATTACHMENT_FILES_ALLOW", ' . CONF_EMAIL_ATTACHMENT_FILES_ALLOW . ');' . "\n\n" . 'define("CONF_EMAIL_ATTACHMENT_MAX_FILES", ' . CONF_EMAIL_ATTACHMENT_MAX_FILES . ');' . "\n\n" . 'define("CONF_EMAIL_ATTACHMENT_FILE_MAX_SIZE", ' . CONF_EMAIL_ATTACHMENT_FILE_MAX_SIZE . ');' . "\n\n" . 'define("CONF_VACANCY_ACTIVATE_THERM", ' . CONF_VACANCY_ACTIVATE_THERM . ');' . "\n\n" . 'define("CONF_VACANCY_CORRECTION_THERM", ' . CONF_VACANCY_CORRECTION_THERM . ');' . "\n\n" . 'define("CONF_VACANCY_PAYMENT_THERM", ' . CONF_VACANCY_PAYMENT_THERM . ');' . "\n\n" . 'define("CONF_VACANCY_VIP_THERM", ' . CONF_VACANCY_VIP_THERM . ');' . "\n\n" . 'define("CONF_VACANCY_VIP_SHOW", ' . CONF_VACANCY_VIP_SHOW . ');' . "\n\n" . 'define("CONF_VACANCY_VIP_SHOW_PERPAGE", ' . CONF_VACANCY_VIP_SHOW_PERPAGE . ');' . "\n\n" . 'define("CONF_VACANCY_HOT_THERM", ' . CONF_VACANCY_HOT_THERM . ');' . "\n\n" . 'define("CONF_VACANCY_HOT_SHOW_PERPAGE", ' . CONF_VACANCY_HOT_SHOW_PERPAGE . ');' . "\n\n" . 'define("CONF_VACANCY_LAST_SHOW", ' . CONF_VACANCY_LAST_SHOW . ');' . "\n\n" . 'define("CONF_VACANCY_LAST_SHOW_PERPAGE", ' . CONF_VACANCY_LAST_SHOW_PERPAGE . ');' . "\n\n" . 'define("CONF_RESUME_ACTIVATE_THERM", ' . $crat . ');' . "\n\n" . 'define("CONF_RESUME_CORRECTION_THERM", ' . $crct . ');' . "\n\n" . 'define("CONF_RESUME_PAYMENT_THERM", ' . $crpt . ');' . "\n\n" . 'define("CONF_RESUME_VIP_THERM", ' . $crvipt . ');' . "\n\n" . 'define("CONF_RESUME_VIP_SHOW", ' . $crvips . ');' . "\n\n" . 'define("CONF_RESUME_VIP_SHOW_PERPAGE", ' . $crvipsp . ');' . "\n\n" . 'define("CONF_RESUME_HOT_THERM", ' . $crhott . ');' . "\n\n" . 'define("CONF_RESUME_HOT_SHOW_PERPAGE", ' . $crhotsp . ');' . "\n\n" . 'define("CONF_RESUME_LAST_SHOW", ' . $crls . ');' . "\n\n" . 'define("CONF_RESUME_LAST_SHOW_PERPAGE", ' . $crlsp . ');' . "\n\n" . 'define("CONF_RESUME_ADD_PHOTO", ' . $crap . ');' . "\n\n" . 'define("CONF_RESUME_ADD_PHOTO_MAXWIDTH", ' . $crapmw . ');' . "\n\n" . 'define("CONF_RESUME_ADD_PHOTO_MAXHEIGHT", ' . $crapmh . ');' . "\n\n" . 'define("CONF_RESUME_ADD_PHOTO_FILE_MAXSIZE", ' . $crapfms . ');' . "\n"; // чистим кеш caching::clearCache('resume.last'); // сохраняем изменения if (!tools::saveConfig('core/conf/const.config.announces.php', $data, CONF_ADMIN_FILE . '?m=announces&s=common&action=confResume')) { $arrErrors[] = ERROR_FILES_MISSING_FILE; } } elseif (isset($_POST['sort']) && isset($_POST['arrSortList'])) { // сохраняем данные сортировки, переданные из формы !$resume->putSortFields($_POST['arrSortList']) ? messages::printDie(ERROR_FILE_NOT_WRITE) : messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=announces&s=common&action=confResume'); } elseif (isset($_POST['pTitle']) && !empty($_POST['title']) && is_array($_POST['title'])) { // сохраняем данные, переданные из формы $arrTitle = array(); foreach ($_POST['title'] as &$value) { $arrTitle[] = "\tarray('name' => " . stripcslashes($value) . ')'; } $data = "<?php\n" . '$arrTitle = array(' . "\n" . implode(",\n", $arrTitle) . "\n);\n"; !file_put_contents('core/data/resume.pagetitle.pda', $data) ? messages::printDie(ERROR_FILE_NOT_WRITE) : messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=announces&s=common&action=confResume');
/** * protected функция получает последние новости в соответствии с настройкой в панели администратора * * @return array or false */ public function getLastNewses() { if (CONF_ENABLE_CACHING) { if (false === ($result = caching::getCahing('caching/newses.last.cache'))) { $result = $this->getNewses("token IN ('active') AND datetime<=NOW()", array('datetime' => 'DESC'), array('strLimit' => '0, ' . CONF_NEWSES_LAST_SHOW_PERPAGE, 'calcRows' => false), array('id', 'title', 'small_text', 'datetime')); empty($result) ? $result = array() : null; caching::setCaching('caching/newses.last.cache', $result); } } else { $result = $this->getNewses("token IN ('active') AND datetime<=NOW()", array('datetime' => 'DESC'), array('strLimit' => '0, ' . CONF_NEWSES_LAST_SHOW_PERPAGE, 'calcRows' => false), array('id', 'title', 'small_text', 'datetime')); } return $result; }
/** * protected функция помечает разделы и сатьи этих разделов как удаленные * * @param (array) $arrSections - массив, содержащий id разделов для удаления * * @return bool */ protected function pDeleteSections(&$arrSections) { // помечаем статьи разделов как удаленные foreach ($arrSections as &$value) { $articles = new articles(); $articles->deleteArticlesBySection($value); } $strWhere = 'id IN (' . implode(',', secure::escQuoteData($arrSections)) . ')'; caching::clearCache($this->retTableName()); return $this->delEntrys($strWhere); }
$arrActions = array('config' => false, 'seo' => false); // определяем шаблон для отображения isset($_GET['action']) && isset($arrActions[$_GET['action']]) ? $arrActions[$_GET['action']] = true : null; // создаем объект $user = new user(); /** * Настройки компаний */ if ($arrActions['config']) { // инициируем "Наименование страницы" отображаемое в форме $arrNamePage[] = array('name' => MENU_CONFIG, 'link' => false); // сохраняем данные, переданные из формы if (isset($_POST['save'])) { $data = "<?php\n\n" . "(!defined('SDG')) ? die ('Triple protection!') : null;\n\n" . 'define("CONF_COMPANIES_STRINGS_PERPAGE_ADMIN_PANEL", "' . ((int) $_POST['admperpage'] ? (int) abs($_POST['admperpage']) : 30) . '");' . "\n\n" . 'define("CONF_COMPANIES_PERPAGE", "' . ((int) $_POST['perpage'] ? (int) abs($_POST['perpage']) : 30) . '");' . "\n\n" . 'define("CONF_COMPANIES_SHOW_ONLY_WITH_LOGO", "' . (!isset($_POST['with_logo']) ? false : true) . '");' . "\n\n" . 'define("CONF_COMPANIES_DELETE_LOGO", "' . (!isset($_POST['delete_logo']) ? false : true) . '");' . "\n\n" . 'define("CONF_COMPANIES_USE_VISUAL_EDITOR", "' . (!isset($_POST['html']) ? false : true) . '");' . "\n\n" . 'define("CONF_COMPANIES_SHOW_MAIN_LOGO", "' . (!isset($_POST['show_main_logo']) ? false : true) . '");' . "\n\n" . 'define("CONF_COMPANIES_SHOW_MAIN_LOGO_QTY", "' . (!empty($_POST['logo_qty']) && (int) $_POST['logo_qty'] ? (int) abs($_POST['logo_qty']) : 5) . '");' . "\n"; // чистим кеш caching::clearCache('company.logo'); if (!tools::saveConfig('core/conf/const.config.companies.php', $data, CONF_ADMIN_FILE . '?m=users&s=companies&action=config')) { $arrErrors[] = ERROR_FILES_MISSING_FILE; } } } else { if ($arrActions['seo']) { // инициируем "Наименование страницы" отображаемое в форме $arrNamePage[] = array('name' => MENU_SEO, 'link' => false); $selects = isset($_POST['currLocaliz']) ? new selects($_POST['currLocaliz']) : new selects(); $currLang = $selects->retCurrLang(); $smarty->assignByRef('currLang', $currLang); // текущая локализация // получаем список доступных дирректорий языков $langs = $selects->retLangs(); $smarty->assignByRef('langs', $langs);
/** * static функция получения статистики из БД * * @return array */ static function getStatistics(&$arrXmlTemplate, &$objVacancy, &$objResume, &$objUser) { $sides = array_merge($arrXmlTemplate['left_side'], $arrXmlTemplate['right_side']); if (false !== array_search('block.statistics.tpl', $sides)) { if (!CONF_ENABLE_CACHING || false === ($arrStat = caching::getCahing('caching/statistic.cache'))) { $arrStat = array('users' => $objUser->cntActiveUsers(), 'vacancys' => $objVacancy->cntAnnounces("token IN ('active')"), 'resumes_v' => $objResume->cntAnnounces("token IN ('active') AND visibility IN ('visible','visiblehc')"), 'resumes_m' => $objResume->cntAnnounces("token IN ('active') AND visibility IN ('visible','visiblehc','members','membershc')")); CONF_ENABLE_CACHING ? caching::setCaching('caching/statistic.cache', $arrStat) : null; } } else { $arrStat = false; } return $arrStat; }
/** * функция обновления страниц * * @param array $arrData - массив даных для обновления * @param (array) $arrPages - массив, содержащий id страниц для обновления (id_1, id_2, ..., id_n) * * @return bool */ protected function updatePages($arrData, $arrPages) { if ($this->editEntrys(secure::escQuoteData($arrData), 'id IN (' . implode(',', secure::escQuoteData($arrPages)) . ')')) { caching::clearCache($this->retTableName()); return true; } else { return false; } }
/** * Функция выполнения импорта * * @return (string) - JSON-строка с описанием текущего состояния процесса импорта */ static function mdsDoImportDB() { if ($arrData = filesys::getSerializedData('core/data/mdsImport.mda')) { foreach ($arrData as $table => &$arrDataTable) { $arrQueryData = array_shift($arrDataTable); $oldId =& $arrQueryData['old_id']; unset($arrQueryData['old_id']); $newId = db::dbInsertTable($table, secure::escQuoteData($arrQueryData)); switch ($table) { case USR_PREFIX . 'city': $arrUpdateQuerys[DB_PREFIX . 'subscription'][] = array('arrData' => array('id_city' => $newId, 'token' => 'reserved'), 'strWhere' => "id_city IN ('{$oldId}') AND token IN ('active')"); $arrUpdateQuerys[DB_PREFIX . 'subscription'][] = array('arrData' => array('id_city' => $newId, 'token' => 'deleted'), 'strWhere' => "id_city IN ('{$oldId}') AND token IN ('archived')"); $arrUpdateQuerys[DB_PREFIX . 'vacancy'][] = array('arrData' => array('id_city' => $newId, 'token' => 'reserved'), 'strWhere' => "id_city IN ('{$oldId}') AND token IN ('active')"); $arrUpdateQuerys[DB_PREFIX . 'vacancy'][] = array('arrData' => array('id_city' => $newId, 'token' => 'deleted'), 'strWhere' => "id_city IN ('{$oldId}') AND token IN ('archived')"); $arrUpdateQuerys[DB_PREFIX . 'resume'][] = array('arrData' => array('id_city' => $newId, 'token' => 'reserved'), 'strWhere' => "id_city IN ('{$oldId}') AND token IN ('active')"); $arrUpdateQuerys[DB_PREFIX . 'resume'][] = array('arrData' => array('id_city' => $newId, 'token' => 'deleted'), 'strWhere' => "id_city IN ('{$oldId}') AND token IN ('archived')"); break; case USR_PREFIX . 'region': $arrUpdateQuerys[USR_PREFIX . 'city'][] = array('arrData' => array('parent_id' => $newId, 'token' => 'reserved'), 'strWhere' => "parent_id IN ('{$oldId}') AND token IN ('active')"); $arrUpdateQuerys[DB_PREFIX . 'subscription'][] = array('arrData' => array('id_region' => $newId, 'token' => 'reserved'), 'strWhere' => "id_region IN ('{$oldId}') AND token IN ('active')"); $arrUpdateQuerys[DB_PREFIX . 'subscription'][] = array('arrData' => array('id_region' => $newId, 'token' => 'deleted'), 'strWhere' => "id_region IN ('{$oldId}') AND token IN ('archived')"); $arrUpdateQuerys[DB_PREFIX . 'vacancy'][] = array('arrData' => array('id_region' => $newId, 'token' => 'reserved'), 'strWhere' => "id_region IN ('{$oldId}') AND token IN ('active')"); $arrUpdateQuerys[DB_PREFIX . 'vacancy'][] = array('arrData' => array('id_region' => $newId, 'token' => 'deleted'), 'strWhere' => "id_region IN ('{$oldId}') AND token IN ('archived')"); $arrUpdateQuerys[DB_PREFIX . 'resume'][] = array('arrData' => array('id_region' => $newId, 'token' => 'reserved'), 'strWhere' => "id_region IN ('{$oldId}') AND token IN ('active')"); $arrUpdateQuerys[DB_PREFIX . 'resume'][] = array('arrData' => array('id_region' => $newId, 'token' => 'deleted'), 'strWhere' => "id_region IN ('{$oldId}') AND token IN ('archived')"); break; case DB_PREFIX . 'profession': $arrUpdateQuerys[DB_PREFIX . 'subscription'][] = array('arrData' => array('id_profession' => $newId, 'token' => 'reserved'), 'strWhere' => "id_profession IN ('{$oldId}') AND token IN ('active')"); $arrUpdateQuerys[DB_PREFIX . 'subscription'][] = array('arrData' => array('id_profession' => $newId, 'token' => 'deleted'), 'strWhere' => "id_profession IN ('{$oldId}') AND token IN ('archived')"); $arrUpdateQuerys[DB_PREFIX . 'vacancy'][] = array('arrData' => array('id_profession' => $newId, 'token' => 'reserved'), 'strWhere' => "id_profession IN ('{$oldId}') AND token IN ('active')"); $arrUpdateQuerys[DB_PREFIX . 'vacancy'][] = array('arrData' => array('id_profession' => $newId, 'token' => 'deleted'), 'strWhere' => "id_profession IN ('{$oldId}') AND token IN ('archived')"); $arrUpdateQuerys[DB_PREFIX . 'resume'][] = array('arrData' => array('id_profession' => $newId, 'token' => 'reserved'), 'strWhere' => "id_profession IN ('{$oldId}') AND token IN ('active')"); $arrUpdateQuerys[DB_PREFIX . 'resume'][] = array('arrData' => array('id_profession' => $newId, 'token' => 'deleted'), 'strWhere' => "id_profession IN ('{$oldId}') AND token IN ('archived')"); break; case DB_PREFIX . 'section': $arrUpdateQuerys[DB_PREFIX . 'profession'][] = array('arrData' => array('parent_id' => $newId, 'token' => 'reserved'), 'strWhere' => "parent_id IN ('{$oldId}') AND token IN ('active')"); $arrUpdateQuerys[DB_PREFIX . 'subscription'][] = array('arrData' => array('id_section' => $newId, 'token' => 'reserved'), 'strWhere' => "id_section IN ('{$oldId}') AND token IN ('active')"); $arrUpdateQuerys[DB_PREFIX . 'subscription'][] = array('arrData' => array('id_section' => $newId, 'token' => 'deleted'), 'strWhere' => "id_section IN ('{$oldId}') AND token IN ('archived')"); $arrUpdateQuerys[DB_PREFIX . 'vacancy'][] = array('arrData' => array('id_section' => $newId, 'token' => 'reserved'), 'strWhere' => "id_section IN ('{$oldId}') AND token IN ('active')"); $arrUpdateQuerys[DB_PREFIX . 'vacancy'][] = array('arrData' => array('id_section' => $newId, 'token' => 'deleted'), 'strWhere' => "id_section IN ('{$oldId}') AND token IN ('archived')"); $arrUpdateQuerys[DB_PREFIX . 'resume'][] = array('arrData' => array('id_section' => $newId, 'token' => 'reserved'), 'strWhere' => "id_section IN ('{$oldId}') AND token IN ('active')"); $arrUpdateQuerys[DB_PREFIX . 'resume'][] = array('arrData' => array('id_section' => $newId, 'token' => 'deleted'), 'strWhere' => "id_section IN ('{$oldId}') AND token IN ('archived')"); break; case DB_PREFIX . 'vacancy': $arrUpdateQuerys[DB_PREFIX . 'subscription'][] = array('arrData' => array('id_announce' => $newId, 'token' => 'reserved'), 'strWhere' => "id_announce IN ('{$oldId}') AND token IN ('active')"); $arrUpdateQuerys[DB_PREFIX . 'subscription'][] = array('arrData' => array('id_announce' => $newId, 'token' => 'deleted'), 'strWhere' => "id_announce IN ('{$oldId}') AND token IN ('archived')"); break; case DB_PREFIX . 'resume': $arrUpdateQuerys[DB_PREFIX . 'subscription'][] = array('arrData' => array('id_announce' => $newId, 'token' => 'reserved'), 'strWhere' => "id_announce IN ('{$oldId}') AND token IN ('active')"); $arrUpdateQuerys[DB_PREFIX . 'subscription'][] = array('arrData' => array('id_announce' => $newId, 'token' => 'deleted'), 'strWhere' => "id_announce IN ('{$oldId}') AND token IN ('archived')"); break; case USR_PREFIX . 'users': $arrData[DB_PREFIX . 'conf_users'][$oldId]['id'] = $newId; $arrUpdateQuerys[DB_PREFIX . 'subscription'][] = array('arrData' => array('id_user' => $newId, 'token' => 'reserved'), 'strWhere' => "id_user IN ('{$oldId}') AND token IN ('active')"); $arrUpdateQuerys[DB_PREFIX . 'subscription'][] = array('arrData' => array('id_user' => $newId, 'token' => 'deleted'), 'strWhere' => "id_user IN ('{$oldId}') AND token IN ('archived')"); $arrUpdateQuerys[DB_PREFIX . 'vacancy'][] = array('arrData' => array('id_user' => $newId, 'token' => 'reserved'), 'strWhere' => "id_user IN ('{$oldId}') AND token IN ('active')"); $arrUpdateQuerys[DB_PREFIX . 'vacancy'][] = array('arrData' => array('id_user' => $newId, 'token' => 'deleted'), 'strWhere' => "id_user IN ('{$oldId}') AND token IN ('archived')"); $arrUpdateQuerys[DB_PREFIX . 'resume'][] = array('arrData' => array('id_user' => $newId, 'token' => 'reserved'), 'strWhere' => "id_user IN ('{$oldId}') AND token IN ('active')"); $arrUpdateQuerys[DB_PREFIX . 'resume'][] = array('arrData' => array('id_user' => $newId, 'token' => 'deleted'), 'strWhere' => "id_user IN ('{$oldId}') AND token IN ('archived')"); break; case DB_PREFIX . 'conf_users': 'competitor' !== $arrQueryData['user_type'] ? $arrUpdateQuerys[DB_PREFIX . 'vacancy'][] = array('arrData' => array('user_type' => $arrQueryData['user_type']), 'strWhere' => "id_user IN ('" . $arrQueryData['id'] . "')") : null; break; default: break; } if (!empty($arrUpdateQuerys)) { foreach ($arrUpdateQuerys as $keyT => &$valueT) { foreach ($valueT as &$arrUpdData) { db::dbUpdateTable($keyT, secure::escQuoteData($arrUpdData['arrData']), $arrUpdData['strWhere']); } db::dbUpdateTable($keyT, secure::escQuoteData(array('token' => 'active')), "token IN ('reserved')"); db::dbUpdateTable($keyT, secure::escQuoteData(array('token' => 'archived')), "token IN ('deleted')"); } } if (empty($arrDataTable)) { unset($arrData[$table]); } DB_PREFIX . 'conf_users' == $table ? $table = USR_PREFIX . 'users' : null; if (!empty($arrData)) { filesys::putSerializedData('core/data/mdsImport.mda', $arrData); $result = array('onProgress' => true, 'table' => &$table); } else { @unlink('core/data/mdsImport.mda'); caching::dropCache(); $result = array('onProgress' => false, 'table' => &$table); } return ajax::sdgJSONencode($result); } } else { caching::dropCache(); return ajax::sdgJSONencode(array('onProgress' => false)); } }
$smarty->assignByRef('arrData', $arrData); $smarty->display('adm.system.updates.logs.detail.tpl'); } else { echo 'errorUncorrectParams'; } } else { echo 'errorFileNotExists'; } } elseif (!empty($_POST['deleteDBCache'])) { if (caching::dropCache()) { echo ajax::sdgJSONencode(array('success' => true)); } else { echo ajax::sdgJSONencode(array('error' => true)); } } elseif (!empty($_POST['deleteTmplCache'])) { if (caching::dropTmplCache()) { echo ajax::sdgJSONencode(array('success' => true)); } else { echo ajax::sdgJSONencode(array('error' => true)); } // Сохранение .htaccess } elseif (!empty($_POST['defaultHtaccess'])) { $def = '# Copyright © 2010 - 2015 SD-GROUP' . "\n"; $def .= '# Website: http://sd-group.org.ua/' . "\n\n"; $def .= '# Defaul Charset' . "\n"; $def .= 'AddDefaultCharset UTF-8' . "\n\n"; $def .= '# Set the default handler.' . "\n"; $def .= 'DirectoryIndex index.php' . "\n\n"; $def .= '# Security' . "\n"; $def .= 'php_flag register_globals off' . "\n"; $def .= '# Disable Magic Quotes' . "\n";
static function actionsControl(&$arrActions) { $user = new user(); $subscription = new subscription(); $vacancy = new vacancy(); $resume = new resume(); foreach ($arrActions as $action => $type) { switch ($action) { case 'updateCounters': $result = caching::dropCache(); break; case 'delNonverifyUsers': $uData = $user->getCombinedUsersData(array(array('users', 'id')), "users.token IN ('new') AND users.token_datetime < NOW()", false, false); if (!empty($uData) && is_array($uData)) { foreach ($uData as $data) { $arrId[] = $data['id']; } } $result = !empty($arrId) ? $user->deleteUsers($arrId, false, false, false, false, false) : true; break; case 'delNontypeUsers': $uData = $user->getCombinedUsersData(array(array('users', 'id')), "conf_users.token IN ('new') AND users.token IN ('active') AND users.token_datetime < NOW()", false, false); if (!empty($uData) && is_array($uData)) { foreach ($uData as $data) { $arrId[] = $data['id']; } } $result = !empty($arrId) ? $user->deleteUsers($arrId, false, false, false, false, false) : true; break; case 'delUnpaidUsers': $uData = $user->getCombinedUsersData(array(array('users', 'id')), "conf_users.token IN ('payment') AND users.token_datetime < NOW()", false, false); if (!empty($uData) && is_array($uData)) { foreach ($uData as $data) { $arrId[] = $data['id']; } } $result = !empty($arrId) ? $user->deleteUsers($arrId, false, false, false, false, false) : true; break; case 'delUnpaidSubscr': $result = $subscription->delSubscriptions("token IN ('payment') AND token_datetime < NOW()"); break; case 'vacDelNonverify': $result = $vacancy->delAnnounces("token IN ('new') AND token_datetime < NOW()"); break; case 'resDelNonverify': $result = $resume->delAnnounces("token IN ('new') AND token_datetime < NOW()"); break; case 'vacDelUnpaid': $result = $vacancy->delAnnounces("token IN ('payment') AND token_datetime < NOW()"); break; case 'resDelUnpaid': $result = $resume->delAnnounces("token IN ('payment') AND token_datetime < NOW()"); break; case 'vacVipResetSlo': $result = $vacancy->controlAnnounces("vip AND token IN ('active') AND vip_unset_datetime NOT IN ('0000-00-00 00:00:00') AND vip_unset_datetime < NOW()", 'vip'); break; case 'resVipResetSlo': $result = $resume->controlAnnounces("vip AND token IN ('active') AND vip_unset_datetime NOT IN ('0000-00-00 00:00:00') AND vip_unset_datetime < NOW()", 'vip'); break; case 'vacHotResetSlo': $result = $vacancy->controlAnnounces("hot AND token IN ('active') AND hot_unset_datetime NOT IN ('0000-00-00 00:00:00') AND hot_unset_datetime < NOW()", 'hot'); break; case 'resHotResetSlo': $result = $resume->controlAnnounces("hot AND token IN ('active') AND hot_unset_datetime NOT IN ('0000-00-00 00:00:00') AND hot_unset_datetime < NOW()", 'hot'); break; case 'vacActionSlo': $result = $vacancy->controlAnnounces("token IN ('active') AND token_datetime < NOW()", $type); break; case 'resActionSlo': $result = $resume->controlAnnounces("token IN ('active') AND token_datetime < NOW()", $type); break; default: $result = true; break; } if (!$result) { return false; } else { continue; } } return true; }
/** * private функция считывает данные структуры таблицы БД * * @return bool */ private function tbReadFieldList() { $strQuery = "SHOW COLUMNS FROM " . $this->tbPrefix . $this->tbPostfix; if (CONF_ENABLE_CACHING) { if ($this->tbTableStructure = caching::getCahing('caching/' . $this->tbPrefix . $this->tbPostfix . '.tsc')) { return true; } else { db::$dbTypeSelect = 'multi'; return !($this->tbTableStructure = db::dbMultiQuery($strQuery)) ? false : caching::setCaching('caching/' . $this->tbPrefix . $this->tbPostfix . '.tsc', $this->tbTableStructure); } } else { db::$dbTypeSelect = 'multi'; return !($this->tbTableStructure = db::dbMultiQuery($strQuery)) ? false : true; } }
if ($arrActions['config']) { // инициируем "Наименование страницы" отображаемое в форме $arrNamePage[] = array('name' => MENU_CONFIG, 'link' => false); // сохраняем данные, переданные из формы if (isset($_POST['save'])) { $perpage = !empty($_POST['news_perpage']) && validate::checkNaturalNumber($_POST['news_perpage']) ? validate::checkNaturalNumber($_POST['news_perpage']) : 30; $newsesLastShow = !empty($_POST['newses_last_show']) ? 1 : 0; $newsesLastShowPerPage = !empty($_POST['newses_last_show_perpage']) && validate::checkNaturalNumber($_POST['newses_last_show_perpage']) ? validate::checkNaturalNumber($_POST['newses_last_show_perpage']) : 5; $correctionTerm = isset($_POST['correctionTerm']) && validate::checkNaturalNumber($_POST['correctionTerm']) ? validate::checkNaturalNumber($_POST['correctionTerm']) : 72; $newsesComments = !empty($_POST['newses_comments']) ? 1 : 0; $newsesCommentsRegister = !empty($_POST['newses_comments_register']) ? 1 : 0; $commentsNameUnregister = !empty($_POST['name_unregister']) ? htmlspecialchars($_POST['name_unregister'], ENT_QUOTES, CONF_DEFAULT_CHARSET) : 'Guest'; $titleNewsName = !empty($_POST['titleNewsName']) ? 1 : 0; $data = "<?php\n\n" . "(!defined('SDG')) ? die ('Triple protection!') : null;\n\n" . 'define("CONF_NEWS_PERPAGE", "' . $perpage . '");' . "\n\n" . 'define("CONF_NEWSES_LAST_SHOW", "' . $newsesLastShow . '");' . "\n\n" . 'define("CONF_NEWSES_LAST_SHOW_PERPAGE", "' . $newsesLastShowPerPage . '");' . "\n\n" . 'define("CONF_NEWSES_CORRECTION_THERM", "' . $correctionTerm . '");' . "\n\n" . 'define("CONF_NEWSES_COMMENTS", ' . $newsesComments . ');' . "\n\n" . 'define("CONF_NEWSES_COMMENTS_REGISTER", ' . $newsesCommentsRegister . ');' . "\n\n" . 'define("CONF_NEWSES_COMMENTS_NAME_UNREGISTER", "' . $commentsNameUnregister . '");' . "\n\n" . 'define("CONF_NEWSES_DISPLAY_ON_TITLE_ONLY_NEWS_NAME", ' . $titleNewsName . ');' . "\n"; // чистим кеш caching::clearCache('newses.last'); // сохраняем изменения if (!tools::saveConfig('core/conf/const.config.news.php', $data, CONF_ADMIN_FILE . '?' . $qString)) { $arrErrors[] = ERROR_FILES_MISSING_FILE; } } } elseif ($arrActions['add']) { // инициируем "Наименование страницы" отображаемое в форме $arrNamePage[] = array('name' => MENU_MANAGER_NEWS_ADD, 'link' => false); if (isset($_POST['save'])) { // получаем из формы поля обязательные для заполнения $arrBindFields = $_POST['arrBindFields']; $arrBindFields['author'] = 'Administrator'; // получаем из формы поля не обязательные для заполнения $arrNoBindFields = $_POST['arrNoBindFields']; $arrNoBindFields['noComments'] = !empty($_POST['arrNoBindFields']['noComments']) ? 1 : 0;
public function getApiLastAnnounces($arrParams = false) { $returnData = false; $cacheFileName = 'caching/resume.api.last.cache'; $strWhere = "!vip AND !hot AND visibility IN ('visible','visiblehc')"; if (!empty($arrParams['limit']) && strings::ifInt($arrParams['limit'])) { $limit = $arrParams['limit']; } else { $limit = CONF_VACANCY_LAST_SHOW_PERPAGE; } if (false === ($result = caching::getCahing($cacheFileName)) || $limit > count($result)) { $result = $this->getAnnouncesByToken('active', $strWhere, array('strLimit' => '0, ' . $limit, 'calcRows' => false), array('act_datetime' => 'DESC')); empty($result) ? $result = array() : null; foreach ($result as $id => &$announce) { if ('visiblehc' === $announce['visibility']) { unset($announce['first_name'], $announce['last_name'], $announce['middle_name'], $announce['phone'], $announce['note_phone'], $announce['addition_phone_1'], $announce['note_addition_phone_1'], $announce['addition_phone_2'], $announce['note_addition_phone_2'], $announce['image'], $announce['video']); } if (empty($announce['public_email'])) { unset($announce['email']); } /** * инициализация списка разделов */ global $sections; $arrDataSections = $sections->retCategorys(); /** * инициализация списка профессий */ global $professions; $arrDataProfessions = $professions->retCategorysByIds(array($announce['id_profession'], $announce['id_profession_1'], $announce['id_profession_2'])); /** * инициализация списка регионов */ global $regions; $arrDataRegions = $regions->retCategorys(); /** * инициализация списка городов */ global $citys; $arrDataCitys = $citys->retCategorysByIds($announce['id_city']); $announce['section'] = @$arrDataSections[$announce['id_section']]['name']; $announce['profession'] = @$arrDataProfessions[$announce['id_profession']]['name']; $announce['profession_1'] = @$arrDataProfessions[$announce['id_profession_1']]['name']; $announce['profession_2'] = @$arrDataProfessions[$announce['id_profession_2']]['name']; $announce['region'] = @$arrDataRegions[$announce['id_region']]['name']; $announce['city'] = @$arrDataCitys[$announce['id_city']]['name']; unset($announce['xml_data'], $announce['id_section'], $announce['id_profession'], $announce['id_profession_1'], $announce['id_profession_2'], $announce['id_region'], $announce['id_city'], $announce['unikey'], $announce['id_user'], $announce['public_email'], $announce['birthday'], $announce['act_period'], $announce['subscription'], $announce['vip'], $announce['vip_unset_datetime'], $announce['hot'], $announce['hot_unset_datetime'], $announce['rate'], $announce['cnt_views_total'], $announce['cnt_views_temp'], $announce['cnt_views_temp_datetime'], $announce['cnt_views_last_ip'], $announce['token'], $announce['token_datetime'], $announce['visibility'], $announce['comments']); } caching::setCaching($cacheFileName, $result); } $result = array_slice($result, 0, $limit); $returnData = array('resume' => &$result); return $returnData; }
/** * protected Функция выборки логотипов для вывода на главной * * @return mixed (array | false) */ protected function getLogoToMain() { $arrFields = array(array('conf_users', 'id'), array('conf_users', 'company_name'), array('conf_users', 'company_city'), array('conf_users', 'logo')); $strWhere = "conf_users.main_logo AND conf_users.logo!='' AND conf_users.token IN ('active') AND conf_users.user_type IN ('company')"; $arrOrderBy = array('conf_users.sort_logo' => 'ASC'); if (CONF_ENABLE_CACHING) { if (false === ($result = caching::getCahing('caching/company.logo.cache'))) { $result = $this->getCombinedUsersData($arrFields, $strWhere, $arrOrderBy, false); empty($result) ? $result = array() : null; caching::setCaching('caching/company.logo.cache', $result); } } else { $result = $this->getCombinedUsersData($arrFields, $strWhere, $arrOrderBy, false); } return $result; }