Орла
Области
Компаний
Пользователи
Галерея
Фиксированные новости
Орла
Отзывы о фирмах
Тарифы
Пользователи
Области
Банкоматы
Торговые точки
Доска объявлений
Курсы валют
Скидки
организации Орла
организации области
товары
сайты
сайты Орел
Данные
Разделы
Поиск
Поиск запросы
Статистика
Показы каталога организаций
Статистика клиенты
Пользователи
Сайты
Управление сайтом
Анкета
Аптеки
Афиша
Афиша новая
Баннеры
Бизнес >
Викторина
Голосование
Гость на сайте
Истории
Календарь событий
Каталоги >
Конкурс красоты
Конкурс аудио
Консультации
Меню
Новое на сайте
Новости >
Организации >
Программа ТВ
Публикации
Разделы сайта
Рассылка
Рестораны
Секрет фирмы >
Сервисы >
Ссылки
Тесты
Файловый менеджер
Форум
Фотогалерея
Обратная связь
Недвижимость
Новый год
Тексты
Пользователи
Юридический рейтинг
Отзывы на товары
Бан пользователей
Жалобы
Новые тесты
Коронавирус
Файловый менеджер
Имя файла
VacanciesReader.php
Содержимое
<?php namespace app\vacancies; use App; /** * Класс для поиска вакансий * Class VacanciesReader * @package app\vacancies */ class VacanciesReader { const SORT_BY_DATE = 0; const SORT_BY_PRICE = 1; /** * Ключевое слово * @var null|String */ private $_word = null; /** * Категорию, в которых ищем, если категорий нет * игнорируем это поле * @var array */ private $_categories = []; /** * Заработная плата от включительно * @var null */ private $_salary = null; /** * Лимит записей на страницу * @var int */ private $_limit = 15; /** * Сколько записей пропустить. * @var int */ private $_offset = 0; private $_sort = 0; private $_priceFrom; private $_id; private $_userId = null; /** * В этой переменной будет находиться SQL запрос, после вызова query() * @var */ private $_sql = null; public function __construct() { return $this; } public function setUserId($userId) { $this->_userId = (int)$userId; return $this; } public function getUserId() { return $this->_userId; } public function setWord($word) { if ($word === null) { return $this; } $this->_word = trim(htmlspecialchars(str_replace(['"', "'"], '', $word))); return $this; } public function setCategories($categoryId) { if ($categoryId === null || $categoryId == 0) { return $this; } $this->_categories[] = (int)$categoryId; return $this; } public function setSalary($salary) { if ($salary <= 0) { return $this; } $salary = str_replace(' ', '', $salary); $this->_salary = (int)$salary; return $this; } public function setLimit($limit) { if ($limit === null) { return $this; } $this->_limit = $limit; return $this; } public function setSort($sort) { if ($sort == null) { return $this; } if ($sort == 'price') { $this->_sort = self::SORT_BY_PRICE; } return $this; } public function setId($id) { $this->_id = (int)$id; return $this; } public function setOffset($offset) { if ($offset === null) { return $this; } $this->_offset = $offset; return $this; } public function setPage($page) { if ($page === null) { return $this; } return $this->setOffset(($page-1) * $this->_limit); } private function getWhereFragment() { $whereFragment = []; if ($this->_id > 0) { $whereFragment[] = 'job.id = ' . $this->_id; } else { if ($this->_word != null) { $whereFragment[] = '((job.name LIKE "%' . $this->_word . '%") OR (job.note LIKE "%' . $this->_word . '%") OR (job.wishes LIKE "%' . $this->_word . '%") OR (job.obajz LIKE "%' . $this->_word . '%"))'; } if (count($this->_categories) > 0) { $whereFragment[] = 'job.id_razdel IN (' . implode(',', $this->_categories) . ')'; } if ($this->_salary > 0) { $whereFragment[] = 'job.zarplata_ot >= ' . $this->_salary; } if ($this->_userId > 0) { $whereFragment[] = 'job.id_user = ' . (int)$this->_userId; } } if (App::$user->isGuest() || App::$adminList->getLocalLevel(App::$user->getUserLogin()) < 500) { $whereFragment[] = 'job.status = 3'; } if (count($whereFragment) == 0) { return ''; } return ' WHERE ' . implode(' AND ', $whereFragment); } public function getAll() { $sql = ' SELECT job.*, job_razdel.name as razdel_name, job_opyt.name as skill_name, job_grafik.name as job_grafik_name, job_zanyat.name as job_zanyat_name, job_obrazov.name as job_obrazov_name, firma.name as firma_name, firma.id as firma_id, firma.client_logo as firma_client_logo FROM job LEFT JOIN job_opyt ON job_opyt.id = job.id_opyt LEFT JOIN job_grafik ON job_grafik.id = job.id_grafik LEFT JOIN job_razdel ON job_razdel.id = job.id_razdel LEFT JOIN job_zanyat ON job_zanyat.id = job.id_zanyat LEFT JOIN job_obrazov ON job_obrazov.id = job.id_obrazov LEFT JOIN job_and_organizations ON job_and_organizations.job_id = job.id LEFT JOIN firma ON firma.id = job_and_organizations.organization_id '; //$whereFragment = $this->getWhereFragment(); //if ($whereFragment !== null) { $sql .= $this->getWhereFragment(); //} switch ($this->_sort) { case self::SORT_BY_DATE: $sql .= ' ORDER BY job.priority desc, job.data desc'; break; case self::SORT_BY_PRICE: $sql .= ' ORDER BY job.priority desc, job.zarplata_ot desc'; break; } $sql .= ' LIMIT ' . $this->_offset . ','. $this->_limit; $command = App::$command->createCommand($sql); $items = $command->queryAll(); foreach ($items as $key => $item) { $items[$key]['name'] = str_replace([':', '\\'], '', $items[$key]['name']); } return $items; } public function getTotal() { $sql =' SELECT COUNT(job.id) as total FROM job '; $whereFragment = $this->getWhereFragment(); if ($whereFragment !== null) { $sql .= $whereFragment; } $command = App::$command->createCommand($sql); return $command->queryOne('total', 0); } }
/app/vacancies/
Имя
Дата
Размер
..
2026-10-01
activerecord
2016-12-07
forms
2017-03-29
Vacancies.php
2017-08-16
2 кб.
VacanciesCategory.php
2017-03-23
2 кб.
VacanciesCity.php
2016-12-22
611 байт
VacanciesEducation.php
2016-12-22
540 байт
VacanciesExperience.php
2016-12-22
554 байт
VacanciesGrafik.php
2016-12-22
314 байт
VacanciesReader.php
2017-03-30
6 кб.
VacanciesZanyatost.php
2016-12-22
318 байт
VacancyMessages.php
2017-03-30
2 кб.
VacancyOwner.php
2017-03-27
2 кб.
/app/vacancies
Загрузить файлы
Файл 1
Файл 2
Файл 3