Ejemplo n.º 1
0
 /**
  * функция проверки авторизации админа
  * Берет логин и пароль админа из сесси и сверяет их с данными в БД
  * 
  * @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);
     }
 }
Ejemplo n.º 2
0
 /**
  * protected функция обновления записей в таблице
  * 
  * @param (array) $arrData - массив данных для обновления (key: name field => val: value field)
  * @param (array) $arrArticles - массив, содержащий id статей для обновления (id_1, id_2, ..., id_n)
  * @param (string) $strWhere - выражение для оператора WHERE or false (по умолчанию false)
  * 
  * @return bool
  */
 protected function pUpdateRecords($arrData, $strWhere = false)
 {
     if (empty($arrData)) {
         return false;
     }
     return $this->editEntrys(secure::escQuoteData($arrData), $strWhere);
 }
Ejemplo n.º 3
0
 /**
  * protected функция оцнеки статьи
  *
  * @param int $score - оценка статьи
  * @param int $id - id статьи
  *
  * @return echo (печатает результат)
  */
 protected function pRateArticle(&$score, &$id)
 {
     // проверяем наличие id статьи в куках пользователя
     // если $flag = true, значит пользователь уже голосовал за статью
     isset($_COOKIE['artvote']) && $_COOKIE['artvote'] ? !in_array($id, explode(':', $_COOKIE['artvote'])) ? $flag = false : ($flag = true) : ($flag = false);
     if (!$flag) {
         if ($arrData = $this->pGetArticle("id IN (" . secure::escQuoteData($id) . ") AND token IN ('active')")) {
             // проверяем, голосовал ли пользователь за эту статью
             if ($_SERVER['REMOTE_ADDR'] !== $arrData['ip_last']) {
                 // вычисляем рейтинг с учетом всех голосов
                 // считаем балл, и доавляем его к рейтингу
                 $fullRating = $arrData['rating'] * $arrData['votes'] + $score * 20;
                 // увеличиваем количество голосов
                 $votes = !$arrData['votes'] ? 1 : $arrData['votes'] + 1;
                 // высчитываем новый средний рейтинг
                 $rating = $fullRating / $votes;
                 $this->pUpdateArticles(array('rating' => $rating, 'votes' => $votes, 'ip_last' => $_SERVER['REMOTE_ADDR']), array($id));
                 // устанавливаем куку
                 isset($_COOKIE['artvote']) && $_COOKIE['artvote'] ? cookies::setCookieSite('artvote', $_COOKIE['artvote'] . ':' . $id) : cookies::setCookieSite('artvote', $id);
                 // выводим результат
                 $result = '<div class="rate">' . '<div class="rating">' . FORM_ARTICLES_RATING . ': ' . $rating . '</div>' . '<div class="base" style="height:16px;"><div class="average" style="width: ' . $rating . '%;">&nbsp;</div></div>' . '<div class="votes">' . $votes . ' ' . FORM_ARTICLES_VOTES . '</div>' . '</div>' . '<div class="status">' . '</div>';
                 print $result;
             } else {
                 print ERROR_ONLY_ONE_VOTING_ARTICLE;
             }
         } else {
             print ERROR_SELECTED_ARTICLE;
         }
     } else {
         print ERROR_ONLY_ONE_VOTING_ARTICLE;
     }
 }
             $arrID = array_filter(explode('-', $retFields['id_user']), 'strings::ifInt');
             !empty($arrID[0]) && !empty($arrID[1]) ? $strWhere .= " AND id_user>=" . $arrID[0] . " AND id_user<=" . $arrID[1] : null;
         } elseif ((int) $retFields['id_user']) {
             $strWhere .= " AND id_user IN (" . secure::escQuoteData((int) abs($retFields['id_user'])) . ")";
         }
     }
     /** Автор **/
     !empty($retFields['author']) ? $strWhere .= " AND author LIKE " . secure::escQuoteData($retFields['author']) : null;
     /** Заголовок **/
     !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&amp;id=' . $retFields['id'] . '&amp;id_user='******'id_user'] . '&amp;author=' . $retFields['author'] . '&amp;title=' . $retFields['title'] . '&amp;id_section=' . $retFields['id_section'] . '&amp;sDate=' . $retFields['sDate'] . '&amp;eDate=' . $retFields['eDate'] . '&amp;records=' . $retFields['records'] . '&amp;';
 }
 /** смещение, всегда 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();
 // получаем общее количество статей
Ejemplo n.º 5
0
 if (!empty($_GET['alias'])) {
     $strWhereAlias = '()' === $_GET['alias'] ? "users.alias=''" : "users.alias LIKE " . secure::escQuoteData($_GET['alias']);
 }
 // формируем условие в соответствии с IP пользователя
 $strWhereIP = !empty($_GET['reg_ip']) ? "users.reg_ip LIKE " . secure::escQuoteData($_GET['reg_ip']) : false;
 // формируем условие в соответствии с user_type пользователя
 $strWhereUserType = isset($_GET['user_type']) && $_GET['user_type'] ? "conf_users.user_type IN (" . secure::escQuoteData($_GET['user_type']) . ")" : false;
 // формируем условие в соответствии с user_type пользователя
 $strWhereUserGroup = isset($_GET['user_group']) && $_GET['user_group'] ? "conf_users.user_group IN (" . secure::escQuoteData($_GET['user_group']) . ")" : false;
 // формируем условие в соответствии с token пользователя
 $strWhereToken = "conf_users.token IN ('active')";
 if (isset($_GET['token']) && $_GET['token']) {
     if ('new' === $_GET['token']) {
         $strWhereToken = "users.token IN (" . secure::escQuoteData($_GET['token']) . ")";
     } elseif ('active' === $_GET['token'] || 'moderate' === $_GET['token'] || 'payment' === $_GET['token']) {
         $strWhereToken = "conf_users.token IN (" . secure::escQuoteData($_GET['token']) . ")";
     }
 }
 // формируем общее условие
 $strWhere = ($strWhereId ? $strWhereId . ' AND ' : null) . ($strWhereEmail ? $strWhereEmail . ' AND ' : null) . ($strWhereAlias ? $strWhereAlias . ' AND ' : null) . ($strWhereIP ? $strWhereIP . ' AND ' : null) . ($strWhereUserType ? $strWhereUserType . ' AND ' : null) . ($strWhereUserGroup ? $strWhereUserGroup . ' AND ' : null) . $strWhereToken;
 /**
  * END ФОРМИРУЕМ УСЛОВИЯ ДЛЯ ЗАПРОСА
  */
 //смещение, всегда 0 (затем берется из $_GET)
 $offset = isset($_GET['offset']) && (int) $_GET['offset'] > 0 ? (int) $_GET['offset'] : 0;
 //текущий обработанный URL
 $path = CONF_ADMIN_FILE . '?m=users&amp;s=manager&amp;action=filter&amp;id=' . $returnData['id'] . '&amp;' . 'email=' . $returnData['email'] . '&amp;alias=' . $returnData['alias'] . '&amp;reg_ip=' . $returnData['reg_ip'] . '&amp;' . 'user_type=' . $returnData['user_type'] . '&amp;user_group=' . $returnData['user_group'] . '&amp;token=' . $returnData['token'] . '&amp;';
 // получаем данные пользователя
 $usersData = $user->getCombinedUsersData(false, $strWhere, array($order => $by), $offset . ',' . CONF_USERS_STRINGS_PERPAGE_ADMIN_PANEL);
 $allRecords = $user->cntUsers();
 // получаем общее количество записей
