public function rssVacancy($period = false)
 {
     // получаем объект вакансий
     global $vacancy;
     // получаем массив селекта "Раздел"
     global $arrDataSections;
     global $arrDataProfessions;
     // получаем массив селекта "Регион"
     global $arrDataRegions;
     global $arrDataCitys;
     $strWhere = $period ? "act_datetime>=DATE_ADD(CURRENT_TIMESTAMP, INTERVAL -" . $period . " DAY)" : false;
     $link = chpu::createChpuUrl($this->_host . 'index.php?do=yvl');
     $arrLimit = array('strLimit' => '0,' . $this->_limit, 'calcRows' => false);
     $arrVacancy = $vacancy->getActiveAnnounces($arrLimit, $strWhere);
     /*		 * *** Формируем XML-документ **** */
     $currDT = terms::currentDateTime();
     $data = '<?xml version="1.0" encoding="' . $this->_charset . '"?>' . "\n" . '<source creation-time="' . terms::currentDateTime() . ' ' . $this->_timeZone . '" host="' . $this->_host . '">' . "\n" . '  <vacancies>' . "\n";
     $defCurrency = 'USD';
     if (!empty($arrVacancy)) {
         foreach ($arrVacancy as $value) {
             $date = strtotime($value['act_datetime']) ? strtotime($value['act_datetime']) : time();
             // проверяем, если компания агентство, значит берем название агентства
             // если не агентство, смотрим, если не путое назв. комп, берем его
             // инчае ФИО
             if ($value['user_type'] === 'agent') {
                 $agent = 'true';
                 $name = $value['agent_name'];
             } else {
                 $agent = 'false';
                 if (!empty($value['company_name'])) {
                     $name = $value['company_name'];
                 } else {
                     $name = $value['contacts_fio'];
                 }
             }
             if (isset($arrDataCitys[$value['id_city']])) {
                 $location = $arrDataRegions[$value['id_region']]['name'] . ', ' . $arrDataCitys[$value['id_city']]['name'];
             } else {
                 $location = $arrDataRegions[$value['id_region']]['name'];
             }
             // Проверяем зарплату. Проверяем только ЗП до
             // если пустое, значит оговаривается при собеседовании
             //$value['pay_from'] . $value['pay_post']
             $salary = !empty($value['pay_post']) ? $value['pay_post'] : 'оговаривается при собеседовании';
             $data .= '    <vacancy>' . "\n" . '      <url>' . chpu::createChpuUrl($this->_host . 'index.php?do=vacancy&amp;action=view&amp;id=' . $value['tId']) . '</url>' . "\n" . '      <creation-date>' . date('Y-m-d H:i:s', $date) . ' ' . $this->_timeZone . '</creation-date>' . "\n" . '      <salary>' . $salary . '</salary>' . "\n" . '      <currency>' . (!empty($value['currency']) ? $value['currency'] : $defCurrency) . '</currency>' . "\n" . '      <category>' . "\n" . '        <industry>' . $arrDataSections[$value['id_section']]['name'] . '</industry>' . "\n" . '        <specialization>' . $arrDataProfessions[$value['id_profession']]['name'] . '</specialization>' . "\n" . '      </category>' . "\n" . '      <job-name>' . $value['title'] . '</job-name>' . "\n" . '      <addresses>' . "\n" . '        <address>' . "\n" . '          <location>' . $location . '</location>' . "\n" . '        </address>' . "\n" . '      </addresses>' . "\n" . '      <company>' . "\n" . '        <name>' . $name . '</name>' . "\n" . '        <hr-agency>' . $agent . '</hr-agency>' . "\n" . '      </company>' . "\n" . '    </vacancy>' . "\n";
         }
     }
     $data .= '  </vacancies>' . "\n" . '</source>';
     return $data;
 }
