/** Проверяем id статьи **/ if (!empty($_GET['id']) && strings::ifInt($_GET['id'])) { $id = (int) $_GET['id']; /** Проверяем псевдоним пользователя **/ if (!empty($arrUser['alias'])) { // получаем данные статьи $strWhere = "id IN (" . secure::escQuoteData($id) . ") AND id_user IN (" . secure::escQuoteData($arrUser['id']) . ") AND token IN ('active','archived','new','correction')"; if ($arrArticle = $articles->getArticle($strWhere)) { /** Проверяем токен статьи и права пользователя **/ if ($arrArticle['token'] == 'correction' || !empty($_SESSION['sd_' . DB_PREFIX . 'codex']['rights']['edit_articles'])) { /** Сохраняем статью **/ 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']; } else { $arrErrors[] = ERROR_EMPTY_BIND_FIELDS; } } else { $arrErrors[] = ERROR_EMPTY_BIND_FIELDS; } /** Если нет ошибок, формируем данные для статьи **/ if (!$arrErrors) { $arrData = $arrBindFields + $_POST['arrNoBindFields']; $arrData['author'] = $arrUser['alias']; $arrData['token'] = $arrArticle['token'] !== 'correction' ? $arrArticle['token'] : 'moderate'; $arrData['noComments'] = !empty($_POST['arrNoBindFields']['noComments']) ? 1 : 0; $arrData['id'] = $id;
if (isset($_GET['action'])) { // инициируем "Наименование страницы" отображаемое в форме $arrNamePage = array(array('name' => MENU_ADMIN_MAIN, 'link' => CONF_ADMIN_FILE), array('name' => MENU_DICTIONARY_SELECTS, 'link' => CONF_ADMIN_FILE . '?m=dictionary&s=selects')); switch ($_GET['action']) { case 'add': $arrActSelects[$_GET['action']] = true; $arrNamePage[] = array('name' => MENU_ACTION_ADD, 'link' => false); if (isset($_POST['add_dict'])) { !isset($_POST['newDict']) || !is_array($arrNewDict = $_POST['newDict']) || empty($arrNewDict) || !validate::arrDataNotEmpty($arrNewDict) || !isset($arrNewDict['value']) || !validate::arrDataNotEmpty($arrNewDict['value']) || !isset($arrNewDict['type']) || 'assoc' !== $arrNewDict['type'] && 'index' !== $arrNewDict['type'] || 'assoc' === $arrNewDict['type'] && (!isset($arrNewDict['index']) || !validate::arrDataNotEmpty($arrNewDict['index'])) ? $arrErrors[] = ERROR_EMPTY_FORM_FIELDS : $selects->addDict($arrNewDict); } 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)); // получаем список доступных дирректорий шаблонов
$regions->arrNoBindFields =& $_POST['arrNoBindFields']; // необязательные поля, если заполнено $regions->recCategory(); // производим запись messages::messageChangeSaved(MESSAGE_REGION_ADDED, false, CONF_ADMIN_FILE . '?m=dictionary&s=regions'); } } elseif (isset($_POST['action'])) { if ('edit' === $_POST['action'] && isset($_POST['region']) && is_array($_POST['region']) && !empty($_POST['region'])) { $arrActRegions['edit'] = true; // инициируем "Наименование страницы" отображаемое в форме $arrNamePage = array(array('name' => MENU_ADMIN_MAIN, 'link' => CONF_ADMIN_FILE), array('name' => MENU_DICTIONARY_REGIONS, 'link' => CONF_ADMIN_FILE . '?m=dictionary&s=regions'), array('name' => FORM_ACTION_EDIT, 'link' => false)); $smarty->assign('arrRegions', $regions->retCategorysByIds(array_keys($_POST['region']))); if (isset($_POST['save_regions'])) { // проверяем на пустоту, поля обязательные для заполнения foreach ($_POST['region'] as &$value) { if (!validate::arrDataNotEmpty($value['arrBindFields'])) { $arrErrors[] = ERROR_EMPTY_NAME; break; } if (isset($value['arrNoBindFields']['major'])) { $value['arrNoBindFields']['add_city_allowed'] = 0; } else { if (isset($value['arrNoBindFields']['add_city_allowed'])) { $value['arrNoBindFields']['major'] = 0; } else { $value['arrNoBindFields']['major'] = 0; $value['arrNoBindFields']['add_city_allowed'] = 0; } } } empty($arrErrors) ? $regions->actionRegions($_POST['action'], $_POST['region']) : null;
// создаем объект $jur = new jur(); // ответ пользователю if (isset($_GET['result']) && !empty($_POST)) { } elseif (isset($_GET['print']) && !empty($_SESSION['jur']['print'])) { // передаем TITLE страницы в Smarty $smarty->assign('page_title', !empty($arrTitle) ? strings::formTitle($arrTitle) : strings::formTitle($arrNamePage)); $smarty->assign('printVar', $_SESSION['jur']['print']); $smarty->display('main.print.tpl'); exit; } else { // проверяем наличие в сессии необходимых параметров и установлена ли цена в тарифной сетке для выбранной услуги if (!empty($_SESSION['payment']) && is_array($_SESSION['payment']) && !empty($_SESSION['payment']['service']) && $payments->checkPriceInTariff($_SESSION['payment']['service'], $arrTariffs) && !empty($_SESSION['payment']['id'])) { // Сохраняем запрос оплаты if (isset($_POST['pay']) && (!empty($_POST['arrBindFields']) || !empty($_POST['arrNoBindFields']))) { if (!empty($_POST['arrBindFields']) && !validate::arrDataNotEmpty($_POST['arrBindFields'])) { $arrErrors[] = ERROR_EMPTY_BIND_FIELDS; $smarty->assignByRef('arrData', $_SESSION['jur']['data']); $smarty->assign('include_template', SD_ROOT_DIR . 'core/mods/payments/jur/templates/jur.pay.form.tpl'); } else { // В обработку полей добавить кодирование в html-мнемоники и кавычки тоже (htmlspecialchars) if (!empty($_POST['arrBindFields'])) { $_POST['arrBindFields'] = $jur->htmlSpecChars($_POST['arrBindFields']); } else { $_POST['arrBindFields'] = array(); } if (!empty($_POST['arrNoBindFields'])) { $_POST['arrNoBindFields'] = $jur->htmlSpecChars($_POST['arrNoBindFields']); } else { $_POST['arrNoBindFields'] = array(); }
} } // проверка данных хранимых в XML-формате if (is_array($_POST['arrFieldsXmlData'])) { foreach ($_POST['arrFieldsXmlData'] as $nameField => &$contentField) { // перебор массива if (is_array($contentField)) { foreach ($contentField as $index => &$arrContent) { // перебор массива // проверка на пустоту, полей обязательных для заполнения хранимых в XML-формате if (array_key_exists('arrBindFields', $arrContent) && is_array($arrContent['arrBindFields'])) { foreach ($arrContent['arrBindFields'] as $key => &$value) { // перебор массива $errFields[$nameField][$index]['arrBindFields'][$key] = ''; } if (!validate::arrDataNotEmpty($arrContent['arrBindFields'])) { // ошибка выводимая в заголовке формы анкеты !in_array(ERROR_EMPTY_BIND_FIELDS, $arrWarnings) ? $arrWarnings[] = ERROR_EMPTY_BIND_FIELDS : null; // ошибки выводимые для каждого незаполненного поля foreach ($arrContent['arrBindFields'] as $key => &$value) { !$value ? $errFields[$nameField][$index]['arrBindFields'][$key] = ERROR_BIND_FIELD : null; } } } } } } // обработка чеккера "Старт карьеры" if (!empty($_POST['career_launch'])) { $_POST['arrFieldsXmlData']['expires'] = false; $smarty->assignByRef('career_launch', $_POST['career_launch']);