Ejemplo n.º 6
0
/**
* иницализация массива подключаемых шаблонов: по умолчанию все значения - false
* для подключения шаблона, необходимо установить значение - true
* шаблоны подключаются в порядке установленном в файле головного шаблона
*/
$arrActions = array('payments' => false, 'config' => false, 'mt' => false, 'lt' => false);
// определяем шаблон для отображения
isset($_GET['action']) && isset($arrActions[$_GET['action']]) ? $arrActions[$_GET['action']] = true : null;
$payments = new payments();
$modMenu = array();
// инициируем "Наименование страницы" отображаемое в форме
$arrNamePage[] = array('name' => MENU_MODS_PAYMENTS, 'link' => CONF_ADMIN_FILE . '?m=mods&s=payments');
/**
* Действия
*/
$issetMod = !empty($_GET['id']) ? $payments->issetMod("id IN (" . secure::escQuoteData($_GET['id']) . ") AND token IN ('active', 'disabled')") : false;
/**
* Настройки модов
*/
if ($arrActions['config'] && !empty($_GET['id']) && $issetMod) {
    // инициируем "Наименование страницы" отображаемое в форме
    $arrNamePage[] = array('name' => strtoupper($_GET['id']), 'link' => false);
    $arrNamePage[] = array('name' => MENU_CONFIG, 'link' => false);
    include_once 'core/mods/payments/' . $_GET['id'] . '/admin.php';
    include_once 'core/mods/payments/' . $_GET['id'] . '/conf/' . $_GET['id'] . '.conf.php';
    include_once 'core/mods/payments/' . $_GET['id'] . '/conf/' . $_GET['id'] . '.tariffs.php';
    $smarty->assign('config_template', SD_ROOT_DIR . 'core/mods/payments/' . $_GET['id'] . '/templates/' . $_GET['id'] . '.conf.tpl');
    $smarty->assign('tariffs_template', SD_ROOT_DIR . 'core/mods/payments/' . $_GET['id'] . '/templates/' . $_GET['id'] . '.tariffs.tpl');
    /**
     * Сохраняем настройки самого мода
     */
Ejemplo n.º 7
0
         !empty($arrConf['robot_running_firsttime']) && $arrConf['robot_running_firsttime'] < time() ? $arrConf['robot_running_firsttime'] += 86400 : null;
         $data = "<?php\n\n" . "(!defined('SDG')) ? die ('Triple protection!') : null;\n\n" . '$arrRobotConf = array(' . "\n\t\t\t\t\t\t'configs' => array(\n";
         foreach ($arrConf as $confKey => $confVal) {
             $arrConfData[] = "\t\t\t\t\t\t\t\t\t\t\t\t'{$confKey}' => {$confVal}";
         }
         $data .= implode(",\n", $arrConfData) . "\n\t\t\t\t\t\t\t\t\t\t  ),\n\t\t\t\t\t\t'actions' => array(\n";
         foreach ($arrRobotConf['actions'] as $actionKey => $actionVal) {
             $actionVal = false === $actionVal ? 'false' : (true === $actionVal ? 'true' : "'{$actionVal}'");
             $arrActData[] = "\t\t\t\t\t\t\t\t\t\t\t\t'{$actionKey}' => {$actionVal}";
         }
         $data .= implode(",\n", $arrActData) . "\n\t\t\t\t\t\t\t\t\t\t  )\n\t\t\t\t\t );\n";
         if (!tools::saveConfig($fileName, $data, CONF_ADMIN_FILE . '?m=service&s=robot&action=config')) {
             $arrErrors[] = ERROR_FILES_MISSING_FILE;
         }
     } elseif (isset($_POST['ctrl_save'])) {
         $arrCtrl = array('updateCounters' => isset($_POST['arrCtrl']['updateCounters']) ? 'true' : 'false', 'delNonverifyUsers' => isset($_POST['arrCtrl']['delNonverifyUsers']) ? 'true' : 'false', 'delNontypeUsers' => isset($_POST['arrCtrl']['delNontypeUsers']) ? 'true' : 'false', 'delUnpaidUsers' => isset($_POST['arrCtrl']['delUnpaidUsers']) ? 'true' : 'false', 'delUnpaidSubscr' => isset($_POST['arrCtrl']['delUnpaidSubscr']) ? 'true' : 'false', 'vacActionSlo' => isset($_POST['arrCtrl']['vacActionSlo']) && ('deleted' === $_POST['arrCtrl']['vacActionSlo'] || 'archived' === $_POST['arrCtrl']['vacActionSlo']) ? secure::escQuoteData($_POST['arrCtrl']['vacActionSlo']) : 'false', 'resActionSlo' => isset($_POST['arrCtrl']['resActionSlo']) && ('deleted' === $_POST['arrCtrl']['resActionSlo'] || 'archived' === $_POST['arrCtrl']['resActionSlo']) ? secure::escQuoteData($_POST['arrCtrl']['resActionSlo']) : 'false', 'vacDelNonverify' => isset($_POST['arrCtrl']['vacDelNonverify']) ? 'true' : 'false', 'resDelNonverify' => isset($_POST['arrCtrl']['resDelNonverify']) ? 'true' : 'false', 'vacDelUnpaid' => isset($_POST['arrCtrl']['vacDelUnpaid']) ? 'true' : 'false', 'resDelUnpaid' => isset($_POST['arrCtrl']['resDelUnpaid']) ? 'true' : 'false', 'vacVipResetSlo' => isset($_POST['arrCtrl']['vacVipResetSlo']) ? 'true' : 'false', 'resVipResetSlo' => isset($_POST['arrCtrl']['resVipResetSlo']) ? 'true' : 'false', 'vacHotResetSlo' => isset($_POST['arrCtrl']['vacHotResetSlo']) ? 'true' : 'false', 'resHotResetSlo' => isset($_POST['arrCtrl']['resHotResetSlo']) ? 'true' : 'false');
         $data = "<?php\n\n" . "(!defined('SDG')) ? die ('Triple protection!') : null;\n\n" . '$arrRobotConf = array(' . "\n\t'configs' => array(\n";
         foreach ($arrRobotConf['configs'] as $configKey => $configVal) {
             $configVal = false === $configVal ? 'false' : (true === $configVal ? 'true' : $configVal);
             $arrConfData[] = "\t\t'{$configKey}' => {$configVal}";
         }
         $data .= implode(",\n", $arrConfData) . "\n\t),\n\n\t'actions' => array(\n";
         foreach ($arrCtrl as $ctrlKey => $ctrlVal) {
             $arrActData[] = "\t\t'{$ctrlKey}' => {$ctrlVal}";
         }
         $data .= implode(",\n", $arrActData) . "\n\t)\n);\n";
         if (!tools::saveConfig($fileName, $data, CONF_ADMIN_FILE . '?m=service&s=robot&action=config')) {
             $arrErrors[] = ERROR_FILES_MISSING_FILE;
         }
     }
 } else {
Ejemplo n.º 8
0
            } else {
                echo ajax::sdgJSONencode(array('error' => MESSAGE_COMMENTS_COMPLAINT_NOT_SEND));
            }
        } else {
            echo ajax::sdgJSONencode(array('error' => MESSAGE_COMMENTS_COMPLAINT_NOT_SEND));
        }
    } else {
        echo ajax::sdgJSONencode(array('error' => MESSAGE_COMMENTS_COMPLAINT_NOT_SEND));
    }
} elseif (isset($_POST['deleteCommentA']) && !empty($_POST['articleId'])) {
    if (!empty($_POST['deleteCommentA'])) {
        $articles = new articles();
        $aComments = new articlesComments();
        if ($arrData = $articles->getPublishedArticle("id=" . secure::escQuoteData($_POST['articleId']))) {
            if (!empty($_SESSION['sd_user']['data']['id']) && $_SESSION['sd_user']['data']['id'] == $arrData['id_user']) {
                if ($aComments->deleteRecords("id=" . secure::escQuoteData($_POST['deleteCommentA']))) {
                    echo ajax::sdgJSONencode(array('success' => true));
                } else {
                    echo ajax::sdgJSONencode(array('error' => MESSAGE_COMMENTS_NOT_DELETE));
                }
            } else {
                echo ajax::sdgJSONencode(array('error' => MESSAGE_COMMENTS_NOT_DELETE));
            }
        } else {
            echo ajax::sdgJSONencode(array('error' => MESSAGE_COMMENTS_NOT_DELETE));
        }
    } else {
        echo ajax::sdgJSONencode(array('error' => MESSAGE_COMMENTS_NOT_DELETE));
    }
} else {
    echo 'Error AJAX-Query!';
Ejemplo n.º 9
0
 /**
  * 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;
 }
Ejemplo n.º 10
0
    /**
     * private функция формирует RSS для резюме
     * 
     * @param (string) $type - тип, может быть section или region (по умолчанию false)
     * @param (int) $id - id раздела или региона, резюме которого необходимо показать (по умолчанию false)
     * 
     * @return string
     */
    protected function rssResume($type = false, $id = false)
    {
        // получаем объект резюме
        global $resume;
        // получаем массив селекта "Раздел"
        global $arrDataSections;
        // получаем массив селекта "Регион"
        global $arrDataRegions;
        // формируем данные шапки
        $this->title[] = array('name' => MENU_RESUMES);
        $this->link = chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?do=rss&amp;action=resume');
        $this->description = MENU_RESUMES;
        // проверяем просмотр по разделу
        if ($type && $id) {
            $strWhere = "id_" . $type . " IN (" . secure::escQuoteData($id) . ")";
            $arrType = $type === 'section' ? $arrType =& $arrDataSections : ($arrType =& $arrDataRegions);
            // Дописываем данные по разделу в шапку
            $this->title[] = array('name' => $arrType[$id]['name']);
            $this->description .= ' - ' . $arrType[$id]['name'];
        } else {
            $strWhere = false;
        }
        /***** Формируем XML-документ *****/
        $data = '<?xml version="1.0" encoding="' . CONF_DEFAULT_CHARSET . '" ?>
					<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
					<channel>
					<atom:link href="' . $this->link . '" rel="self" type="application/rss+xml" />
					<title>' . strings::formTitle($this->title) . '</title>
					<link>' . $this->link . '</link>
					<description>' . $this->description . '</description>
					<language>ru</language>
					<pubDate>' . $this->pubDate . '</pubDate>
					<image>
						<url>' . $this->siteLogo . '</url>
						<title>' . strings::formTitle($this->title) . '</title>
						<link>' . $this->link . '</link>
					</image>';
        // если есть активные объявления
        if ($arrResume = $resume->getActiveAnnounces(array('strLimit' => '0,' . CONF_RSS_RESUME_COUNT, 'calcRows' => false), $strWhere)) {
            foreach ($arrResume as $value) {
                $LFName = $value['visibility'] !== 'membershc' && $value['visibility'] !== 'visiblehc' ? ANNOUNCE_CONTACTS_LASTNAME . ' ' . ANNOUNCE_CONTACTS_FIRSTNAME . ': ' . $value['last_name'] . ' ' . $value['first_name'] . '<br>' : '';
                $data .= '<item>
							<title>' . $value['title'] . ' - ' . $value['pay_from'] . ' ' . $value['currency'] . ' (' . $arrDataRegions[$value['id_region']]['name'] . ')</title>
							<link>' . chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?do=resume&amp;action=view&amp;id=' . $value['tId']) . '</link>
							<pubDate>' . terms::RFCDate($value['act_datetime']) . '</pubDate>
							<guid>' . chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?do=resume&amp;action=view&amp;id=' . $value['tId']) . '</guid>
							<category domain="' . chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?do=resume&amp;action=section&amp;id=' . $arrDataSections[$value['id_section']]['tId']) . '">' . $arrDataSections[$value['id_section']]['name'] . '</category>
							<category domain="' . chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?do=resume&amp;action=region&amp;id=' . $arrDataRegions[$value['id_region']]['tId']) . '">' . $arrDataRegions[$value['id_region']]['name'] . '</category>
							<description><![CDATA[' . '<b>' . $arrDataSections[$value['id_section']]['name'] . '</b><br><br>' . $LFName . ANNOUNCE_AGE . ': ' . $value['age'] . '<br>' . ANNOUNCE_SELECT_EXPIREWORK . ': ' . $value['expire_work'] . '<br>' . ANNOUNCE_SELECT_EDUCATION . ': ' . $value['education'] . ']]></description>
						</item>';
            }
        }
        $data .= '</channel>
				</rss>';
        return $data;
    }