Exemple #2
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();
}
 /**
  * public функция записывает данные объявления из БД в переменную переданную по ссылке
  *
  * @var reference - ссылка на переменную для записи данных объявления
  *
  * return bool
  */
 public function setEditData(&$reference, $checkUserId = true)
 {
     $arrAnnData = $this->retAnnSubj();
     if (!empty($checkUserId) && !empty($arrAnnData['id_user']) && !isset($_SESSION['sd_user']['job_conf']['id'])) {
         die('<script type="text/javascript">window.location="' . chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?do=authorize') . '";</script>');
     } elseif (!empty($checkUserId) && !empty($arrAnnData['id_user']) && $_SESSION['sd_user']['job_conf']['id'] !== $arrAnnData['id_user']) {
         return false;
     } else {
         $reference['arrServiceFields'] = array_diff_key($arrAnnData, $this->arrBindFields, $this->arrNoBindFields);
     }
     $reference['arrBindFields'] = array_intersect_key($arrAnnData, $this->arrBindFields);
     $reference['arrNoBindFields'] = array_intersect_key($arrAnnData, $this->arrNoBindFields);
     return true;
 }
 /**
  * Функция отправляет жалобу на комментарий
  *
  * @param array $arrComment - массив данных комментария
  * @param array $arrNews - массив данных новости
  * @param string $recipient - адрес получателя
  *
  * @return bool
  */
 public function sendComplaintComment($arrComment, $arrNews, $recipient)
 {
     $mailer = new mailer();
     // проверяем, кому уходит письмо
     if (CONF_MAIL_ADMIN_EMAIL == $recipient) {
         $newsLink = CONF_SCRIPT_URL . CONF_ADMIN_FILE . '?m=manager&s=news&do=filter&id=' . $arrNews['id'] . '&id_user=&author=&title=&sDate=&eDate=&records=';
     } else {
         $newsLink = chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?do=news&amp;action=view&amp;id=' . $arrNews['tId']);
     }
     // массив для замены в шаблоне
     $mailer->setAddReplace(array('%NEWS_TITLE%' => $arrNews['title'], '%NEWS_LINK%' => $newsLink, '%COMPLAINT_DATE%' => date(terms::dateFormatFromSmarty(CONF_DATE_FORMAT, CONF_TIME_FORMAT), strtotime(terms::currentDateTime())), '%COMMENT_DATE%' => date(terms::dateFormatFromSmarty(CONF_DATE_FORMAT, CONF_TIME_FORMAT), strtotime($arrComment['datetime'])), '%AUTHOR%' => $arrComment['name'], '%COMMENT_TEXT%' => CONF_MAIL_FORMAT_HTML ? nl2br($arrComment['text']) : $arrComment['text']));
     // отправляем письмо администратору
     return $mailer->sendEmail(CONF_MAIL_ADMIN_EMAIL, CONF_SITE_NAME, false, $recipient, false, MAIL_SUBJ_NEWS_COMMENTS_COMPLAINT, 'news.comments.complaint.txt');
 }
Exemple #5
0
     // получаем общее количество новостей
     $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);
     //$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);
     //передаем в шаблон строку сформированных страниц
Exemple #6
0
 /**
  * функция отсылает строку запроса к БД
  * получает и отправляет на обработку результат запроса
  * возвращает одну строку результата в виде массива данных
  *
  * @param (string) $strQuery - строка запроса к БД
  *
  * @return array массив данных
  */
 static function dbSingleQuery($strQuery)
 {
     self::dbQuery($strQuery);
     $row = self::dbGetRow();
     if (!empty(self::$tIdForce)) {
         if (defined('CONF_ENABLE_CHPU') && defined('CONF_ENABLE_TRANSLITERATION_CHPU') && CONF_ENABLE_CHPU && CONF_ENABLE_TRANSLITERATION_CHPU) {
             chpu::chpuTranslit($row);
         } elseif (!empty($row)) {
             $row['tId'] =& $row['id'];
         }
         // сбрасываем флаг свойства self::$tIdForce
         self::$tIdForce = false;
     }
     /**
      * Проверяем значение идентификатора записи tId (ЧПУ с транслитерацией)
      * Должно совпадать со значением хранимым в глобале $_GET['tId']
      * Иначе в URL запрошен некорректный адрес страницы - выдаем страницу ошибки HTTP/1.0 404 Not Found
      */
     if (!empty($_GET['tId']) && !empty($row['tId']) && $row['tId'] != $_GET['tId']) {
         messages::error404();
     }
     return $row;
 }
Exemple #7
0
$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'] . '&amp;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;
    }
}
                $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();
}
                 switch ($state) {
                     case 'moderate':
                         $user_type = 'employer' === $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] ? 'employer' : 'competitor';
                         // очищаем куки и сессию пользователя
                         $user->clearUserSessionAndCookie();
                         messages::messageChangeSaved(MESSAGE_ACCOUNT_MODERATE, MESSAGE_ACCOUNT_MODERATE_TEXT, chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $user_type), 10000);
                         break;
                     case 'active':
                         messages::messageChangeSaved(MESSAGE_REGISTER_SUCCESS, false, chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&amp;do=user.data'));
                         break;
                     case 'payment':
                         $user_type = 'employer' === $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] ? 'employer' : 'competitor';
                         $_SESSION['payment'] = array('service' => 'register_' . strtolower($_POST['type']), 'id' => $_SESSION['sd_user']['data']['id'], 'user_type' => $_POST['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 . '&amp;do=payments'), 10000);
                         break;
                 }
             } else {
                 $arrErrors[] = ERROR_NOT_CHANGE_DATA;
             }
         }
     } else {
         $arrErrors[] = ERROR_EMPTY_FIELDS;
         $smarty->assign('return_data', array('type' => $_POST['type'], 'first_name' => $_POST['first_name'], 'last_name' => $_POST['last_name'], 'phone' => $_POST['phone']));
     }
 } else {
     $arrErrors[] = ERROR_NOT_SELECT_GROUP;
     $smarty->assign('return_data', array('type' => '', 'first_name' => $_POST['first_name'], 'last_name' => $_POST['last_name'], 'phone' => $_POST['phone']));
 }
 $smarty->assignByRef('errors', $arrErrors);
