/** Заголовок **/ !empty($retFields['title']) ? $strWhere .= " AND title LIKE " . secure::escQuoteData($retFields['title']) : null; /** Раздел **/ !empty($retFields['id_section']) ? $strWhere .= " AND id_section IN (" . secure::escQuoteData($retFields['id_section']) . ")" : null; // проверяем поле "Дата от" и создаем условие для запроса !empty($retFields['sDate']) ? !validate::validateMySqlDate($retFields['sDate']) ? $arrErrors[] = ERROR_DATE_FORMAT : ($strWhere .= " AND datetime>=" . secure::escQuoteData($retFields['sDate'])) : null; // проверяем поле "Дата до" и создаем условие для запроса !empty($retFields['eDate']) ? !validate::validateMySqlDate($retFields['eDate']) ? $arrErrors[] = ERROR_DATE_FORMAT : ($strWhere .= " AND datetime<=" . secure::escQuoteData($retFields['eDate'])) : null; /////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////// $smarty->assignByRef('retFields', $retFields); /** текущий обработанный URL **/ $path .= 'do=filter&id=' . $retFields['id'] . '&id_user='******'id_user'] . '&author=' . $retFields['author'] . '&title=' . $retFields['title'] . '&id_section=' . $retFields['id_section'] . '&sDate=' . $retFields['sDate'] . '&eDate=' . $retFields['eDate'] . '&records=' . $retFields['records'] . '&'; } /** смещение, всегда 0 (затем берется из $_GET) **/ $offset = !empty($_GET['offset']) && strings::ifInt($_GET['offset']) && (int) $_GET['offset'] > 0 ? (int) abs($_GET['offset']) : 0; $strLimit = array('strLimit' => $offset . ',' . $retFields['records'], 'calcRows' => true); $arrFields = array('id', 'title', 'id_section', 'id_user', 'author', 'datetime'); $smarty->assign('arrArticles', $articles->getArticles($strWhere, false, $strLimit, $arrFields)); // массив всех статей /** формируем страницы **/ $allRecords = $articles->cntArticles(); // получаем общее количество статей $strPages = strings::generatePage($allRecords, $offset, $retFields['records'], $path, true); // формируем странциы $smarty->assignByRef('allRecords', $allRecords); //передаем в шаблон общее количество записей $smarty->assignByRef('strPages', $strPages); //передаем в шаблон строку сформированных страниц } // создаем объект разделов статей
/** Возвращаемые в форму данные **/ $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_ARTICLES_EDIT'), 'link' => false); /** Проверяем 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'];
*/ // получение последних записей из БД if (!empty($arrActions['getLast']) && !empty($_GET['type'])) { // массив доступных объектов для получения последних записей $arrTypes = array('resume' => false, 'vacancy' => false); // активируем доступный объект isset($arrTypes[$_GET['type']]) ? $arrTypes[$_GET['type']] = true : null; /** * Обработка доступных объектов */ // Работа с Резюме/Вакансиями if (!empty($arrTypes['resume']) || !empty($arrTypes['vacancy'])) { // Переопределяем ключ для узла <root></root> - в XML $root = $_GET['action'] . ucfirst($_GET['type'] . 's'); // Определяем параметр LIMIT $arrParams['limit'] = !empty($_GET['limit']) && strings::ifInt($_GET['limit']) ? $_GET['limit'] : false; // Объявляем объект $objAnnounce = new $_GET['type'](); // Выполняем запрос $returnData = $objAnnounce->getApiLastAnnounces($arrParams); // формируем результат $result = !empty($returnData) ? 'success' : 'empty'; $arrResult = array('result' => $result, 'data' => &$returnData); } else { // ошибка параметров запроса к API $arrResult = array('result' => 'error', 'error' => 'Error params AJAX-Query API'); } } else { // ошибка действия запроса к API $arrResult = array('result' => 'error', 'error' => 'Error action AJAX-Query API'); }
/** * Метод проверяет значения свойств для записи в таблицу БД * * @return bool */ private function validateStoringData() { // валидация типа записи if (empty($this->arrBindFields['type']) || !in_array($this->arrBindFields['type'], $this->arrTypes)) { return false; } // валидация ID-контента для хранения данных о просмотре if (empty($this->arrBindFields['id_content']) || !strings::ifInt($this->arrBindFields['id_content'])) { return false; } // валидация ID-пользователя if (empty($this->arrBindFields['id_user']) || !strings::ifInt($this->arrBindFields['id_user'])) { return false; } // валидация IP-адреса пользователя if (empty($this->arrBindFields['ip']) || !validate::validateIp($this->arrBindFields['ip'])) { return false; } return true; }
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; }