Ejemplo n.º 11
0
 /**
  * Функция инкремента счетчиков просмотра объявлений
  *
  * @return void
  */
 protected function viewAnnounce()
 {
     $arrData = $this->retAnnSubj();
     // проверяем полученные данные
     if (empty($arrData['id']) || !isset($arrData['id_user']) || !isset($arrData['cnt_views_last_ip'])) {
         return;
     }
     // обрабатываем счетчики
     if (!empty($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] != $arrData['cnt_views_last_ip']) {
         $arrCntData = secure::escQuoteData(array('cnt_views_temp_datetime' => '', 'cnt_views_last_ip' => $_SERVER['REMOTE_ADDR']));
         $arrCntData['cnt_views_total'] = 'cnt_views_total+1';
         $arrCntData['cnt_views_temp'] = 'cnt_views_temp+1';
         $this->editEntrysNCC($arrCntData, "id IN (" . secure::escQuoteData($arrData['id']) . ")");
     }
     // обрабатываем данные о просмотрах контента зарегистрированными пользователями
     if (!empty($_SESSION['sd_user']['job_conf']['id']) && !empty($arrData['id_user']) && $arrData['id_user'] != $_SESSION['sd_user']['job_conf']['id']) {
         $storing = new storing();
         $storing->setStoringData(array('type' => $this->retTableName(), 'id_content' => $arrData['id']));
         $storing->recStoring();
     }
 }