Exemple #10
0
*/
$arrAction = array('news' => false, 'articles' => false, 'vacancy' => false, 'resume' => false);
// определяем контент для отображения
isset($_GET['action']) && isset($arrAction[$_GET['action']]) ? $arrAction[$_GET['action']] = true : null;
/**
* Показываем НОВОСТИ
*/
if ($arrAction['news']) {
    $rss = new rss();
    header("Content-type: application/rss+xml");
    echo $rss->rssNews();
    exit;
} elseif ($arrAction['articles']) {
    $rss = new rss();
    header("Content-type: application/rss+xml");
    if (isset($_GET['subaction']) && 'section' === $_GET['subaction'] && !empty($_GET['id']) && ($id = chpu::getId_out_tId($_GET['id']))) {
        echo $rss->rssArticles($id);
    } else {
        echo $rss->rssArticles();
    }
    exit;
} elseif ($arrAction['vacancy']) {
    // инициируем объект
    $rss = new rss();
    header("Content-type: application/rss+xml");
    if (isset($_GET['subaction']) && ('section' === $_GET['subaction'] || 'region' === $_GET['subaction']) && isset($_GET['id']) && (int) abs($_GET['id'])) {
        echo $rss->rssVacancy($_GET['subaction'], $_GET['id']);
    } else {
        echo $rss->rssVacancy();
    }
    exit;
 } elseif (isset($_POST['action'])) {
     // удаление
     if ('del' === $_POST['action'] && isset($_POST['subscr'])) {
         $strWhere = "id IN (" . implode(',', secure::escQuoteData(array_keys($_POST['subscr']))) . ")";
         $subscription->delSubscriptions($strWhere);
         messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&amp;do=subscription'));
     } elseif ('pay' === $_POST['action'] && isset($_POST['subscr'])) {
         // проверяем, чтобы в масиве была только одна подписка и получаем ее
         if (count($_POST['subscr']) === 1 && ($ps = each($_POST['subscr']))) {
             $_SESSION['payment'] = array('service' => 'subscr_' . $ps['value'], 'id' => $ps['key']);
             die('<script type="text/javascript">window.location="' . chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&amp;do=payments') . '";</script>');
         } else {
             messages::messageChangeSaved(MESSAGE_WARNING_PAYMENT_NO_MORE_THAN_ONE_RECORD, false, chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&amp;do=subscription'), 5000);
         }
     }
     messages::messageChangeSaved(MESSAGE_WARNING_NOT_SELECT_RECORDS, false, chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&amp;do=subscription'));
 }
 /**
  * ФОРМИРУЕМ СПИСКИ ПОДПИСОК
  */
 // передаем массив активных подписок
 $arrSubscr = $subscription->getSubscriptions("id_user IN (" . secure::escQuoteData($_SESSION['sd_user']['data']['id']) . ") AND token IN ('active')", false, false, false) or $arrSubscr = array();
 $statData['allSubscr'] = $subscription->cntSubscriptions();
 $smarty->assignByRef('subscriptions', $arrSubscr);
 $smarty->assignByRef('allRecords', $statData['allSubscr']);
 // проверяем, включены ли платные подписки
 // и получаем массив подписок ожидающих оплаты
 $arrPaySubscr = $arrPayments['subscr_vacancy'] || $arrPayments['subscr_resume'] ? $subscription->getSubscriptions("id_user IN (" . secure::escQuoteData($_SESSION['sd_user']['data']['id']) . ") AND token IN ('payment')", false, false, false) : false;
 // передаем массив подписок ожидающих оплаты
 $smarty->assign('paySubscr', $arrPaySubscr);
 /*		 * * ПОЛУЧАЕМ СТАТИСТИЧЕСКИЕ ДАННЫЕ О ПОДПИСКАХ ** */
 /**
  * protected функция производит запись данных в таблицу БД
  *
  * @param array $arrBindFields - массив полей обязательных для заполнения
  * @param array $arrNoBindFields - массив полей не обязательных для заполнения
  * @param string $typeAnnounce - тип объявления или false
  *
  * @return bool
  */
 protected function recSubscr(&$arrBindFields, &$arrNoBindFields, $typeAnnounce)
 {
     // Для подписок добавляемых с объявлением
     if (!empty($typeAnnounce) && !empty($arrNoBindFields['id_announce']) && isset($GLOBALS[$typeAnnounce])) {
         $objCaller =& $GLOBALS[$typeAnnounce];
         if (!($arrAnnounceData = $objCaller->retDataSubj())) {
             return false;
         }
         // заполняем период подписки из настройки панели администратора
         $arrBindFields['period'] = CONF_SUBSCRIPTIONS_ANNOUNCE_PERIOD;
         // запролняем сервисные поля
         $this->arrServiceFields = array_intersect_key($arrAnnounceData, $this->arrServiceFields);
     } else {
         // Проверяем тип подписки на платность
         // и количество бесплатных подписок пользователя
         if (!$this->arrPayments['subscr_' . $arrBindFields['type_subscription']] || $this->cntSubscriptions("id_announce IN ('0') AND id_user IN (" . secure::escQuoteData($_SESSION['sd_user']['data']['id']) . ") AND payment IN ('no') AND type_subscription IN (" . secure::escQuoteData($arrBindFields['type_subscription']) . ") AND token IN ('active')") < @constant('CONF_SUBSCRIPTIONS_FREE_' . strtoupper($arrBindFields['type_subscription']))) {
             // если доступны бесплатные подписки, формируем данные для добавления бесплатной подписки
             $this->arrServiceFields['token'] = 'active';
         } else {
             // если бесплатные подписки уже не доступны, формируем платную подписку
             $this->arrServiceFields['token'] = 'payment';
             $this->arrServiceFields['token_datetime'] = terms::calcDateTimeOfTerm(CONF_SUBSCRIPTIONS_PAYMENT_DELETE);
             $this->arrServiceFields['payment'] = 'yes';
         }
         $this->arrServiceFields['date_lastsend'] = terms::currentDate();
     }
     // записываем данные в таблицу
     $result = $this->setSubscrSubj($arrBindFields, $arrNoBindFields) && $this->addEntry() ? true : false;
     // если подписка не платная, возвращаем результат
     if ('payment' !== $this->arrServiceFields['token']) {
         return $result;
     } else {
         // иначе, формируем даные для оплаты и переадресовываем пользователя на страницу оплат
         // проверяем, есть ли у нас ID только что добавленной записи
         if (!($id = $this->getLine_id())) {
             // если нет, возвращаем false
             return false;
         } else {
             // иначе, формируем данные и переадресовываем пользователя на страницу оплат
             $_SESSION['payment'] = array('service' => 'subscr_' . strtolower($arrBindFields['type_subscription']), 'id' => $id);
             messages::messageChangeSaved(MESSAGE_SUBSCRIPTION_ADD_PAYMENT, MESSAGE_SUBSCRIPTION_ADD_PAYMENT_TEXT, chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&amp;do=payments'), 15000);
         }
     }
 }
 /**
  * public функция записывает данные объявления из БД в переменную переданную по ссылке
  *
  * @var reference - ссылка на переменную для записи данных объявления
  *
  * return bool
  */
 public function setEditData(&$reference, $checkUserId = true)
 {
     $arrAnnData = $this->retAnnSubj();
     if (!empty($checkUserId)) {
         if (!empty($arrAnnData['id_user']) && empty($_SESSION['sd_user']['job_conf']['id'])) {
             die('<script type="text/javascript">window.location="' . chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?do=authorize') . '";</script>');
         }
         if (!empty($arrAnnData['id_user']) && $_SESSION['sd_user']['job_conf']['id'] != $arrAnnData['id_user']) {
             return false;
         }
         if (!empty($arrAnnData['image'])) {
             foreach (explode(',', $arrAnnData['image']) as $image) {
                 @copy('uploads/images/photos/' . $image, 'uploads/temporary/' . $image);
             }
         }
     } else {
         $reference['arrServiceFields'] = array_diff_key($arrAnnData, $this->arrBindFields, $this->arrNoBindFields);
     }
     $reference['arrBindFields'] = array_intersect_key($arrAnnData, $this->arrBindFields);
     $reference['arrNoBindFields'] = array_intersect_key($arrAnnData, $this->arrNoBindFields);
     if (is_array($this->arrFieldsXmlData) && !empty($this->arrFieldsXmlData)) {
         foreach ($this->arrFieldsXmlData as $nameField => &$contentField) {
             if (!empty($arrAnnData[$nameField])) {
                 foreach ($arrAnnData[$nameField] as $key => &$valFields) {
                     $reference['arrFieldsXmlData'][$nameField][$key]['arrBindFields'] = isset($contentField[1]['arrBindFields']) ? array_intersect_key($valFields, $contentField[1]['arrBindFields']) : false;
                     $reference['arrFieldsXmlData'][$nameField][$key]['arrNoBindFields'] = isset($contentField[1]['arrNoBindFields']) ? array_intersect_key($valFields, $contentField[1]['arrNoBindFields']) : false;
                 }
             } else {
                 $reference['arrFieldsXmlData'][$nameField] = false;
             }
         }
     }
     return true;
 }
 /**
  * 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'] . '&amp;' : '';
     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 . '&amp;action=activate', '%ACTIVATE_LINK%' => CONF_SCRIPT_URL . 'index.php?' . $user_type . 'do=' . $typeAnnounce . '&amp;action=activate&amp;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&amp;s=' . $typeAnnounce . 's&amp;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&amp;action=' . $typeAnnounce . '&amp;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 . '&amp;action=payment&amp;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 . '&amp;action=view&amp;id=' . $arrAnnounceData['tId']), '%ADMIN_PANEL_LINK%' => CONF_SCRIPT_URL . CONF_ADMIN_FILE . '?m=announces&amp;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 . '&amp;action=view&amp;id=' . $arrAnnounceData['tId']), '%USER_PANEL_LINK%' => chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?do=user.announces&amp;action=' . $typeAnnounce . '&amp;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'] . '&amp;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;
     }
 }
Exemple #15
0
 */
$arrActions = array('detail' => false);
// определяем шаблон для отображения
isset($_GET['action']) && isset($arrActions[$_GET['action']]) ? $arrActions[$_GET['action']] = true : null;
if ($arrActions['detail']) {
    $arrFields = array(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', 'company_name'), array('conf_users', 'company_city'), array('conf_users', 'company_url'), array('conf_users', 'company_description'), array('conf_users', 'logo'), array('conf_users', 'hide_additional_company_data'));
    // если передан id компании
    if (isset($_GET['id']) && !empty($_GET['id'])) {
        if ($uData = $user->getCombinedUserData($_GET['id'], $arrFields)) {
            $smarty->assignByRef('uData', $uData);
            // инициируем "Наименование страницы" отображаемое в заголовке формы
            $arrNamePage = array(array('name' => MENU_COMPANIES, 'link' => chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&amp;do=companies')), array('name' => $uData['company_name'], 'link' => false));
            $strWhere = "id_user IN (" . secure::escQuoteData($_GET['id']) . ") AND token IN ('active')";
            $arrOrderBy = array('act_datetime' => 'DESC');
            $smarty->assign('vacancys', $vacancy->getAnnounces($strWhere, false, $arrOrderBy));
            $smarty->assign('link', chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&amp;do=vacancy&amp;action=view&amp;id='));
        } else {
            //$arrErrors[] = ERROR_SELECTED_COMPANY;
            messages::error404();
        }
    }
} else {
    // Формируем TITLE страницы
    $arrTitle = array();
    $seo = seo::getTitle('companies', $currLang);
    $arrTitle[] = array('name' => !empty($seo) ? $seo : MENU_COMPANIES);
    // СЕО данные
    $smarty->assign('meta_keywords', seo::getKeywords('companies', $currLang));
    $smarty->assign('meta_description', seo::getDescription('companies', $currLang));
    //смещение, всегда 0 (затем берется из $_GET)
    $offset = !empty($_GET['offset']) && is_numeric($_GET['offset']) && $_GET['offset'] > 0 ? $_GET['offset'] : 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;
    }
Exemple #17
0
        $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)) {
            // выполняем вход
            if ($_COOKIE['remh'] === $user->cookieUserHash($arrData)) {
                $user->authorizeUser($arrData['email'], $arrData['password'], false, true);
                die('<script type="text/javascript">window.location="' . chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type']) . '";</script>');
            } else {
                cookies::deleteAccessCookie();
            }
        } else {
            cookies::deleteAccessCookie();
        }
    } else {
        cookies::deleteAccessCookie();
    }
    if (!isset($_SESSION['sd_' . DB_PREFIX . 'codex'])) {
        // записываем в сессию права пользователя
        $_SESSION['sd_' . DB_PREFIX . 'codex'] = $group->setUserRights('guest', 'guest');
    }
    // определяем тип пользователя, по умолчанию
    $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] = !isset($_GET['ut']) ? 'competitor' : ('competitor' !== $_GET['ut'] && 'employer' !== $_GET['ut'] ? 'competitor' : $_GET['ut']);
 /**
  * функция выводит страницы [предыдущая] 1 2 3 4 … [следующая]
  * 
  * @param (int) $a - количество элементов в массиве
  * @param (int) $offset - смещение в массиве([$offset ... $offset+$q])
  * @param (int) $q - количество элементов на странице
  * @param (string) $path - текущая ссылка ("index.php?do=news&")
  * @param (bool) $noCHPU - параметр, указывающий что не нужно приводить сслыки к ЧПУ (по умолчанию FALSE). Параметр был введен для метода strings::generatePage - т.к. он используется и в админке и в польз. части, а в админке ЧПУ не нужно никогда. Параметр можно использовать и в др. необходимых местах.
  * 
  * @return (string) $out
  */
 static function generatePage($a, $offset, $q, $path, $noCHPU = false)
 {
     $out = '<span style="block_pages">';
     if ($a > $q) {
         $offset % $q ? $offset = $q : null;
         /***** Левая часть строки *****/
         // [prev]
         if ($offset > 0) {
             $out .= '<a href="' . chpu::createChpuUrl($path . 'offset=' . ($offset - $q), $noCHPU) . '" class="pages" rel="nofollow">&lt;&nbsp;</a>&nbsp;';
         } else {
             $out .= '';
         }
         // digital links
         $k = $offset / $q;
         // не более 3 страниц слева
         $min = $k - 3;
         if ($min < 0) {
             $min = 0;
         } else {
             if ($min >= 1) {
                 $out .= '<a href="' . chpu::createChpuUrl($path . 'offset=0', $noCHPU) . '" class="pages" rel="nofollow">1</a>&nbsp;';
                 $min != 1 ? $out .= '...&nbsp;' : null;
             }
         }
         for ($i = $min; $i < $k; $i++) {
             $m = $i * $q + $q;
             $m > $a ? $m = $a : null;
             $out .= '<a href="' . chpu::createChpuUrl($path . 'offset=' . $i * $q, $noCHPU) . '" class="pages" rel="nofollow">' . ($i + 1) . '</a>&nbsp;';
         }
         /*****************************************/
         /***** Текущая страница (центр строки) *****/
         if (strcmp($offset, 'show_all')) {
             $min = $offset + $q;
             $min > $a ? $min = $a : null;
             $out .= '<span class="curr_page">' . ($k + 1) . '</span>&nbsp;';
         } else {
             $min = $q;
             $min > $a ? $min = $a : null;
             $out .= '<a href="' . chpu::createChpuUrl($path . 'offset=0', $noCHPU) . '" class="pages" rel="nofollow">1</a>&nbsp;';
         }
         /*****************************************/
         /***** Правая часть строки *****/
         // не более 3 страниц справа
         $min = $k + 4;
         $min > $a / $q ? $min = $a / $q : null;
         for ($i = $k + 1; $i < $min; $i++) {
             $m = $i * $q + $q;
             $m > $a ? $m = $a : null;
             $out .= '<a href="' . chpu::createChpuUrl($path . 'offset=' . $i * $q, $noCHPU) . '" class="pages" rel="nofollow">' . ($i + 1) . '</a>&nbsp;';
         }
         if ($min * $q < $a) {
             $min * $q < $a - $q ? $out .= '...&nbsp;' : null;
             $pg_offset = !($a % $q) ? $a - $q : $a - $a % $q;
             $out .= '<a href="' . chpu::createChpuUrl($path . 'offset=' . $pg_offset, $noCHPU) . '" class="pages" rel="nofollow">' . ceil($a / $q) . '</a>&nbsp;';
         }
         /*****************************************/
         //[next]
         if (strcmp($offset, 'show_all')) {
             if ($offset < $a - $q) {
                 $out .= '<a href="' . chpu::createChpuUrl($path . 'offset=' . ($offset + $q), $noCHPU) . '" class="pages" rel="nofollow">&nbsp;&gt;</a> ';
             } else {
                 $out .= '';
             }
         }
         //[show all]
         /*
         if ($all)
         {
         	if (strcmp($offset, 'show_all'))
         	{
         		$out .= ' |&nbsp; <a href="' . chpu::createChpuUrl($path . 'offset=show_all', $noCHPU) . '" class="pages" rel="nofollow">все</a>';
         	}
         	else
         	{
         		$out .= ' |&nbsp; <B>все</B>';
         	}
         }
         */
     } else {
         return '&nbsp;';
     }
     return $out . '</span>';
 }
Exemple #19
0
    if ($arrCompanies = $user->getCombinedUsersData($arrFields, $strWhere, false, false)) {
        foreach ($arrCompanies as $value) {
            $xml .= '<url><loc>' . chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?do=companies&amp;action=detail&amp;id=' . $value['tId']) . '</loc><priority>0.5</priority><changefreq>daily</changefreq></url>' . "\n";
        }
    }
    // Работаем со списком вакансий
    $xml .= '<url><loc>' . chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=competitor&amp;do=vacancy') . '</loc><priority>1.0</priority><changefreq>hourly</changefreq></url>' . "\n";
    // Работаем с вакансиями по городам
    foreach ($arrDataRegions as $value) {
        $xml .= '<url><loc>' . chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=competitor&amp;do=vacancy&amp;action=regions&amp;id=' . $value['tId']) . '</loc><priority>1.0</priority><changefreq>hourly</changefreq></url>' . "\n";
    }
    // Работаем с вакансиями по разделам
    foreach ($arrDataSections as $value) {
        $xml .= '<url><loc>' . chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=competitor&amp;do=vacancy&amp;action=sections&amp;id=' . $value['tId']) . '</loc><priority>1.0</priority><changefreq>hourly</changefreq></url>' . "\n";
    }
    // Работаем со списком резюме
    $xml .= '<url><loc>' . chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=employer&amp;do=resume') . '</loc><priority>1.0</priority><changefreq>hourly</changefreq></url>' . "\n";
    // Работаем с резюме по городам
    foreach ($arrDataRegions as $value) {
        $xml .= '<url><loc>' . chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=employer&amp;do=resume&amp;action=regions&amp;id=' . $value['tId']) . '</loc><priority>1.0</priority><changefreq>hourly</changefreq></url>' . "\n";
    }
    // Работаем с резюме по разделам
    foreach ($arrDataSections as $value) {
        $xml .= '<url><loc>' . chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=employer&amp;do=resume&amp;action=sections&amp;id=' . $value['tId']) . '</loc><priority>1.0</priority><changefreq>hourly</changefreq></url>' . "\n";
    }
    $xml .= '</urlset>';
    die($xml);
} else {
}
$smarty->assignByRef('errors', $arrErrors);
$smarty->assignByRef('arrActions', $arrActions);
Exemple #20
0
/**
* @package
* @todo
*/
!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;
Exemple #21
0
         //передаем в шаблон строку сформированных страниц
         $smarty->assignByRef('strPages', $strPages);
         // СЕО данные
         $smarty->assign('meta_keywords', MENU_ARTICLES . ', ' . $section['name']);
         $smarty->assign('meta_description', MENU_ARTICLES . ' - ' . $section['name']);
         $arrAction['section'] = true;
     } else {
         messages::error404();
     }
 } elseif ('view' === $_GET['action'] && !empty($_GET['id']) && validate::checkNaturalNumber($_GET['id'])) {
     if ($article = $articles->getPublishedArticle("id IN (" . secure::escQuoteData($_GET['id']) . ")")) {
         if (!empty($sections['full'][$article['id_section']])) {
             $smarty->assignByRef('article', $article);
             //var_dump ($section = $artsections -> getSectionById($article['id_section']));
             $section = $sections['full'][$article['id_section']];
             $arrNamePage = array(array('name' => MENU_ARTICLES, 'link' => chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&amp;do=articles')), array('name' => $section['name'], 'link' => chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&amp;do=articles&amp;action=section&amp;id=' . $section['tId'])), array('name' => $article['title'], 'link' => false));
             // Формируем TITLE страницы
             $arrTitle = array();
             CONF_ARTICLES_TITLE_SECTION_SITE ? $arrTitle[] = array('name' => MENU_ARTICLES) : null;
             CONF_ARTICLES_TITLE_SECTION_ARTICLE ? $arrTitle[] = array('name' => $section['name']) : null;
             CONF_ARTICLES_TITLE_ARTICLE_NAME ? $arrTitle[] = array('name' => $article['title']) : null;
             // проверка голосований за статью
             // проверяем наличие id статьи в куках пользователя
             // если $vote = true, значит пользователь уже голосовал за статью
             $vote = isset($_COOKIE['artvote']) && $_COOKIE['artvote'] ? !in_array($article['id'], explode(':', $_COOKIE['artvote'])) ? false : true : false;
             // проверяем ip последнего голосовавшего
             !$vote ? $_SERVER['REMOTE_ADDR'] === $article['ip_last'] ? $vote = true : null : null;
             $smarty->assignByRef('vote', $vote);
             // СЕО данные
             $smarty->assignByRef('meta_keywords', $article['meta_keywords']);
             $smarty->assignByRef('meta_description', $article['meta_description']);
Exemple #22
0
            !$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'] . '&amp;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);
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'] . '&amp;do=search.resume&amp;id_section=' . $arrFields['id_section'] . '&amp;id_profession=' . $arrFields['id_profession'] . '&amp;id_region=' . $arrFields['id_region'] . '&amp;id_city=' . $arrFields['id_city'] . '&amp;chart_work=' . $arrFields['chart_work'] . '&amp;expire_work=' . $arrFields['expire_work'] . '&amp;education=' . $arrFields['education'] . '&amp;age_from=' . $arrFields['age_from'] . '&amp;age_post=' . $arrFields['age_post'] . '&amp;pay_from=' . $arrFields['pay_from'] . '&amp;pay_post=' . $arrFields['pay_post'] . '&amp;currency=' . $arrFields['currency'] . '&amp;gender=' . $arrFields['gender'] . '&amp;user_type=' . $arrFields['user_type'] . '&amp;period=' . $arrFields['period'] . '&amp;records=' . $arrFields['records'] . '&amp;';
            // формируем странциы
            $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'] . '&amp;do=resume&amp;action=view&amp;id=');
            $smarty->assignByRef('return_data', $arrData['result']);
            $smarty->assignByRef('string_page', $strPages);
        } else {
            $arrErrors[] = MESSAGE_NOT_FOUND_RECORDS;
        }
    }
}
// имя страницы
$arrNamePage = array(array('name' => MENU_SEARCH_RESUME, 'link' => chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&amp;do=search')), array('name' => MENU_ADVANCED_SEARCH_RESUME, 'link' => chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&amp;do=search.resume')));
$smarty->assignByRef('retFields', $arrFields);
$smarty->assignByRef('errors', $arrErrors);
 /**
  * Функция отправляет пользователю сообщение о том, что его статья возвращена на редактирование
  *
  * @param (array) $arrData - массив данных статьи
  *
  * @return void
  */
 public function sendUserCorrectionArticle(&$arrData)
 {
     /** Получаем данные пользователя **/
     $user = new user();
     if ($uData = $user->getUser("id IN (" . secure::escQuoteData($arrData['id']) . ")")) {
         $mailer = new mailer();
         // массив для замены в шаблоне
         $mailer->setAddReplace(array('%ARTICLE_TITLE%' => $arrData['title'], '%PUBLICATION_DATE%' => date(terms::dateFormatFromSmarty(CONF_DATE_FORMAT, CONF_TIME_FORMAT), strtotime($arrData['datetime'])), '%COMMENTS%' => CONF_MAIL_FORMAT_HTML ? nl2br($arrData['comments']) : $arrData['comments'], '%DELDATE%' => date(terms::dateFormatFromSmarty(CONF_DATE_FORMAT, CONF_TIME_FORMAT), strtotime(terms::calcDateTimeOfTerm(CONF_ARTICLES_CORRECTION_THERM))), '%USER_PANEL_LINK%' => chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?do=user.articles&amp;action=correction')));
         // отправляем письмо администратору
         $mailer->sendEmail(CONF_MAIL_ADMIN_EMAIL, CONF_SITE_NAME, false, $uData['email'], $uData['first_name'], MAIL_MODERATE_ARTICLES_CORRECTION . ': ' . $arrData['title'], 'user.article.correction.txt');
         unset($mailer);
         // уничтожаем объект
     }
     unset($user);
     // уничтожаем объект
 }
Exemple #25
0
        $arrNamePage = array(array('name' => MENU_ANNOUNCES_NAVIGATOR, 'link' => false), array('name' => FORM_RESUMES_HEAD, 'link' => chpu::createChpuUrl($path . '&amp;action=regions')), array('name' => $arrDataRegions[$arrDataCitys[$id]['parent_id']]['name'], 'link' => chpu::createChpuUrl($path . '&amp;action=regions&amp;id=' . $arrDataRegions[$arrDataCitys[$id]['parent_id']]['tId'])), array('name' => $arrDataCitys[$id]['name'], 'link' => false));
        if (!empty($arrDataCitys[$id]['title'])) {
            $smarty->assignByRef('page_title', $arrDataCitys[$id]['title']);
        }
        if (!empty($arrDataCitys[$id]['meta_keywords'])) {
            $smarty->assignByRef('meta_keywords', $arrDataCitys[$id]['meta_keywords']);
        }
        if (!empty($arrDataCitys[$id]['meta_description'])) {
            $smarty->assignByRef('meta_description', $arrDataCitys[$id]['meta_description']);
        }
    } elseif (isset($_GET['id'])) {
        messages::error404();
    } else {
        $smarty->assign('return_data', false);
        // инициируем "Наименование страницы" отображаемое в заголовке формы
        $arrNamePage = array(array('name' => MENU_ANNOUNCES_NAVIGATOR, 'link' => false), array('name' => FORM_RESUMES_HEAD, 'link' => chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&amp;do=resume&amp;action=regions')));
    }
} elseif (!empty($arrActPage['vip']) || !empty($arrActPage['hot'])) {
    $offset = isset($_GET['offset']) ? (int) abs($_GET['offset']) : 0;
    //смещение, всегда 0 (затем берется из $_GET)
    $status = !empty($arrActPage['vip']) ? 'vip' : 'hot';
    $arrLimit = array('strLimit' => $offset . ', ' . CONF_ANNOUNCE_PERPAGE_SITE, 'calcRows' => true);
    $smarty->assign('return_data', $resume->getActiveAnnounces($arrLimit, $status));
    $allRecords = $resume->cntAnnounces();
    $path = CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&amp;do=resume';
    $strPages = strings::generatePage($allRecords, $offset, CONF_ANNOUNCE_PERPAGE_SITE, $path . '&amp;action=' . $status . '&amp;page=offset&amp;');
    // формируем страницы
    $smarty->assign('link', $path . '&amp;action=view&amp;id=');
    $smarty->assignByRef('string_page', $strPages);
    //передаем в шаблон строку сформированных страниц
    // инициируем "Наименование страницы" отображаемое в заголовке формы
Exemple #26
0
     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;
         }
     } else {
         $arrErrors[] = ERROR_EMPTY_FIELDS;
     }
     // Если есть ошибки, сохраняем в сессии количество входов, для вывода капчи.
     $arrErrors ? isset($_SESSION['user_fail_auth']) ? $_SESSION['user_fail_auth']++ : ($_SESSION['user_fail_auth'] = 1) : null;
     $return_data['email'] = $_POST['email'];
 }
 // проверяем, нужно ли выводить капчу
 /**
  * protected функция отправки пользователю сообщения о том, что на сайт его добавил администратор
  *
  * @param (array) $arrData - Данные пользователя array('email' => email, 'password' => password)
  *
  * @return void
  */
 protected function addUserSendEmail($arrData)
 {
     $mailer = new mailer();
     $mailer->setAddReplace(array('%AUTHORIZE_LINK%' => chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?do=authorize'), '%USER_LOGIN%' => $arrData['email'], '%USER_PASSWORD%' => $arrData['password']));
     $mailer->sendEmail(CONF_MAIL_ADMIN_EMAIL, false, false, $arrData['email'], false, MAIL_SUBJ_ADM_USER_ADD, 'user.add.admin.txt');
 }