$strRecords = '&records=' . $records; } } $smarty->assignByRef('records', $records); $smarty->assignByRef('arrRecords', $arrRecords); $smarty->assignByRef('strRecords', $strRecords); $strFilter = !empty($strWhere) ? '&filter=' . $_GET['filter'] . '&in=' . $_GET['in'] : ''; $smarty->assignByRef('strFilter', $strFilter); $arrFilter = !empty($strWhere) ? array('filter' => $_GET['filter'], 'in' => $_GET['in']) : false; $smarty->assignByRef('arrFilter', $arrFilter); $strSort = !empty($arrOrderBy) ? '&order=' . $_GET['order'] . '&by=' . $_GET['by'] : ''; $smarty->assignByRef('strSort', $strSort); $arrSort = !empty($arrOrderBy) ? array('order' => $_GET['order'], 'by' => $_GET['by']) : false; $smarty->assignByRef('arrSort', $arrSort); /** смещение, всегда 0 (затем берется из $_GET) **/ $offset = !empty($_GET['offset']) && validate::checkNaturalNumber($_GET['offset']) ? validate::checkNaturalNumber($_GET['offset']) : 0; $strLimit = !empty($records) ? $offset . ',' . $records : false; $path = CONF_ADMIN_FILE . '?m=manager&s=articles&action=comments' . $strFilter . $strSort . $strRecords . '&'; //текущий обработанный URL $arrComments = $artComments->getFullCommentsData(false, $strWhere, $arrOrderBy, $strLimit); $allRecords = $artComments->cntRecords(); // получаем общее количество $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); /**
/** * Функция получает ID (уникальный идентификатор записи в таблице БД) из строки ЧПУ с транслитерацией * Сохраняет идентификатор транслитерации ЧПУ в глобал $_GET['tId'] * * @param (string) $tId - строка ЧПУ с транслитерацией * * @return (int) id */ static function getId_out_tId($tId) { // проверяем, включены ли ЧПУ с транслитерацией if (CONF_ENABLE_CHPU && CONF_ENABLE_TRANSLITERATION_CHPU) { // сохраняем значение $tId в глобал $_GET - для проверок корректности URL $_GET['tId'] = $tId; // получаем ID $tId = CONF_TRANSLITERATION_CHPU_ID_PUT_TO_END ? array_pop(explode('-', $tId)) : reset(explode('-', $tId)); $tId = validate::checkNaturalNumber($tId); } return (int) $tId; }
require_once 'core/init.php'; /** * Защита от доступа из вне скрипта */ !secure::checkServerCalls() ? die('Triple protection!') : null; /** * Передаем в Smarty системные словари (для доступа из всех шаблонов) */ $smarty->assignByRef('arrSysDict', $arrSysDict); /** * Передаем в Smarty дополнительные словари (для доступа из всех шаблонов) */ $smarty->assignByRef('arrAddDict', $arrAddDict); if (isset($_GET['id_s']) && validate::checkNaturalNumber($_GET['id_s']) && ($result = ajax::getProfessions($_GET['id_s']))) { echo $result; } elseif (isset($_GET['id_r']) && validate::checkNaturalNumber($_GET['id_r'])) { $response = array('success' => false, 'error' => ERROR_UNABLE_PERFORM_OPERATION); $regions = new regions(); $region = $regions->retCategorysByIds($_GET['id_r']); if (!empty($region[$_GET['id_r']]) && is_array($region[$_GET['id_r']])) { if ('on' !== $region[$_GET['id_r']]['major']) { $result = ajax::getCitys($_GET['id_r']); if (!empty($result)) { if (!empty($region[$_GET['id_r']]['add_city_allowed'])) { $result[0] = array('id' => '0', 'name' => FORM_INPUT_OTHER); } $response = array('success' => true, 'data' => &$result); } else { $response = array('success' => false, 'data' => false); } } else {
$smarty->assign('return_subcategory_data', $citys->retCategorysByParentIds($id)); // инициируем "Наименование страницы" отображаемое в заголовке формы $arrNamePage = array(array('name' => MENU_ANNOUNCES_NAVIGATOR, 'link' => false), array('name' => FORM_RESUMES_HEAD, 'link' => chpu::createChpuUrl($path . '&action=regions')), array('name' => $arrDataRegions[$id]['name'], 'link' => false)); if (!empty($arrDataRegions[$id]['title'])) { $smarty->assignByRef('page_title', $arrDataRegions[$id]['title']); } if (!empty($arrDataRegions[$id]['meta_keywords'])) { $smarty->assignByRef('meta_keywords', $arrDataRegions[$id]['meta_keywords']); } if (!empty($arrDataRegions[$id]['meta_description'])) { $smarty->assignByRef('meta_description', $arrDataRegions[$id]['meta_description']); } } } elseif (!empty($arrActPage['citys'])) { // если передан id if (!empty($_GET['id']) && validate::checkNaturalNumber($_GET['id']) && !empty($arrDataCitys[$_GET['id']]) && is_array($arrDataCitys[$_GET['id']])) { if (!empty($_GET['tId']) && !in_array($_GET['tId'], $arrDataCitys[$_GET['id']])) { messages::error404(); } else { $id = $_GET['id']; } $offset = isset($_GET['offset']) ? (int) abs($_GET['offset']) : 0; //смещение, всегда 0 (затем берется из $_GET) $strWhere = "id_city IN ('{$id}')"; $arrLimit = array('strLimit' => $offset . ', ' . CONF_ANNOUNCE_PERPAGE_SITE, 'calcRows' => true); $smarty->assign('return_data', $resume->getActiveAnnounces($arrLimit, $strWhere)); $allRecords = $resume->cntAnnounces(); // получаем общее количество объявлений $path = CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&do=resume'; $strId = !$id ? 'page=offset&' : "id={$id}&page=offset&"; $strPages = strings::generatePage($allRecords, $offset, CONF_ANNOUNCE_PERPAGE_SITE, $path . '&action=citys&' . $strId);
*/ !defined('SDG') ? die('Triple protection!') : null; /** * Массив полей, содержащихся в форме поиска */ $arrFields = array('id_section' => false, 'id_profession' => false, 'id_region' => false, 'id_city' => false, 'chart_work' => false, 'expire_work' => false, 'education' => false, 'age_from' => false, 'age_post' => false, 'pay_from' => false, 'pay_post' => false, 'currency' => false, 'gender' => false, 'user_type' => false, 'period' => false, 'records' => false); // поиск if (isset($_GET['id_section'])) { // проверяем наличие всех необходимых полей в поисковом запросе foreach ($arrFields as $key => $value) { !isset($_GET[$key]) ? $arrErrors = ERROR_SEARCH_NONE_REQUIRED_FIELDS : null; } if (!$arrErrors) { // создаем объект $search = new search('resume'); $arrFields = array('id_section' => validate::checkNaturalNumber($_GET['id_section']), 'id_profession' => validate::checkNaturalNumber($_GET['id_profession']), 'id_region' => validate::checkNaturalNumber($_GET['id_region']), 'id_city' => validate::checkNaturalNumber($_GET['id_city']), 'chart_work' => in_array($search->decodeSearchString($_GET['chart_work']), $arrAddDict['ChartWork']['values']) ? $search->decodeSearchString($_GET['chart_work']) : false, 'expire_work' => in_array($search->decodeSearchString($_GET['expire_work']), $arrAddDict['ExpireWorkSearch']['values']) ? $search->decodeSearchString($_GET['expire_work']) : false, 'education' => in_array($search->decodeSearchString($_GET['education']), $arrAddDict['Education']['values']) ? $search->decodeSearchString($_GET['education']) : false, 'age_from' => validate::checkNaturalNumber($_GET['age_from']), 'age_post' => validate::checkNaturalNumber($_GET['age_post']), 'pay_from' => validate::checkNaturalNumber($_GET['pay_from']), 'pay_post' => validate::checkNaturalNumber($_GET['pay_post']), 'currency' => in_array($_GET['currency'], $arrSysDict['Currency']['values']) ? $_GET['currency'] : false, 'gender' => array_key_exists($_GET['gender'], $arrSysDict['Gender']['values']) ? $_GET['gender'] : false, 'user_type' => $_GET['user_type'], 'period' => array_key_exists($_GET['period'], $arrSysDict['SearchPeriod']['values']) ? $_GET['period'] : 0, 'records' => in_array($_GET['records'], $arrSysDict['AnnounceRecords']['values']) ? $_GET['records'] : 5); // смещение, всегда 0 (затем берется из $_GET) $offset = isset($_GET['offset']) ? (int) abs($_GET['offset']) : 0; // производим поиск $arrData = $search->searchResume($arrFields + array('offset' => $offset)); if ($arrData['result']) { // формируем ссылку $path = 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&do=search.resume&id_section=' . $arrFields['id_section'] . '&id_profession=' . $arrFields['id_profession'] . '&id_region=' . $arrFields['id_region'] . '&id_city=' . $arrFields['id_city'] . '&chart_work=' . $arrFields['chart_work'] . '&expire_work=' . $arrFields['expire_work'] . '&education=' . $arrFields['education'] . '&age_from=' . $arrFields['age_from'] . '&age_post=' . $arrFields['age_post'] . '&pay_from=' . $arrFields['pay_from'] . '&pay_post=' . $arrFields['pay_post'] . '&currency=' . $arrFields['currency'] . '&gender=' . $arrFields['gender'] . '&user_type=' . $arrFields['user_type'] . '&period=' . $arrFields['period'] . '&records=' . $arrFields['records'] . '&'; // формируем странциы $strPages = strings::generatePage($arrData['records'], $offset, $arrFields['records'], $path, true); // передаем в шаблон необходимые данные $smarty->assign('link', CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&do=resume&action=view&id='); $smarty->assignByRef('return_data', $arrData['result']); $smarty->assignByRef('string_page', $strPages); } else { $arrErrors[] = MESSAGE_NOT_FOUND_RECORDS;
/** Возвращаемые в форму данные **/ $retFields = $_POST; // если не пустые дата и время, возвращаем в форму необходимые значения if (!empty($_POST['arrBindFields']) && !empty($_POST['date']) && !empty($_POST['time'])) { $retFields['arrBindFields']['date'] = mktime(0, 0, 0, $_POST['date']['Date_Month'], $_POST['date']['Date_Day'], $_POST['date']['Date_Year']); $retFields['arrBindFields']['time'] = mktime($_POST['time']['Time_Hour'], $_POST['time']['Time_Minute'], 0, 0, 0, 0); } } } else { $arrErrors[] = ERROR_TO_PERFORM_ACTION_SPECIFY_ALIAS; } } elseif ($arrActions['edit']) { // инициируем "Наименование страницы" отображаемое в заголовке формы $arrNamePage[] = array('name' => constant('FORM_NEWS_EDIT'), 'link' => false); /** Проверяем id новости **/ if (!empty($_GET['id']) && ($id = validate::checkNaturalNumber($_GET['id']))) { /** Проверяем псевдоним пользователя **/ if (!empty($arrUser['alias'])) { // получаем данные статьи $strWhere = "id=" . secure::escQuoteData($id) . " AND id_user="******" AND token IN ('active','archived','correction')"; if ($arrNews = $news->getNews($strWhere)) { /** Проверяем токен записи и права пользователя **/ if ('correction' == $arrNews['token'] || !empty($_SESSION['sd_' . DB_PREFIX . 'codex']['rights']['edit_news'])) { /** Сохраняем статью **/ if (isset($_POST['save'])) { /** Проверяем на непустые поля **/ if (!empty($_POST['arrBindFields']) && !empty($_POST['date']) && !empty($_POST['time'])) { $arrData = $_POST['arrBindFields'] + $_POST['date'] + $_POST['time']; if (validate::arrDataNotEmpty($arrData)) { $arrBindFields = $_POST['arrBindFields']; $arrBindFields['datetime'] = $_POST['date']['Date_Year'] . '-' . $_POST['date']['Date_Month'] . '-' . $_POST['date']['Date_Day'] . ' ' . $_POST['time']['Time_Hour'] . ':' . $_POST['time']['Time_Minute'];