Ejemplo n.º 12
0
 /**
  * public Функция удаления записей по Id
  * @param (array) $arrId - массив, содержащий ID записей, которые нужно удалить
  * @return bool
  */
 public function deleteRecordsById(&$arrId)
 {
     return $this->delEntrys("id IN (" . implode(",", secure::escQuoteData($arrId)) . ")");
 }
Ejemplo n.º 13
0
 /**
  * Функция проверяет существование таблицы в БД
  * @param Object $params
  * @return bool
  */
 static function issetTable(&$params)
 {
     $query = "SELECT `TABLE_NAME` FROM information_schema.tables WHERE table_schema = " . secure::escQuoteData(DB_NAME) . " AND table_name=" . secure::escQuoteData($params->table) . " LIMIT 1";
     db::dbQuery($query);
     $nR = db::dbNumRows();
     $pr = get_object_vars($params);
     self::clearLogData();
     self::setLogData(array('error' => 2, 'message' => 'Try isset table (method issetTable). Table is: ' . ($nR ? 'isset' : 'not isset'), 'object' => $pr['table']));
     self::saveLogData();
     return $nR;
 }
Ejemplo n.º 14
0
 /**
  * функция помечает страницы как удаленные
  *
  * @param (array) $arrPages - массив, содержащий id страниц для удаления
  *
  * @return bool
  */
 protected function deletePages($arrPages)
 {
     $strWhere = 'id IN (' . implode(',', secure::escQuoteData($arrPages)) . ')';
     return $this->delEntrys($strWhere);
 }
