/** * функция проверки авторизации админа * Берет логин и пароль админа из сесси и сверяет их с данными в БД * * @param (string) $login - новый логин (может быть false) * @param (string) $password - новый пароль (может быть false) * * @return bool (сообщение перезагружающее страницу) */ static function changeAdminPassword($login, $password) { $link = isset($_SERVER['QUERY_STRING']) && !empty($_SERVER['QUERY_STRING']) ? '?' . $_SERVER['QUERY_STRING'] : ''; if ($login && $password) { $change = "login='******', password='******'"; $arrSession = array('administrator_login' => md5($login), 'administrator_password' => md5($password)); } elseif (!$login && $password) { $change = "password='******'"; $arrSession = array('administrator_password' => md5($password)); } elseif ($login && !$password) { $change = "login='******'"; $arrSession = array('administrator_login' => md5($login)); } else { $change = false; } $strQuery = "UPDATE " . USR_PREFIX . "admin SET " . $change . " WHERE login IN (" . secure::escQuoteData($_SESSION['administrator_login']) . ") AND password IN (" . secure::escQuoteData($_SESSION['administrator_password']) . ")"; if (!empty($change) && db::dbQuery($strQuery)) { // обновляем пароль в сессии tools::updateSessionData($_SESSION, $arrSession); messages::messageChangeSaved(MESSAGE_DATA_HAS_BEEN_CHANGED, false, CONF_ADMIN_FILE . $link); } else { messages::messageChangeSaved(MESSAGE_DATA_HAS_NOT_BEEN_CHANGED, false, CONF_ADMIN_FILE . $link); } }
private function saveFile(&$noExit = false) { // данные для записи в файл $data = "<?php\n\n" . "(!defined('SDG')) ? die ('Triple protection!') : null;\n\n" . "#SYSTEM DICTIONARYS#\n" . '$arrSysDict = ' . $this->parseArrData($this->arrSysDict) . "\n" . "#END SYSTEM DICTIONARYS#\n\n" . "#ADDITIONAL DICTIONARYS#\n" . '$arrAddDict = ' . $this->parseArrData($this->arrAddDict) . "\n" . "#END ADDITIONAL DICTIONARYS#\n"; // запись файла if (file_put_contents('lang/' . $this->currLang . '/lang.dictionarys.selects.php', $data)) { if ($noExit) { return true; } else { messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=dictionary&s=selects'); } } else { if ($noExit) { return false; } else { messages::printDie(ERROR_FILE_NOT_WRITE); } } }
} // загружаем файл 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; } } else { $arrErrors = img::$arrErrors; } } else { $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 = uploads::$arrErrors; } } $smarty->assignByRef('errors', $arrErrors); $smarty->assignByRef('action', $arrActions);
} /** * Производим поиск/замену во всех шаблонах скрипта */ foreach (filesys::getChildDirs('templates/site/') as $template) { $formFileName = 'templates/site/' . $template . '/resume.form.tpl'; if (is_file($formFileName)) { file_put_contents($formFileName, str_replace($arrSearch, $arrRreplace, file_get_contents($formFileName))); } $formFileName = 'templates/site/' . $template . '/resume.preview.tpl'; if (is_file($formFileName)) { file_put_contents($formFileName, str_replace($arrSearch, $arrRreplace, file_get_contents($formFileName))); } } file_put_contents('templates/admin/adm.announces.resume.edit.tpl', str_replace($arrSearch, $arrRreplace, file_get_contents('templates/admin/adm.announces.resume.edit.tpl'))); messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=announces&s=common&action=confQuestResume'); } else { messages::printDie(ERROR_FILE_NOT_WRITE); } } $arrDescriptFields = array(); // Описание основных полей анкеты foreach (array_keys(array_merge($arrBindFields, $arrNoBindFields)) as $indexField) { $arrDescriptFields['basic'][$indexField] = @constant('ANNOUNCE_BASIC_FIELD_DESCRIPT_' . strtoupper($indexField)) or $arrDescriptFields['basic'][$indexField] = @constant('RESUME_BASIC_FIELD_DESCRIPT_' . strtoupper($indexField)); } // Описание дополнительных полей анкеты - Образование foreach (array_keys(array_merge($arrEducation['arrBindFields'], $arrEducation['arrNoBindFields'])) as $indexField) { $arrDescriptFields['education'][$indexField] = @constant('ANNOUNCE_EXT_EDUCATION_FIELD_DESCRIPT_' . strtoupper($indexField)); } // Описание дополнительных полей анкеты - Опыт работы foreach (array_keys(array_merge($arrExpire['arrBindFields'], $arrExpire['arrNoBindFields'])) as $indexField) {
} elseif ($arrActions['saveLog'] && !empty($_GET['file'])) { if (file_exists($_GET['file'])) { header('Content-type: application/octet-stream'); header('Content-Disposition: attachment; filename=' . basename($_GET['file'])); readfile($_GET['file']); exit; } else { $arrErrors[] = ERROR_FILE_NOT_EXISTS; } } else { // необходимо устанавливать действиям фолс, т.к. у них есть доп. условия $arrActions['backup'] = false; $arrActions['setup'] = false; // получаем форму обновления if (!empty($_POST['login']) && !empty($_POST['password']) && !empty($_POST['file']) && !empty($_POST['revision'])) { $resUpdate = $updates->getUpdate($_POST); if (!$resUpdate['status']) { $arrErrors[] = $resUpdate['error']; } else { // ставим сайт на тех обслуживание $data = "<?php\n\n" . "(!defined('SDG')) ? die ('Triple protection!') : null;\n\n" . 'define("CONF_SERVICE_ADMINISTRATION_MAINTENANCE", true);' . "\n"; tools::saveConfig('core/conf/const.config.service.php', $data, false); messages::messageChangeSaved(MESSAGE_UPDATE_SUCCESSFULLY_DOWNLOADED, false, CONF_ADMIN_FILE . '?m=system&s=updates&action=backup&file=' . $_POST['file']); } } $smarty->assignByRef('arrUpdates', $updates->getUpdatesInfo()); } // адресная строка $smarty->assignByRef('qString', $qString); $smarty->assignByRef('errors', $arrErrors); $smarty->assignByRef('action', $arrActions);
$smarty->assign('professions', $professions->retCategorysByIds($arrProfId)); // формируем и передаем массив необходимых городов $citys = new citys(); $smarty->assign('citys', $citys->retCategorysByIds($arrCitysId)); } $smarty->assign('return_data', $return_data); // значения, возвращаемые в форму } else { /** * Действия */ if (!empty($_POST['action'])) { // удаление if ('del' === $_POST['action'] && !empty($_POST['subscr'])) { $subscription->delSubscriptionsById(array_keys($_POST['subscr'])); messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=manager&s=subscriptions'); } } /** * массив, который возращается в форму * содержит значения по умолчанию для формы отбора */ $return_data = array('id_user' => '', 'type_subscription' => 'all', 'payment' => '', 'period' => '', 'id_section' => '', 'id_profession' => '', 'id_region' => '', 'id_city' => ''); $strWhere = "id_announce IN ('0') AND token IN ('active')"; /** * отбор записей */ $arrDif = array_diff_key($return_data, $_GET); // проверяем присутствие всех значений отбора в массиве if (!empty($_GET['do']) && 'filter' === $_GET['do'] && empty($arrDif)) { $return_data['id_user'] = (int) $_GET['id_user'] > 0 ? (int) $_GET['id_user'] : '';
$strWhere = "id_user IN (" . secure::escQuoteData($arrUser['id']) . ") AND token IN ('archived')"; $arrArticles = $articles->getArticles($strWhere, false, false, false); $smarty->assignByRef('arrArticles', $arrArticles); } elseif ($arrActions['active']) { /** ДЕЙСТВИЯ **/ if (!empty($_POST['action'])) { // удаление if ('delete' === $_POST['action'] && !empty($_SESSION['sd_' . DB_PREFIX . 'codex']['rights']['del_articles']) && !empty($_POST['articles'])) { $strWhere = "id_user IN (" . secure::escQuoteData($arrUser['id']) . ")"; !$articles->deleteArticles(array_keys($_POST['articles']), $strWhere) ? $arrErrors[] = db::$message_error : messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&do=user.articles&action=active')); } // архивация if ('archive' === $_POST['action'] && !empty($_SESSION['sd_' . DB_PREFIX . 'codex']['rights']['arc_articles']) && !empty($_POST['articles'])) { $arrData = array('token' => 'archived'); $strWhere = "id_user IN (" . secure::escQuoteData($arrUser['id']) . ")"; !$articles->updateArticles($arrData, array_keys($_POST['articles']), $strWhere) ? $arrErrors[] = db::$message_error : messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&do=user.articles&action=active')); } } // инициируем "Наименование страницы" отображаемое в заголовке формы $arrNamePage[] = array('name' => constant('MENU_ACTION_ACTIVE'), 'link' => false); $strWhere = "id_user IN (" . secure::escQuoteData($arrUser['id']) . ") AND token IN ('active')"; if ($arrArticles = $articles->getArticles($strWhere, false, false, false)) { // если есть статьи, устанавливаем признак публикации foreach ($arrArticles as $key => &$value) { $value['link'] = strtotime($value['datetime']) > time() ? false : true; $arrArticles[$key] = $value; } } $smarty->assignByRef('arrArticles', $arrArticles); } else { messages::error404();
/** * static сохранения файлов конфигурации * * @param (string) $file - полный путь к файлу, который необходимо сохранить * @param (string) $data - данные для сохранения * @param (string or false) $link - ссылка для переадлресации (в случае успешного сохранения). Если сслыка FALSE, то метод вернет результат TRUE вместо переадресации * * @return - false (значит либо не найден файл, либо у файла нет прав на запись) или перезагружает страницу */ static function saveConfig($file, &$data, $link = false) { // если файл не существует и не удалось записать данные в файл возвращем false if (!file_exists($file) && !file_put_contents($file, $data)) { return false; } elseif (!filesys::setFileChmod($file, '0666') && !unlink($file) && !file_put_contents($file, $data)) { return false; } elseif (!file_put_contents($file, $data)) { return false; } elseif (!empty($link)) { messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, $link); } else { return true; } }
} } else { $arrErrors[] = ERROR_EMPTY_FIELDS; } $smarty->assign('return_data', array('email' => $_POST['email'])); } elseif (isset($_GET['i']) && $_GET['i']) { if ($userData = $user->checkLinkToChangePassword()) { // генерируем новый пароль $password = strings::randomString(CONF_REGISTER_USER_PASSWORD); $mailer = new mailer(); // массив для замены в шаблоне $mailer->setAddReplace(array('%NEW_PASSWORD%' => $password)); if ($mailer->sendEmail(CONF_MAIL_ADMIN_EMAIL, false, false, $userData['email'], $userData['email'], CONF_SITE_NAME . MAIL_SUBJ_NEW_PASS, 'new.pass.txt')) { // если письмо успешно отправлено, обновляем пароль if ($user->updateUser(array('password' => md5($password)), "id IN (" . secure::escQuoteData($userData['id']) . ") AND password IN (" . secure::escQuoteData($userData['password']) . ")")) { messages::messageChangeSaved(MENU_NEW_PASS, MESSAGE_NEW_PASS_SUCCESS, chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&do=authorize'), 10000); } else { $arrErrors[] = db::$message_error; } } else { $arrErrors[] = ERROR_SEND_EMAIL; } } else { messages::error404(); } } $smarty->assignByRef('errors', $arrErrors); } } else { messages::error404(); }
* иницализация массива подключаемых шаблонов: по умолчанию все значения - false * для подключения шаблона, необходимо установить значение - true * шаблоны подключаются в порядке установленном в файле головного шаблона */ $arrAction = array('vacancy' => false, 'resume' => false); /** * иницализация массива токенов объявлений доступных для просмотра пользователю */ $arrTokens = array('new', 'moderate', 'correction', 'payment', 'active', 'template', 'archived'); // проверяем запрошенный шаблон и токен объявлений if (isset($_GET['action']) && isset($arrAction[$_GET['action']]) && isset($_GET['token']) && in_array($_GET['token'], $arrTokens)) { $arrAction[$_GET['action']] = true; /** * действия с объявлениями */ isset($_POST['arrAnnData']['action']) ? !${$_GET}['action']->actionAnnounces($_POST['arrAnnData'], false) ? messages::messageChangeSaved(ERROR_NOT_CHANGE_DATA, false, chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&do=user.announces&action=' . $_GET['action'] . '&token=' . $_GET['token'])) : messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&do=user.announces&action=' . $_GET['action'] . '&token=' . $_GET['token'])) : null; /** * инициализация списка Период размещения */ //$smarty->assignByRef('actperiod', $arrSysDict['ActPeriod']['values']); /** * инициализация списка Пол */ //$smarty->assignByRef('gender', $arrSysDict['Gender']['values']); /** * инициализация списка Тип размещения */ if (!empty($arrAction['resume']) && 'active' === $_GET['token']) { $arrVisibility = array('visible' => ANNOUNCE_VISIBILITY_VISIBLE, 'visiblehc' => ANNOUNCE_VISIBILITY_VISIBLEHC, 'members' => ANNOUNCE_VISIBILITY_MEMBERS, 'membershc' => ANNOUNCE_VISIBILITY_MEMBERSHC, 'hide' => ANNOUNCE_VISIBILITY_HIDE); $smarty->assignByRef('arrVisibility', $arrVisibility); }
<?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 ========================================================= Логи - SQL ********************************************************/ /** * @package * @todo */ !defined('SDG') ? die('Triple protection!') : null; // инициируем "Наименование страницы" отображаемое в форме $arrNamePage = array(array('name' => MENU_ADMIN_MAIN, 'link' => CONF_ADMIN_FILE), array('name' => MENU_LOGS, 'link' => false), array('name' => MENU_LOGS_SQL, 'link' => false)); // действия // очистка логов if (isset($_POST['clear'])) { @unlink('core/data/log/sql_error.log'); messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=logs&s=sql'); } // Получаем данные из файла $logData = @file_get_contents('core/data/log/sql_error.log') ? explode("\n\n\n", @file_get_contents('core/data/log/sql_error.log')) : false; $smarty->assign('logData', $logData);
// скрытие if ('hide' === $_POST['action'] && isset($_POST['pages'])) { if ($pages->updatePages(array('token' => 'archived'), array_keys($_POST['pages']))) { messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=manager&s=dop.pages'); } else { messages::messageChangeSaved(ERROR_NOT_SAVE_CHANGE, false, CONF_ADMIN_FILE . '?m=manager&s=dop.pages'); } } // удаление if ('del' === $_POST['action'] && isset($_POST['pages'])) { $pages->deletePages(array_keys($_POST['pages'])); messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=manager&s=dop.pages'); } // сортировка if ('sorting' === $_POST['action'] && !empty($_POST['sort'])) { foreach ($_POST['sort'] as $key => $value) { $pages->updatePages(array('sort' => $value), array($key)); } messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=manager&s=dop.pages'); } messages::messageChangeSaved(MESSAGE_WARNING_NOT_SELECT_RECORDS, false, CONF_ADMIN_FILE . '?m=manager&s=dop.pages'); } else { $arrNamePage[] = array('name' => MENU_MANAGER_DOP_PAGES, 'link' => false); /** * массив всех страниц */ $smarty->assign('arrPages', $pages->getAllPages()); } // END Вывод всех страниц $smarty->assignByRef('errors', $arrErrors); $smarty->assignByRef('action', $arrActions);
/** * public функция выполняет действия над группой регионов * * @param string $action * @param array $arrFields * * @return bool */ public function actionSections($action, $arrFields) { if ('edit' === $action || 'sort' === $action || 'del' === $action) { if ('del' === $action) { global $professions; $professions->delCategorys('parent_id IN (' . implode(',', secure::escQuoteData($arrFields)) . ')'); } !$this->actionCategorys($action, $arrFields) ? messages::messageChangeSaved(ERROR_NOT_SAVE_CHANGE, false, CONF_ADMIN_FILE . '?m=dictionary&s=sections') : messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=dictionary&s=sections'); } else { messages::messageChangeSaved(MESSAGE_WARNING_UNKNOWN_ACTION, false, CONF_ADMIN_FILE . '?m=dictionary&s=sections'); } }
/** * public функция выполняет действия над группой регионов * * @param string $action * @param array $arrFields * * @return bool */ public function actionCitys($action, $arrFields, $parent_id, $silentMode = false) { $action = (string) $action; $arrFields = (array) $arrFields; $parent_id = (int) $parent_id; $silentMode = (bool) $silentMode; if ('edit' === $action || 'setcapital' === $action || 'resetcapital' === $action || 'del' === $action) { if ('edit' === $action && isset($arrFields['capital_city'])) { $this->actionCategorys('resetcapital', array($parent_id)); $this->actionCategorys('setcapital', array($arrFields['capital_city'])); unset($arrFields['capital_city']); } 'setcapital' === $action ? $this->actionCategorys('resetcapital', array($parent_id)) : null; if (!$this->actionCategorys($action, $arrFields)) { if ($silentMode) { return false; } else { messages::messageChangeSaved(ERROR_NOT_SAVE_CHANGE, false, CONF_ADMIN_FILE . '?m=dictionary&s=regions&action=citys&pid=' . $parent_id); } } else { if ($silentMode) { return true; } else { messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=dictionary&s=regions&action=citys&pid=' . $parent_id); } } } else { if ($silentMode) { messages::messageChangeSaved(MESSAGE_WARNING_UNKNOWN_ACTION, false, CONF_ADMIN_FILE . '?m=dictionary&s=regions&action=citys&pid=' . $parent_id); } else { return false; } } }
$hand = new hand(); // ответ пользователю if (isset($_GET['result']) && !empty($_POST)) { } else { // проверяем наличие в сессии необходимых параметров и установлена ли цена в тарифной сетке для выбранной услуги if (isset($_SESSION['payment']) && isset($_SESSION['payment']['service']) && $payments->checkPriceInTariff($_SESSION['payment']['service'], $arrTariffs) && !empty($_SESSION['payment']['id'])) { // Сохраняем запрос оплаты if (isset($_POST['pay'])) { if (validate::postDataNotEmpty()) { // заполняем обязательные поля $hand->arrBindFields = array('order_id' => $_POST['order_id'], 'action' => $_SESSION['payment']['service'], 'user_id' => $_SESSION['sd_user']['data']['id'], 'record_id' => $_SESSION['payment']['id'], 'amount' => $_POST['amount'], 'currency' => HAND_CONF_CURRENCY, 'payment_type' => $_POST['payment']); // заполняем дополнительные поля $hand->additionalFields = array('description' => $payments->generatePaymentDescription($_SESSION['payment']['service']), 'payment_type_desc' => $handPaymentTypes[$_POST['payment']]); if (!$hand->recRecord()) { $arrErrors[] = ERROR_UNABLE_PERFORM_OPERATION; } else { unset($_SESSION['payment']); messages::messageChangeSaved(MESSAGE_PYMENT_SUCCESSFULLY_ADDED, false, chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&do=user.data')); } } else { $arrErrors[] = HAND_ERROR_NOT_ALL_PAYMENT_DETAILS; } } $arrData = array('order_id' => time(), 'amount' => $arrTariffs[$_SESSION['payment']['service']], 'description' => $payments->generatePaymentDescription($_SESSION['payment']['service'])); $smarty->assignByRef('arrData', $arrData); $smarty->assignByRef('handPaymentTypes', $handPaymentTypes); $smarty->assign('include_template', SD_ROOT_DIR . 'core/mods/payments/hand/templates/hand.pay.form.tpl'); } else { $arrErrors[] = ERROR_PAY_SYSTEM_NOT_DEFINE_PRICE; } }
/** * private функция рассылки почтовых сообщений * * @param string $typeAnnounce - тип объявления (должно соответствовать имени таблицы БД) * @param array $arrAnnounceData - массив данных объявления * @param bool $screenMessageOn [default = true] - завершение работы скрипта, выводом информационного сообщения * * @return bool */ private function sendEmails(&$typeAnnounce, &$arrAnnounceData, $screenMessageOn = true) { if (isset($_SESSION['referer'])) { unset($_SESSION['referer']); } $user_type = !empty($_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type']) ? 'ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&' : ''; switch ($arrAnnounceData['token']) { case 'new': /** * отправляем письмо пользователю */ $mailer = new mailer(); // дата удаления неактивированного объявления $deldate = date(terms::dateFormatFromSmarty(CONF_DATE_FORMAT, CONF_TIME_FORMAT), strtotime(terms::calcDateTimeOfTerm(constant('CONF_' . strtoupper($typeAnnounce) . '_ACTIVATE_THERM')))); $mailer->setAddReplace(array('%ANNOUNCE_TYPE%' => constant('MAIL_ANNOUNCE_TYPE_' . strtoupper($typeAnnounce)), '%ANNOUNCE_TITLE%' => $arrAnnounceData['title'], '%CODE%' => $arrAnnounceData['unikey'], '%DELDATE%' => $deldate, '%ACTIVATE_PAGE%' => CONF_SCRIPT_URL . 'index.php?' . $user_type . 'do=' . $typeAnnounce . '&action=activate', '%ACTIVATE_LINK%' => CONF_SCRIPT_URL . 'index.php?' . $user_type . 'do=' . $typeAnnounce . '&action=activate&code=' . $arrAnnounceData['unikey'])); $result = $mailer->sendEmail(CONF_MAIL_ADMIN_EMAIL, CONF_SITE_NAME, false, $arrAnnounceData['email'], $arrAnnounceData['email'], MAIL_SUBJ_ACTIVATE_ANNOUNCE . constant('MAIL_ANNOUNCE_TYPE_' . strtoupper($typeAnnounce)) . ' - ' . $arrAnnounceData['title'], 'announce.user.activate.txt'); unset($mailer); // уничтожаем объект if (!$result && !empty($screenMessageOn)) { messages::printDie(ERROR_SEND_EMAIL); } elseif (!empty($screenMessageOn)) { messages::messageChangeSaved(ANNOUNCE_ADD_ACTIVATE_TITLE, ANNOUNCE_ADD_ACTIVATE_MESSAGE, CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&do=' . $typeAnnounce . '&action=activate', 5000); } else { return $result; } case 'moderate': // массив для замены в шаблоне $arrAddReplace = array('%ANNOUNCE_TYPE%' => constant('MAIL_ANNOUNCE_TYPE_' . strtoupper($typeAnnounce)), '%ANNOUNCE_TITLE%' => $arrAnnounceData['title']); /** * отправляем письмо администратору */ $mailer = new mailer(); // передаем массив для замены в шаблоне $mailer->setAddReplace($arrAddReplace + array('%ADMIN_PANEL_LINK%' => CONF_SCRIPT_URL . CONF_ADMIN_FILE . '?m=announces&s=' . $typeAnnounce . 's&action=moderate')); $mailer->sendEmail(CONF_MAIL_ADMIN_EMAIL, CONF_SITE_NAME, false, CONF_MAIL_ADMIN_EMAIL, false, MAIL_SUBJ_NEW_ANNOUNCE . $arrAnnounceData['title'], empty($arrAnnounceData['comments']) ? 'adm.moderate.announce.txt' : 'adm.edited.announce.txt'); unset($mailer); // уничтожаем объект /** * отправляем письмо пользователю */ $mailer = new mailer(); // передаем массив для замены в шаблоне $mailer->setAddReplace($arrAddReplace); $result = $mailer->sendEmail(CONF_MAIL_ADMIN_EMAIL, CONF_SITE_NAME, false, $arrAnnounceData['email'], $arrAnnounceData['email'], MAIL_SUBJ_MODERATE_ANNOUNCE . constant('MAIL_ANNOUNCE_TYPE_' . strtoupper($typeAnnounce)) . ' - ' . $arrAnnounceData['title'], 'announce.user.moderate.txt'); unset($mailer); // уничтожаем объект if (!$result && !empty($screenMessageOn)) { messages::printDie(ERROR_SEND_EMAIL); } elseif (!empty($screenMessageOn)) { $link = !empty($arrAnnounceData['id_user']) ? CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&do=user.announces&action=' . $typeAnnounce . '&token=' . $arrAnnounceData['token'] : CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type']; messages::messageChangeSaved(ANNOUNCE_ADD_MODERATION_TITLE, ANNOUNCE_ADD_MODERATION_MESSAGE, chpu::createChpuUrl($link), 5000); } else { return $result; } case 'correction': /** * отправляем письмо пользователю */ $mailer = new mailer(); // дата удаления не исправленного объявления $deldate = date(terms::dateFormatFromSmarty(CONF_DATE_FORMAT, CONF_TIME_FORMAT), strtotime(terms::calcDateTimeOfTerm(constant('CONF_' . strtoupper($typeAnnounce) . '_CORRECTION_THERM')))); $mailer->setAddReplace(array('%ANNOUNCE_TYPE%' => constant('MAIL_ANNOUNCE_TYPE_' . strtoupper($typeAnnounce)), '%ANNOUNCE_TITLE%' => $arrAnnounceData['title'], '%DELDATE%' => $deldate, '%USER_PANEL_LINK%' => chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?do=user.announces&action=' . $typeAnnounce . '&token=' . $arrAnnounceData['token']), '%COMMENTS%' => CONF_MAIL_FORMAT_HTML ? nl2br($arrAnnounceData['comments']) : $arrAnnounceData['comments'])); $result = $mailer->sendEmail(CONF_MAIL_ADMIN_EMAIL, CONF_SITE_NAME, false, $arrAnnounceData['email'], $arrAnnounceData['email'], MAIL_SUBJ_NEW_ANNOUNCE_CORRECTION . constant('MAIL_ANNOUNCE_TYPE_' . strtoupper($typeAnnounce)) . ' - ' . $arrAnnounceData['title'], 'announce.user.correction.txt'); unset($mailer); // уничтожаем объект if (!$result && !empty($screenMessageOn)) { messages::printDie(ERROR_SEND_EMAIL); } else { return $result; } case 'payment': /** * отправляем письмо пользователю */ $mailer = new mailer(); // дата удаления неоплаченого объявления $deldate = date(terms::dateFormatFromSmarty(CONF_DATE_FORMAT, CONF_TIME_FORMAT), strtotime(terms::calcDateTimeOfTerm(constant('CONF_' . strtoupper($typeAnnounce) . '_PAYMENT_THERM')))); $mailer->setAddReplace(array('%ANNOUNCE_TYPE%' => constant('MAIL_ANNOUNCE_TYPE_' . strtoupper($typeAnnounce)), '%ANNOUNCE_TITLE%' => $arrAnnounceData['title'], '%CODE%' => $arrAnnounceData['unikey'], '%DELDATE%' => $deldate, '%PAYMENT_LINK%' => CONF_SCRIPT_URL . 'index.php?' . $user_type . 'do=' . $typeAnnounce . '&action=payment&id=' . $arrAnnounceData['id'])); $result = $mailer->sendEmail(CONF_MAIL_ADMIN_EMAIL, CONF_SITE_NAME, false, $arrAnnounceData['email'], $arrAnnounceData['email'], MAIL_SUBJ_NEW_ANNOUNCE_PAYMENT . constant('MAIL_ANNOUNCE_TYPE_' . strtoupper($typeAnnounce)) . ' - ' . $arrAnnounceData['title'], 'announce.user.payment.txt'); unset($mailer); // уничтожаем объект if (!$result && !empty($screenMessageOn)) { messages::printDie(ERROR_SEND_EMAIL); } elseif (!empty($screenMessageOn)) { $_SESSION['payment'] = array('service' => 'add_' . $typeAnnounce, 'announce_type' => $typeAnnounce, 'id' => $arrAnnounceData['id'], 'tId' => $arrAnnounceData['tId'], 'announce_title' => $arrAnnounceData['title']); messages::messageChangeSaved(ANNOUNCE_ADD_PAYMENT_TITLE, ANNOUNCE_ADD_PAYMENT_MESSAGE, chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&do=payments'), 5000); } else { return $result; } case 'active': // транслитерация ЧПУ chpu::chpuTranslit($arrAnnounceData); if (CONF_ANNOUNCE_ADD_SUCCESS_ADMIN_INFORM) { $mailer = new mailer(); // массив для замены в шаблоне $mailer->setAddReplace(array('%ANNOUNCE_TYPE%' => constant('MAIL_ANNOUNCE_TYPE_' . strtoupper($typeAnnounce)), '%ANNOUNCE_TITLE%' => $arrAnnounceData['title'], '%ANNOUNCE_LINK%' => chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?do=' . $typeAnnounce . '&action=view&id=' . $arrAnnounceData['tId']), '%ADMIN_PANEL_LINK%' => CONF_SCRIPT_URL . CONF_ADMIN_FILE . '?m=announces&s=' . $typeAnnounce . 's')); // отправляем письмо администратору $mailer->sendEmail(CONF_MAIL_ADMIN_EMAIL, CONF_SITE_NAME, false, CONF_MAIL_ADMIN_EMAIL, false, MAIL_SUBJ_NEW_ANNOUNCE . constant('MAIL_ANNOUNCE_TYPE_' . strtoupper($typeAnnounce)) . ' - ' . $arrAnnounceData['title'], 'adm.add.announce.txt'); unset($mailer); // уничтожаем объект } if (CONF_ANNOUNCE_ADD_SUCCESS_USER_INFORM) { $mailer = new mailer(); $mailer->setAddReplace(array('%ANNOUNCE_TYPE%' => constant('MAIL_ANNOUNCE_TYPE_' . strtoupper($typeAnnounce)), '%ANNOUNCE_TITLE%' => $arrAnnounceData['title'], '%ANNOUNCE_LINK%' => chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?do=' . $typeAnnounce . '&action=view&id=' . $arrAnnounceData['tId']), '%USER_PANEL_LINK%' => chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?do=user.announces&action=' . $typeAnnounce . '&token=' . $arrAnnounceData['token']))); // отправляем письмо пользователю $result = $mailer->sendEmail(CONF_MAIL_ADMIN_EMAIL, CONF_SITE_NAME, false, $arrAnnounceData['email'], $arrAnnounceData['email'], MAIL_SUBJ_NEW_ANNOUNCE . constant('MAIL_ANNOUNCE_TYPE_' . strtoupper($typeAnnounce)) . ' - ' . $arrAnnounceData['title'], 'announce.user.added.txt'); unset($mailer); // уничтожаем объект if (!$result && !empty($screenMessageOn)) { messages::printDie(ERROR_SEND_EMAIL); } } if (!empty($screenMessageOn)) { messages::messageChangeSaved(ANNOUNCE_ADD_SUCCESS_TITLE, ANNOUNCE_ADD_SUCCESS_MESSAGE, chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&do=' . $typeAnnounce . '&action=view&id=' . $arrAnnounceData['tId']), 5000); } else { return true; } case 'deleted': case 'archived': /** * отправляем письмо пользователю */ $mailer = new mailer(); $mailer->setAddReplace(array('%ANNOUNCE_TYPE%' => constant('MAIL_ANNOUNCE_TYPE_' . strtoupper($typeAnnounce)), '%ANNOUNCE_TITLE%' => $arrAnnounceData['title'], '%COMMENTS%' => $arrAnnounceData['comments'])); $result = $mailer->sendEmail(CONF_MAIL_ADMIN_EMAIL, CONF_SITE_NAME, false, $arrAnnounceData['email'], $arrAnnounceData['email'], MAIL_SUBJ_NEW_ANNOUNCE_DELETED . constant('MAIL_ANNOUNCE_TYPE_' . strtoupper($typeAnnounce)) . ' - ' . $arrAnnounceData['title'], 'announce.user.deleted.txt'); unset($mailer); // уничтожаем объект if (!$result && !empty($screenMessageOn)) { messages::printDie(ERROR_SEND_EMAIL); } else { return $result; } case 'vip': case 'hot': /** * отправляем письмо пользователю */ $mailer = new mailer(); $mailer->setAddReplace(array('%ANNOUNCE_TYPE%' => constant('MAIL_ANNOUNCE_TYPE_' . strtoupper($typeAnnounce)), '%ANNOUNCE_TITLE%' => $arrAnnounceData['title'], '%STATUS%' => strtoupper($arrAnnounceData['token']))); $result = $mailer->sendEmail(CONF_MAIL_ADMIN_EMAIL, CONF_SITE_NAME, false, $arrAnnounceData['email'], $arrAnnounceData['email'], MAIL_SUBJ_NEW_ANNOUNCE_DELETED . constant('MAIL_ANNOUNCE_TYPE_' . strtoupper($typeAnnounce)) . ' - ' . $arrAnnounceData['title'], 'announce.user.' . $arrAnnounceData['token'] . '.reset.txt'); unset($mailer); // уничтожаем объект if (!$result && !empty($screenMessageOn)) { messages::printDie(ERROR_SEND_EMAIL); } else { return $result; } default: return false; } }
/** * Формируем страницы и передаем полученные данные в шаблон */ $offset = isset($_GET['offset']) ? (int) abs($_GET['offset']) : 0; //смещение, всегда 0 (затем берется из $_GET) $arrLimit = array('strLimit' => $offset . ',' . CONF_ANNOUNCE_PERPAGE_ADMIN_PANEL, 'calcRows' => true); $smarty->assign('return_data', $vacancy->getAnnouncesByToken($_GET['action'], false, $arrLimit, array($order => $by))); $allRecords = $vacancy->cntAnnounces(); // получаем общее количество объявлений $smarty->assignByRef('allRecords', $allRecords); $smarty->assign('strPages', strings::generatePage($allRecords, $offset, CONF_ANNOUNCE_PERPAGE_ADMIN_PANEL, CONF_ADMIN_FILE . '?m=announces&s=vacancys&action=' . $_GET['action'] . $strOrderBy . '&', true)); } else { /** * действия с объявлениями */ isset($_POST['arrVacData']['action']) ? !$vacancy->actionAnnounces($_POST['arrVacData']) ? messages::messageChangeSaved(ERROR_NOT_SAVE_CHANGE, false, CONF_ADMIN_FILE . '?m=announces&s=vacancys') : messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=announces&s=vacancys') : null; // инициируем "Наименование страницы" отображаемое в форме $arrNamePage[] = array('name' => MENU_ANNOUNCES_VACANCYS, 'link' => false); /** * передаем данные в шаблон */ $smarty->assign('professions', $professions->retCategorys()); $smarty->assign('citys', $citys->retCategorys()); /** * Проверяем фильтр */ $strWhere = isset($_GET['filter']) && ('company_name' === $_GET['filter'] || 'email' === $_GET['filter'] || 'user_type' === $_GET['filter'] || 'id_region' === $_GET['filter'] || 'id_city' === $_GET['filter'] || 'id_section' === $_GET['filter'] || 'id_profession' === $_GET['filter']) && isset($_GET['in']) && !empty($_GET['in']) ? $_GET['filter'] . " IN (" . secure::escQuoteData($_GET['in']) . ")" : false; /** * Проверяем сортировку */ $arrOrderBy = array();
$payments->sendAdminEmail($logData, 'FAIL'); header("HTTP/1.0 404 Not Found"); exit; } } else { // если неверные параметры платежа // логируем ответ в файл logs::logPaymentData($_POST, 'WRONG PARAMS', 'intellectmoney'); header("HTTP/1.0 404 Not Found"); die; } } elseif (isset($_GET['success'])) { if (!empty($_SESSION['payment']['service'])) { $payments->succesAnswer($_SESSION['payment']['service']); } else { messages::messageChangeSaved(MESSAGE_PYMENT_WAS_SUCCESS, false, 'index.php', 5000); } } elseif (isset($_GET['fail'])) { $smarty->assign('include_template', SD_ROOT_DIR . 'core/mods/payments/intellectmoney/templates/intellectmoney.fail.tpl'); // оплата не прошла } elseif (isset($_GET['back'])) { $smarty->assign('include_template', SD_ROOT_DIR . 'core/mods/payments/intellectmoney/templates/intellectmoney.back.tpl'); } else { // проверяем наличие в сессии необходимых параметров и установлена ли цена в тарифной сетке для выбранной услуги if (isset($_SESSION['payment']) && isset($_SESSION['payment']['service']) && $payments->checkPriceInTariff($_SESSION['payment']['service'], $arrTariffs)) { $imData = array('amount' => $arrTariffs[$_SESSION['payment']['service']], 'order_id' => time(), 'description' => $payments->generatePaymentDescription($_SESSION['payment']['service']), 'service' => $_SESSION['payment']['service'] . '::' . $_SESSION['payment']['id']); $smarty->assignByRef('imData', $imData); $smarty->assign('include_template', SD_ROOT_DIR . 'core/mods/payments/intellectmoney/templates/intellectmoney.pay.form.tpl'); } else { $arrErrors[] = ERROR_PAY_SYSTEM_NOT_DEFINE_PRICE; }
break; case 'edit': $arrActSelects[$_GET['action']] = true; $arrNamePage[] = array('name' => MENU_ACTION_EDIT, 'link' => false); if (isset($_POST['save_dict'])) { !isset($_POST['editDict']) || !is_array($arrEditDict = $_POST['editDict']) || empty($arrEditDict) || !validate::arrDataNotEmpty($arrEditDict) || !isset($arrEditDict['value']) || !validate::arrDataNotEmpty($arrEditDict['value']) || !isset($arrEditDict['type']) || 'assoc' !== $arrEditDict['type'] && 'index' !== $arrEditDict['type'] || 'assoc' === $arrEditDict['type'] && !isset($arrEditDict['index']) ? null : $selects->editDict($arrEditDict); } empty($_GET['type']) || empty($_GET['alias']) || !($editDict = $selects->retDictByAlias($_GET['type'], $_GET['alias'])) ? messages::messageChangeSaved(MESSAGE_WARNING_UNKNOWN_ACTION, false, CONF_ADMIN_FILE . '?m=dictionary&s=selects') : null; $arrNamePage[] = array('name' => $editDict['discription'], 'link' => false); $smarty->assignByRef('return_data', $editDict); break; case 'del': isset($_POST['alias']) ? $selects->delDict($_POST['alias']) : messages::messageChangeSaved(MESSAGE_WARNING_UNKNOWN_ACTION, false, CONF_ADMIN_FILE . '?m=dictionary&s=selects'); break; default: messages::messageChangeSaved(MESSAGE_WARNING_UNKNOWN_ACTION, false, CONF_ADMIN_FILE . '?m=dictionary&s=selects'); } } else { // инициируем "Наименование страницы" отображаемое в форме $arrNamePage = array(array('name' => MENU_ADMIN_MAIN, 'link' => CONF_ADMIN_FILE), array('name' => MENU_DICTIONARY_SELECTS, 'link' => false)); // получаем список доступных дирректорий шаблонов $langs = $selects->retLangs(); $smarty->assignByRef('langs', $langs); // список доступных локализаций $smarty->assign('return_data', array('sysDict' => $selects->retSysDict(), 'addDict' => $selects->retAddDict())); // массив дополнительных словарей } $smarty->assign('currLang', $selects->retCurrLang()); // текущая локализация $smarty->assignByRef('errors', $arrErrors); $smarty->assignByRef('action', $arrActSelects);
/** * protected функция выполняет действия над группой строк в таблице БД * * @param string $action * @param array $arrFields * * @return bool */ protected function actionCategorys($action, $arrFields, $silentMode = false) { switch ($action) { case 'edit': foreach ($arrFields as $key => $value) { $arrData = isset($value['arrNoBindFields']) ? $value['arrBindFields'] + $value['arrNoBindFields'] : $value['arrBindFields']; $result = $this->editEntrys(secure::escQuoteData($arrData), "id IN (" . secure::escQuoteData($key) . ")"); } break; case 'sort': foreach ($arrFields as $key => $value) { $arrSort[$value][] = $key; } foreach ($arrSort as $key => $value) { $result = $this->editEntrys(array('sort' => "'{$key}'"), "id IN (" . implode(',', secure::escQuoteData($value)) . ")"); } break; case 'del': $table = $this->retTableName(); $strFields = implode(',', secure::escQuoteData($arrFields)); $vacancy = new vacancy(); $result = $vacancy->delAnnounces('id_' . $table . ' IN (' . $strFields . ')'); $resume = new resume(); $result = $resume->delAnnounces('id_' . $table . ' IN (' . $strFields . ')'); $subscription = new subscription(); $strWhere = 'profession' !== $table ? 'id_' . $table . ' IN (' . $strFields . ')' : 'id_' . $table . ' IN (' . $strFields . ') OR id_' . $table . '_1 IN (' . $strFields . ') OR id_' . $table . '_2 IN (' . $strFields . ')'; $result = $subscription->delSubscriptions($strWhere); $result = $this->delCategorys('id IN (' . $strFields . ')'); break; case 'setcapital': $result = $this->editEntrys(array('capital' => "'on'"), "id IN (" . implode(',', secure::escQuoteData($arrFields)) . ") AND capital IN ('0')"); break; case 'resetcapital': $result = $this->editEntrys(array('capital' => "'0'"), "parent_id IN (" . implode(',', secure::escQuoteData($arrFields)) . ") AND capital IN ('on')"); break; case 'setRegionMajor': $result = $this->editEntrys(array('major' => "'on'"), "id IN (" . implode(',', secure::escQuoteData($arrFields)) . ") AND major IN ('0')"); break; case 'resetRegionMajor': $result = $this->editEntrys(array('major' => "'0'"), "id IN (" . implode(',', secure::escQuoteData($arrFields)) . ") AND major IN ('on')"); break; case 'setAddCityAllowed': $result = $this->editEntrys(array('add_city_allowed' => "'on'"), "id IN (" . implode(',', secure::escQuoteData($arrFields)) . ") AND add_city_allowed IN ('0')"); break; case 'resetAddCityAllowed': $result = $this->editEntrys(array('add_city_allowed' => "'0'"), "id IN (" . implode(',', secure::escQuoteData($arrFields)) . ") AND add_city_allowed IN ('on')"); break; default: if ($silentMode) { $result = false; } else { messages::messageChangeSaved(MESSAGE_WARNING_UNKNOWN_ACTION, false, CONF_ADMIN_FILE); } } return $result; }
$arrNamePage[] = array('name' => MENU_LANGUAGE_MANAGER, 'link' => false); include_once 'core/mods/payments/' . $_GET['id'] . '/admin.php'; $smarty->assign('ltTemplate', 'adm.mods.payments.language.manager.tpl'); $smarty->assign('defLocalizConst', localiz::getLocalizConst('russian', false, $langDir)); $smarty->assign('currLocalizConst', localiz::getLocalizConst($currLang, false, $langDir)); } else { // инициируем "Наименование страницы" отображаемое в форме $arrNamePage[] = array('name' => MENU_MODS_PAYMENTS, 'link' => false); /** * Установка, включение, отключение и удаление модулей */ if (!empty($_POST['action']) && !empty($_POST['payments'])) { if ('install' === $_POST['action']) { $payments->installMods(array_keys($_POST['payments'])); messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=mods&s=payments'); } elseif ('del' === $_POST['action']) { $payments->deleteMods(array_keys($_POST['payments'])); messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=mods&s=payments'); } elseif ('enable' === $_POST['action']) { $payments->enableMods(array_keys($_POST['payments'])); messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=mods&s=payments'); } elseif ('disable' === $_POST['action']) { $payments->enableMods(array_keys($_POST['payments']), false); messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=mods&s=payments'); } } $smarty->assign('mods', $payments->generateModsList()); } $smarty->assignByRef('modMenu', $modMenu); $smarty->assignByRef('errors', $arrErrors); $smarty->assignByRef('action', $arrActions);
/** * public функция выполняет действия над группой регионов * * @param string $action * @param array $arrFields * * @return bool */ public function actionRegions($action, $arrFields, $silentMode = false) { if ('edit' === $action || 'sort' === $action || 'del' === $action || 'setRegionMajor' === $action || 'resetRegionMajor' === $action || 'setAddCityAllowed' === $action || 'resetAddCityAllowed' === $action) { if ('del' === $action) { global $citys; $citys->delCategorys('parent_id IN (' . implode(',', secure::escQuoteData($arrFields)) . ')'); } if (!$this->actionCategorys($action, $arrFields)) { if ($silentMode) { return false; } else { messages::messageChangeSaved(ERROR_NOT_SAVE_CHANGE, false, CONF_ADMIN_FILE . '?m=dictionary&s=regions'); } } else { if ($silentMode) { return true; } else { messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=dictionary&s=regions'); } } } else { if ($silentMode) { return false; } else { messages::messageChangeSaved(MESSAGE_WARNING_UNKNOWN_ACTION, false, CONF_ADMIN_FILE . '?m=dictionary&s=regions'); } } }
} $group = new group(); $smarty->assign('user_types', $group->arrTypes); $smarty->assign('user_groups', $group->getAllGroups("token IN ('active')", false, array('id'))); $arrActions['filter'] = true; } } else { // инициируем "Наименование страницы" отображаемое в форме $arrNamePage[] = array('name' => MENU_MANAGER_USERS, 'link' => false); /** * удаление пользователей */ if (isset($_POST['action'])) { if ('del' === $_POST['action'] && isset($_POST['users'])) { $user->deleteUsers(array_keys($_POST['users']), true, true, true, true, true); messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=users&s=manager'); } } /** * ФОРМИРУЕМ СТРАНИЦЫ И ПЕРЕДАЕМ В ШАБЛОН НЕОБХОДИМЫЕ ДАНЫЕ */ //смещение, всегда 0 (затем берется из $_GET) $offset = isset($_GET['offset']) ? (int) abs($_GET['offset']) : 0; //текущий обработанный URL $path = CONF_ADMIN_FILE . '?m=users&s=manager&order=' . $order . '&by=' . $by . '&'; //$fields = array(USR_PREFIX . 'users' => array('id', 'email', 'reg_datetime'), DB_PREFIX . 'conf_users' => array('user_type', 'user_group')); // получаем данные пользователя $usersData = $user->getCombinedUsersData(false, false, array($order => $by), $offset . ',' . CONF_USERS_STRINGS_PERPAGE_ADMIN_PANEL); // получаем общее количество записей $allRecords = $user->cntUsers(); $smarty->assignByRef('order', $arrOrd);
$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_BACKUPS_PATH_TO_FILES", "' . filesys::setPath($_POST['path']) . '");' . "\n"; if (!tools::saveConfig('core/conf/const.config.backups.php', $data, CONF_ADMIN_FILE . '?m=system&s=backups&action=config')) { $arrErrors[] = ERROR_FILES_MISSING_FILE; } } */ } else { /** * удаление файлов */ if (isset($_POST['action'])) { if ('del' === $_POST['action'] && !empty($_POST['files'])) { foreach ($_POST['files'] as $key => $value) { unlink($key); } messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=system&s=backups'); } } $arrFiles = backup::getBackupFiles(); $smarty->assignByRef('arrFiles', $arrFiles); } $smarty->assignByRef('errors', $arrErrors); $smarty->assignByRef('action', $arrActions);
!$securimage->check($_POST['keystring']) ? $arrErrors[] = ERROR_CAPTCHA : null; } } else { $arrErrors[] = ERROR_EMPTY_FIELDS; } /////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////// if (!$arrErrors) { $mailer = new mailer(); // массив для замены в шаблоне CONF_MAIL_FORMAT_HTML ? $message = nl2br($_POST['message']) : ($message =& $_POST['message']); $mailer->setAddReplace(array('%FEEDBACK%' => &$message)); // проверяем, если есть дополнительный словарь тем, то используем его $toAddress = isset($arrAddDict['FeedbackSubject']) && ($address = array_search($_POST['subject'], $arrAddDict['FeedbackSubject']['values'])) ? $address : CONF_MAIL_ADMIN_EMAIL; // пытамеся отправить сообщение if (!$mailer->sendEmail($_POST['email'], $_POST['email'], $_POST['email'], $toAddress, $toAddress, $_POST['subject'], 'feedback.txt')) { $arrErrors[] = ERROR_SEND_EMAIL; } else { messages::messageChangeSaved(MESSAGE_WAS_SEND, false, chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&do=feedback')); } } $return_data['subject'] = !empty($_POST['subject']) ? $_POST['subject'] : ''; $return_data['email'] = !empty($_POST['email']) ? $_POST['email'] : ''; $return_data['message'] = !empty($_POST['message']) ? $_POST['message'] : ''; } // проверяем, если есть дополнительный словарь тем, то бере темы из него $feedBackSubject = isset($arrAddDict['FeedbackSubject']) ? $arrAddDict['FeedbackSubject']['values'] : $arrSysDict['FeedbackSubject']['values']; $smarty->assign('sid', md5(time())); $smarty->assignByRef('return_data', $return_data); $smarty->assignByRef('subject', $feedBackSubject); $smarty->assignByRef('errors', $arrErrors);
@unlink('uploads/images/logo/thumbs/thumb_' . $arrUser['logo']); } } } else { $arrErrors[] = ERROR_FILE_EXISTS; } } else { $logo = $arrUser['logo']; } if (!$arrErrors) { $arrConfData = array('company_name' => $_POST['company_name'], 'company_city' => $_POST['company_city'], 'company_url' => $_POST['company_url'], 'company_description' => CONF_USE_VISUAL_EDITOR && CONF_COMPANIES_USE_VISUAL_EDITOR ? $_POST['company_description'] : htmlentities($_POST['company_description'], ENT_QUOTES, CONF_DEFAULT_CHARSET), 'logo' => $logo); if (!$user->updateUserData(false, $arrConfData)) { $arrErrors[] = db::$message_error ? db::$message_error : ERROR_MISMATCH_FIELDS; } else { // если удалось обновить данные, messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&do=user.data&action=edit&anc=1')); } } } $arrAction['edit'] = true; $arrNamePage = array(array('name' => MENU_USER_DATA, 'link' => chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&do=user.data')), array('name' => MENU_EDIT_USER_DATA, 'link' => false)); } } $smarty->assignByRef('arrUser', $arrUser); $smarty->assignByRef('action', $arrAction); $smarty->assignByRef('errors', $arrErrors); $smarty->assign('anc', isset($_GET['anc']) ? $_GET['anc'] : 0); // передаем массив селекта "Пол" unset($arrSysDict['Gender']['values']['none']); // вырезаем ненужное значение //$smarty -> assignByRef('gender', $arrSysDict['Gender']['values']);
$strPages = strings::generatePage($allRecords, $offset, !empty($records) ? $records : $allRecords, $path, true); // формируем странциы $smarty->assignByRef('arrComments', $arrComments); $smarty->assignByRef('allRecords', $allRecords); $smarty->assignByRef('strPages', $strPages); } else { // инициируем "Наименование страницы" отображаемое в форме $arrNamePage[] = array('name' => MENU_MANAGER_ARTICLES, 'link' => false); /** * отображение, скрытие, удаление статей */ if (isset($_POST['action'])) { if ('delete' === $_POST['action'] && !empty($_POST['articles'])) { !$articles->deleteArticles(array_keys($_POST['articles'])) ? $arrErrors[] = db::$message_error : messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?' . $qString); } elseif ('archived' === $_POST['action'] && !empty($_POST['articles'])) { !$articles->updateArticles(array('token' => 'archived'), array_keys($_POST['articles'])) ? $arrErrors[] = db::$message_error : messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?' . $qString); } } // END отображение, скрытие, удаление новостей /** строка запроса по умолчанию **/ $strWhere = "token IN ('active')"; /** текущий обработанный URL **/ $path = CONF_ADMIN_FILE . '?m=manager&s=articles&'; /** * отбор записей */ if (!empty($_GET['do']) && 'filter' === $_GET['do']) { $retFields = array('id' => !empty($_GET['id']) ? $_GET['id'] : false, 'id_user' => !empty($_GET['id_user']) ? $_GET['id_user'] : false, 'author' => !empty($_GET['author']) ? $_GET['author'] : false, 'title' => !empty($_GET['title']) ? $_GET['title'] : false, 'id_section' => !empty($_GET['id_section']) && strings::ifInt($_GET['id_section']) ? (int) abs($_GET['id_section']) : false, 'sDate' => !empty($_GET['sDate']) ? $_GET['sDate'] : false, 'eDate' => !empty($_GET['eDate']) ? $_GET['eDate'] : false, 'records' => !empty($_GET['records']) && strings::ifInt($_GET['records']) ? (int) abs($_GET['records']) : 30); /////////////////////////////////////////////////////////////// // Проверка данных, полученных из формы и формирование запроса ///////////////////////////////////////////////////////////////
$new_password = md5($_POST['new_password']); if (md5($_POST['password']) !== $_SESSION['sd_user']['data']['password']) { $arrErrors[] = ERROR_PASSWORD; } if (strlen($_POST['new_password']) < CONF_REGISTER_USER_PASSWORD) { $arrErrors[] = ERROR_PASSWORD_SHORT; } if (md5($_POST['password']) === md5($_POST['new_password'])) { $arrErrors[] = ERROR_PASSWORD_NOT_NEW_PASSWORD; } if ($_POST['new_password'] !== $_POST['confirm_password']) { $arrErrors[] = ERROR_PASSWORD_NOT_CONFIRM_PASSWORD; } } else { $arrErrors[] = ERROR_EMPTY_FIELDS; } if (!$arrErrors) { $user->updateUser(array('password' => md5($_POST['new_password'])), "id IN (" . secure::escQuoteData($_SESSION['sd_user']['data']['id']) . ")"); // обновляем пароль в сессии tools::updateSessionData($_SESSION['sd_user']['data'], array('password' => md5($_POST['new_password']))); messages::messageChangeSaved(MESSAGE_PASSWORD_HAS_BEEEN_CHANGED, false, chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&do=user.data')); } else { $smarty->assignByRef('errors', $arrErrors); } } } else { messages::error404(); } } else { messages::error404(); }
/** * public функция выполняет действия над группой регионов * * @param string $action * @param array $arrFields * * @return bool */ public function actionProfessions($action, $arrFields, $parent_id) { if ('edit' === $action || 'sort' === $action || 'del' === $action) { !$this->actionCategorys($action, $arrFields) ? messages::messageChangeSaved(ERROR_NOT_SAVE_CHANGE, false, CONF_ADMIN_FILE . '?m=dictionary&s=sections&action=professions&pid=' . $parent_id) : messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=dictionary&s=sections&action=professions&pid=' . $parent_id); } else { messages::messageChangeSaved(MESSAGE_WARNING_UNKNOWN_ACTION, false, CONF_ADMIN_FILE . '?m=dictionary&s=sections&action=professions&pid=' . $parent_id); } }
* и изменится только после того, как пользователь выберет необходимый тип пользователя * это нормально, т.к. из формы выбора типа он никуда не может переходить */ die('<script type="text/javascript">window.location="' . chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=competitor&do=select.type') . '";</script>'); } } elseif ('moderate' === $_SESSION['sd_user'][DB_PREFIX . 'conf']['token']) { $user_type = 'competitor' === $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] ? 'competitor' : 'employer'; // очищаем куки и сессию пользователя $user->clearUserSessionAndCookie(); messages::messageChangeSaved(MESSAGE_ACCOUNT_MODERATE, MESSAGE_ACCOUNT_MODERATE_TEXT, chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $user_type), 10000); } elseif ('payment' === $_SESSION['sd_user'][DB_PREFIX . 'conf']['token']) { $user_type = 'employer' === $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] ? 'employer' : 'competitor'; $_SESSION['payment'] = array('service' => 'register_' . strtolower($_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type']), 'id' => $_SESSION['sd_user']['data']['id'], 'user_type' => $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type']); // очищаем куки и сессию пользователя $user->clearUserSessionAndCookie(); messages::messageChangeSaved(MESSAGE_REGISTER_SUCCESS_DO_PAYMENT, MESSAGE_REGISTER_SUCCESS_DO_PAYMENT_TEXT, chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $user_type . '&do=payments'), 10000); } else { $smarty->assignByRef('user_email', $_SESSION['sd_user']['data']['email']); $smarty->assign('user_type', $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type']); // передаем в Smarty права пользователя $smarty->assign('codex', $_SESSION['sd_' . DB_PREFIX . 'codex']); // значения, возвращаемые в форму } } else { // если пользователь не вошел, проверяем его Кукисы и очищаем их, либо делаем автоматический вход if (!isset($_SESSION['sd_user']) && isset($_COOKIE['remid']) && $_COOKIE['remid'] && isset($_COOKIE['remh']) && $_COOKIE['remh']) { // проверяем, есть ли в кукисах наши параметры $arrData = $user->getUser("id IN (" . secure::escQuoteData((int) $_COOKIE['remid']) . ")"); // если пользователь с таким id найден, сверяем хеш if (!empty($arrData)) { // выполняем вход