Ejemplo n.º 15
0
                    }
                }
            } 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'] . '&amp;do=authorize'), 10000);
                    } else {
                        $arrErrors[] = db::$message_error;
                    }
                } else {
                    $arrErrors[] = ERROR_SEND_EMAIL;
                }
            } else {
                messages::error404();
            }
        }
        $smarty->assignByRef('errors', $arrErrors);
    }
} else {
    messages::error404();
         $strWhere .= " AND payment IN (" . secure::escQuoteData($return_data['payment']) . ")";
     }
     if ($return_data['period']) {
         $strWhere .= " AND period IN (" . secure::escQuoteData($return_data['period']) . ")";
     }
     if ($return_data['id_section']) {
         $strWhere .= " AND id_section IN (" . secure::escQuoteData($return_data['id_section']) . ")";
     }
     if ($return_data['id_profession']) {
         $strWhere .= " AND id_profession IN (" . secure::escQuoteData($return_data['id_profession']) . ")";
     }
     if ($return_data['id_region']) {
         $strWhere .= " AND id_region IN (" . secure::escQuoteData($return_data['id_region']) . ")";
     }
     if ($return_data['id_city']) {
         $strWhere .= " AND id_city IN (" . secure::escQuoteData($return_data['id_city']) . ")";
     }
 }
 $arrNamePage[] = array('name' => MENU_MANAGER_SUBSCRIPTIONS, 'link' => false);
 $arrNamePage[] = array('name' => MENU_USERS_SUBSCRIPTIONS, 'link' => false);
 $offset = isset($_GET['offset']) ? (int) abs($_GET['offset']) : 0;
 //смещение, всегда 0 (затем берется из $_GET)
 //текущий обработанный URL
 $path = CONF_ADMIN_FILE . '?m=manager&amp;s=subscriptions&amp;do=filter&amp;id_user='******'id_user'] . '&amp;period=' . $return_data['period'] . '&amp;type_subscription=' . $return_data['type_subscription'] . '&amp;payment=' . $return_data['payment'] . '&amp;id_section=' . $return_data['id_section'] . '&amp;id_profession=' . $return_data['id_profession'] . '&amp;id_region=' . $return_data['id_region'] . '&amp;id_city=' . $return_data['id_city'] . '&amp;';
 $arrLimit = array('strLimit' => $offset . ',' . CONF_SUBSCRIPTIONS_STRINGS_PERPAGE_ADMIN_PANEL, 'calcRows' => true);
 $arrSubscr = $subscription->getSubscriptions($strWhere, false, $arrLimit, false);
 // формируем страницы
 $allRecords = $subscription->cntSubscriptions();
 // получаем общее количество
 $strPages = strings::generatePage($allRecords, $offset, CONF_SUBSCRIPTIONS_STRINGS_PERPAGE_ADMIN_PANEL, $path, true);
 // формируем странциы
Ejemplo n.º 17
0
*/
!defined('SDG') ? die('Triple protection!') : null;
/**
* иницализация массива подключаемых шаблонов: по умолчанию все значения - false
* для подключения шаблона, необходимо установить значение - true
* шаблоны подключаются в порядке установленном в файле головного шаблона
*/
$arrAction = array('view' => false);
/**
* Подключаем выбранный мод
*/
if (!empty($_GET['mod'])) {
    $arrNamePage = array(array('name' => MENU_PAYMENTS, 'link' => chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&amp;do=payments')), array('name' => strtoupper($_GET['mod']), 'link' => false));
    // проверяем: существует ли выбранный мод (и включен ли он) и наличие обязательных файлов мода
    // а также, для модов требующих авторизацию пользователя, авторизирован ли пользователь
    if (!$payments->issetMod("id IN (" . secure::escQuoteData($_GET['mod']) . ") AND token IN ('active')") || !$payments->checkBindFiles($_GET['mod']) || $_GET['mod'] == 'hand' && !$user->getAuthorized()) {
        $arrErrors[] = ERROR_PAY_SYSTEM_NOT_EXISTS;
    } else {
        // если проверка прошла, подключаем тарифную сетку мода
        include_once 'core/mods/payments/' . $_GET['mod'] . '/conf/' . $_GET['mod'] . '.tariffs.php';
        include_once 'core/mods/payments/' . $_GET['mod'] . '/conf/' . $_GET['mod'] . '.conf.php';
        include_once 'core/mods/payments/' . $_GET['mod'] . '/lang/' . (!empty($_COOKIE['currLang']) ? $_COOKIE['currLang'] : CONF_LANGUAGE) . '/' . $_GET['mod'] . '.lang.php';
        include_once 'core/mods/payments/' . $_GET['mod'] . '/lang/' . (!empty($_COOKIE['currLang']) ? $_COOKIE['currLang'] : CONF_LANGUAGE) . '/lang._custom.php';
        include_once 'core/mods/payments/' . $_GET['mod'] . '/classes/' . $_GET['mod'] . '.class.php';
        include_once 'core/mods/payments/' . $_GET['mod'] . '/index.php';
    }
} else {
    !($modsList = $payments->getActiveMods()) ? $arrErrors[] = ERROR_NOT_PAY_SYSTEM : null;
    // если нет ошибок и пользователь не авторизирован, удаляем моды, которые только для зарегистрированных пользователей
    if (empty($arrErrors) && !$user->getAuthorized()) {
        foreach ($modsList as $key => &$value) {
Ejemplo n.º 18
0
 /**
  * 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&amp;s=regions');
             }
         } else {
             if ($silentMode) {
                 return true;
             } else {
                 messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=dictionary&amp;s=regions');
             }
         }
     } else {
         if ($silentMode) {
             return false;
         } else {
             messages::messageChangeSaved(MESSAGE_WARNING_UNKNOWN_ACTION, false, CONF_ADMIN_FILE . '?m=dictionary&amp;s=regions');
         }
     }
 }
Ejemplo n.º 19
0
 /**
  * функция получает стоки помеченные на удаления в таблице БД
  * производит проверку на совпадение значений уникальных полей и резервирует строку для обновления данных
  * если такая строка не найдена - возвращает: false
  *
  * @param (string) $table - имя таблицы БД
  * @param (array) $arrUniFields - массив уникальных полей таблицы БД
  *
  * @return int id-строки or false
  */
 static function dbGetTableFreeId($table, $arrUniFields)
 {
     if (!is_array($arrUniFields)) {
         db::$dbTypeSelect = 'single';
         $arrLimit = array('strLimit' => '0, 1', 'calcRows' => false);
         $resultQuery = self::dbSelectTable(array('id'), $table, "token IN ('deleted')", false, $arrLimit, false, true);
         if (!empty($resultQuery)) {
             $id = $resultQuery['id'];
             $set = secure::escQuoteData(array('token' => 'reserved'));
             return !self::dbUpdateTable($table, $set, "id IN ('{$id}')") ? false : $id;
         } else {
             return false;
         }
     } else {
         $fields = array_keys($arrUniFields);
         !in_array('id', $fields) ? $fields[] = 'id' : null;
         db::$dbTypeSelect = 'multi';
         $resultQuery = self::dbSelectTable($fields, $table, "token IN ('deleted')", false, false, true);
         if (!empty($resultQuery)) {
             foreach ($resultQuery as $key => &$value) {
                 foreach ($arrUniFields as &$needle) {
                     if (in_array($needle, $value)) {
                         $id =& $resultQuery[$key]['id'];
                         break 2;
                     }
                 }
             }
             if (empty($id)) {
                 $resultQuery = reset($resultQuery);
                 $id =& $resultQuery['id'];
             }
             $set = secure::escQuoteData(array('token' => 'reserved'));
             return !self::dbUpdateTable($table, $set, "id IN ('{$id}')") ? false : $id;
         } else {
             return false;
         }
     }
 }
Ejemplo n.º 20
0
	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
=========================================================
	Дополнительные страницы
********************************************************/
/**
* @package
* @todo
*/
!defined('SDG') ? die('Triple protection!') : null;
if (!empty($_GET['action']) && 'view' === $_GET['action'] && !empty($_GET['id'])) {
    $strWhere = "id IN (" . secure::escQuoteData($_GET['id']) . ") AND token IN ('active')";
    $fields = array('title', 'text', 'meta_keywords', 'meta_description');
    if ($arrData = $pages->getPage($strWhere, $fields)) {
        $arrNamePage[] = array('name' => $arrData['title'], 'link' => false);
        $smarty->assignByRef('menu', $_GET['id']);
        // выбранный пункт меню
        // HEAD страницы
        $smarty->assignByRef('meta_keywords', $arrData['meta_keywords']);
        $smarty->assignByRef('meta_description', $arrData['meta_description']);
        $smarty->assignByRef('arrPage', $arrData);
        // параметры выбранной страницы
    } else {
        messages::error404();
    }
} else {
    messages::error404();
Ejemplo n.º 21
0
     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'] . '&amp;do=user.articles&amp;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'] . '&amp;do=user.articles&amp;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();
 }
 $smarty->assignByRef('retFields', $retFields);
 $smarty->assignByRef('arrUser', $arrUser);
 $smarty->assignByRef('errors', $arrErrors);
 $smarty->assignByRef('warnings', $arrWarnings);
Ejemplo n.º 22
0
 $arrUser = array_merge($_SESSION['sd_user']['data'], $_SESSION['sd_user'][DB_PREFIX . 'conf']);
 // объединяем данные пользователя
 /**
  * Действия
  */
 if (isset($_GET['action'])) {
     /**
      * Редактирование личных данных
      */
     if ('edit' === $_GET['action']) {
         /**
          * Сохранение личных данных пользователя
          */
         if (isset($_POST['save'])) {
             if (!empty($_POST['alias'])) {
                 if ($user->issetUser("id NOT IN (" . secure::escQuoteData($_SESSION['sd_user']['data']['id']) . ") AND alias IN (" . secure::escQuoteData($_POST['alias']) . ") AND token IN ('active','archived','moderate','new')")) {
                     $arrErrors[] = ERROR_USER_ALIAS_EXISTS;
                 }
             } else {
                 $arrErrors[] = ERROR_EMPTY_BIND_FIELDS;
             }
             // массив основных данных пользователя
             $arrData = array('alias' => $_POST['alias'], 'middle_name' => !empty($_POST['middle_name']) ? $_POST['middle_name'] : '');
             // Разрешаем пользователю изменять имя и фамилиию только если включена соотв. настройка
             if (CONF_USER_CHANGE_NAME) {
                 if (!empty($_POST['first_name']) && !empty($_POST['last_name'])) {
                     $arrData['first_name'] = $_POST['first_name'];
                     $arrData['last_name'] = $_POST['last_name'];
                 } else {
                     $arrErrors[] = ERROR_EMPTY_NAME_OR_SURNAME;
                 }
Ejemplo n.º 23
0
                $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'] . '&amp;do=user.data'));
            } else {
                $smarty->assignByRef('errors', $arrErrors);
            }
        }
    } else {
        messages::error404();
    }
} else {
    messages::error404();
}
Ejemplo n.º 24
0
 /**
  * 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);
 }
Ejemplo n.º 25
0
     // массив всех новостей
     $smarty->assignByRef('news', $arrNews);
     // для блока боковой части
     $currMonth = terms::currentDateTime('n');
     $smarty->assignByRef('currMonth', $currMonth);
     //$smarty->assignByRef('arrMonth', $arrAddDict['Month']['values']);
 } elseif (isset($_GET['month'])) {
     messages::error404();
 } elseif (!empty($_GET['year']) && ($year = chpu::getId_out_tId($_GET['year'])) && 4 == strlen($year)) {
     $arrNamePage[] = array('name' => MENU_ACTION_ARCHIVED, 'link' => chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?do=news&amp;action=archive'));
     $arrNamePage[] = array('name' => $year, 'link' => false);
     //смещение, всегда 0 (затем берется из $_GET)
     $offset = !empty($_GET['offset']) && validate::checkNaturalNumber($_GET['offset']) ? validate::checkNaturalNumber($_GET['offset']) : 0;
     //получаем массив, содержащий текущий обработанный URL
     $path = CONF_SCRIPT_URL . 'index.php?do=news&amp;action=archive&amp;year=' . $year . '&amp;page=offset&amp;';
     $strWhere = "token IN ('archived') AND YEAR(`datetime`)=" . secure::escQuoteData($year);
     $arrOrderBy = array('datetime' => 'DESC');
     $arrLimit = array('strLimit' => $offset . ',' . CONF_NEWS_PERPAGE, 'calcRows' => true);
     $arrNews = $news->getNewses($strWhere, $arrOrderBy, $arrLimit, false);
     // формируем страницы
     // получаем общее количество новостей
     $allRecords = $news->cntNews();
     // формируем странциы
     $strPages = strings::generatePage($allRecords, $offset, CONF_NEWS_PERPAGE, $path);
     //передаем в шаблон строку сформированных страниц
     $smarty->assignByRef('string_page', $strPages);
     // массив всех новостей
     $smarty->assignByRef('news', $arrNews);
     // для блока боковой части
     $currMonth = terms::currentDateTime('n');
     $smarty->assignByRef('currMonth', $currMonth);
} else {
    /**
     * действия с объявлениями
     */
    isset($_POST['arrVacData']['action']) ? !$vacancy->actionAnnounces($_POST['arrVacData']) ? messages::messageChangeSaved(ERROR_NOT_SAVE_CHANGE, false, CONF_ADMIN_FILE . '?m=announces&amp;s=vacancys') : messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=announces&amp;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();
    isset($_GET['order']) && ('act_datetime' === $_GET['order'] || 'token_datetime' === $_GET['order']) && isset($_GET['by']) && ('ASC' === $_GET['by'] || 'DESC' === $_GET['by']) ? $arrOrderBy[$_GET['order']] = $_GET['by'] : ($arrOrderBy = 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('active', $strWhere, $arrLimit, $arrOrderBy));
    $allRecords = $vacancy->cntAnnounces();
    // получаем общее количество объявлений
    $smarty->assignByRef('allRecords', $allRecords);
Ejemplo n.º 27
0
 /**
  * Функция отправляет пользователю сообщение о том, что его статья удалена
  *
  * @param (array) $arrData - массив данных статьи
  *
  * @return void
  */
 public function sendUserDeletedArticle(&$arrData)
 {
     /** Получаем данные пользователя **/
     $user = new user();
     if ($uData = $user->getUser("id IN (" . secure::escQuoteData($arrData['id']) . ")")) {
         $mailer = new mailer();
         // массив для замены в шаблоне
         $mailer->setAddReplace(array('%ARTICLE_TITLE%' => $arrData['title'], '%COMMENTS%' => CONF_MAIL_FORMAT_HTML ? nl2br($arrData['comments']) : $arrData['comments']));
         // отправляем письмо администратору
         $mailer->sendEmail(CONF_MAIL_ADMIN_EMAIL, CONF_SITE_NAME, false, $uData['email'], $uData['first_name'], MAIL_MODERATE_ARTICLES_DELETED . ': ' . $arrData['title'], 'user.article.deleted.txt');
         unset($mailer);
         // уничтожаем объект
     }
     unset($user);
     // уничтожаем объект
 }
Ejemplo n.º 28
0
  */
 if (!empty($_POST['action'])) {
     // отображение на главной
     if ('show' === $_POST['action'] && !empty($_POST['companies'])) {
         $user->updateConfUser(array('main_logo' => 1), 'id IN (' . implode(',', secure::escQuoteData(array_keys($_POST['companies']))) . ')');
         messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=users&s=companies');
     }
     // удаление с главной
     if ('remove' === $_POST['action'] && !empty($_POST['companies'])) {
         $user->updateConfUser(array('main_logo' => 0), 'id IN (' . implode(',', secure::escQuoteData(array_keys($_POST['companies']))) . ')');
         messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=users&s=companies');
     }
     // сортировка
     if ('sorting' === $_POST['action'] && !empty($_POST['sort'])) {
         foreach ($_POST['sort'] as $key => $value) {
             $user->updateConfUser(array('sort_logo' => $value), 'id IN (' . secure::escQuoteData($key) . ')');
         }
         messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=users&s=companies');
     }
 }
 //смещение, всегда 0 (затем берется из $_GET)
 $offset = isset($_GET['offset']) ? (int) abs($_GET['offset']) : 0;
 //получаем массив, содержащий текущий обработанный URL
 $path = CONF_ADMIN_FILE . '?m=users&s=companies&&amp;';
 $strWhere = "conf_users.token IN ('active') AND conf_users.user_type IN ('company')";
 $strLimit = $offset . ',' . CONF_COMPANIES_STRINGS_PERPAGE_ADMIN_PANEL;
 $arrOrderBy = array('conf_users.main_logo' => 'DESC', 'conf_users.sort_logo' => 'ASC', 'conf_users.logo' => 'DESC');
 $arrCompanies = $user->getCombinedUsersData(false, $strWhere, $arrOrderBy, $strLimit);
 $allRecords = $user->cntUsers();
 // формируем странциы
 $strPages = strings::generatePage($allRecords, $offset, CONF_COMPANIES_STRINGS_PERPAGE_ADMIN_PANEL, $path, true);
Ejemplo n.º 29
0
 // если пользователь уже вошел на сайт, не пускаем его в форму авторизации
 if ($user->getAuthorized()) {
     messages::error404();
 } else {
     $return_data = array('email' => false);
     // сохраняем в сесиию рефер-ссылку
     !isset($_SESSION['referer']) && secure::checkServerCalls() && isset($_GET['do']) && !strpos($_SERVER['HTTP_REFERER'], $_GET['do']) ? $_SESSION['referer'] = $_SERVER['HTTP_REFERER'] : null;
     if (!empty($_POST['email']) && !empty($_POST['password'])) {
         if (validate::postDataNotEmpty()) {
             // проверяем капчу
             if (isset($_POST['keystring'])) {
                 $securimage = new securimage();
                 !$securimage->check($_POST['keystring']) ? $arrErrors[] = ERROR_CAPTCHA : null;
             }
             $_POST['remember'] = isset($_POST['remember']) ? true : false;
             if ($user->issetUser("email IN (" . secure::escQuoteData($_POST['email']) . ") AND password IN ('" . md5($_POST['password']) . "') AND token IN ('active', 'new')")) {
                 if ($user->authorizeUser($_POST['email'], $_POST['password'], $_POST['remember'])) {
                     unset($_SESSION['user_fail_auth']);
                     if (isset($_SESSION['referer']) && !strstr($_SESSION['referer'], 'do=payments')) {
                         $referer = $_SESSION['referer'];
                         unset($_SESSION['referer']);
                         die('<script type="text/javascript">window.location="' . $referer . '";</script>');
                     } else {
                         die('<script type="text/javascript">window.location="' . chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?do=user.data') . '";</script>');
                     }
                 } else {
                     $arrErrors[] = ERROR_AUTHORIZE_ACCOUNT_NOT_ACTIVATE;
                 }
             } else {
                 $arrErrors[] = ERROR_DATA;
             }
Ejemplo n.º 30
0
 /**
  * Метод получает данные из БД
  *
  * @param array $arrData - массив
  *
  * @return array or bool
  */
 public function getStoringData($arrData)
 {
     if (is_array($arrData) && !empty($arrData)) {
         // валидация типа записи
         if (empty($arrData['type']) || !in_array($arrData['type'], $this->arrTypes)) {
             return false;
         }
         // валидация массива
         if (!isset($arrData['arrIds']) || !is_array($arrData['arrIds'])) {
             return false;
         } else {
             foreach ($arrData['arrIds'] as $index => $id) {
                 if (!strings::ifInt($id)) {
                     unset($arrData['arrIds'][$index]);
                 }
             }
             // проверка на пустой массив
             if (empty($arrData['arrIds'])) {
                 return false;
             }
         }
         // массивы - псевдонимы таблиц и поля, которые необходимо выбрать
         $arrConf['tableFields'] = array(array('storing', 'id'), array('storing', 'id_content'), array('storing', 'id_user'), array('storing', 'ip'), array('storing', 'datetime'), array('users', 'email'), array('users', 'first_name'), array('users', 'last_name'), array('users', 'middle_name'), array('users', 'phone'), array('conf_users', 'addition_phone_1'), array('conf_users', 'addition_phone_2'), array('conf_users', 'user_type'), array('conf_users', 'company_name'), array('conf_users', 'company_city'), array('conf_users', 'company_description'), array('conf_users', 'logo'));
         // джоины с условием
         $arrConf['leftJoins'] = array(array('table' => array(USR_PREFIX . 'users', 'users'), 'on' => "storing.id_user=users.id"), array('table' => array(DB_PREFIX . 'conf_users', 'conf_users'), 'on' => "storing.id_user=conf_users.id"));
         // условие запроса
         $arrConf['strWhere'] = "storing.type IN (" . secure::escQuoteData($arrData['type']) . ") " . "AND storing.id_content IN (" . implode(',', secure::escQuoteData($arrData['arrIds'])) . ") " . "AND conf_users.user_type IN ('company')";
         // подсчет строк
         $arrConf['calcRows'] = false;
         // LIMIT
         $arrConf['strLimit'] = false;
         if ($this->getSubSelectEntrys(false, true, $arrConf)) {
             return $this->retData();
         } else {
             return false;
         }
     } else {
         return false;
     }
 }