Орла
Области
Компаний
Пользователи
Галерея
Фиксированные новости
Орла
Отзывы о фирмах
Тарифы
Пользователи
Области
Банкоматы
Торговые точки
Доска объявлений
Курсы валют
Скидки
организации Орла
организации области
товары
сайты
сайты Орел
Данные
Разделы
Поиск
Поиск запросы
Статистика
Показы каталога организаций
Статистика клиенты
Пользователи
Сайты
Управление сайтом
Анкета
Аптеки
Афиша
Афиша новая
Баннеры
Бизнес >
Викторина
Голосование
Гость на сайте
Истории
Календарь событий
Каталоги >
Конкурс красоты
Конкурс аудио
Консультации
Меню
Новое на сайте
Новости >
Организации >
Программа ТВ
Публикации
Разделы сайта
Рассылка
Рестораны
Секрет фирмы >
Сервисы >
Ссылки
Тесты
Файловый менеджер
Форум
Фотогалерея
Обратная связь
Недвижимость
Новый год
Тексты
Пользователи
Юридический рейтинг
Отзывы на товары
Бан пользователей
Жалобы
Новые тесты
Коронавирус
Файловый менеджер
Имя файла
Question.php
Содержимое
<?php namespace app\consult; use app\core\helpers\StringHelper; use app\core\http\Request; use app\core\models\Command; use app\users\User; class Question { /** * @var Command */ private $_command; /** * @var User */ private $_user; /** * @var Request */ private $_request; /** * Последний добавленный вопрос на сайт. * @var null|int */ private $_lastAddedQuestionId = null; public function __construct(User $user, Command $command, Request $request) { $this->_command = $command; $this->_user = $user; $this->_request = $request; } public function add($categoryId, $userName, $userEmail, $text, $image) { if ($image == null) { $image = ''; } $result = $this->_command ->createCommand(' INSERT INTO `faq` (id_user, user_name, email, vopros, otvet, data, status, id_razdel, ip, ip2, guest, img_index) VALUES(:id_user, :user_name, :email, :vopros, :otvet, NOW(), :status, :id_razdel, :ip, :ip2, :guest, :img_index) ') ->bindValue(':id_user', ($this->_user->isGuest()) ? 0 : $this->_user->getId()) ->bindValue(':user_name', ($this->_user->isGuest()) ? $userName : null) ->bindValue(':email', ($this->_user->isGuest()) ? $userEmail : null) ->bindValue(':vopros', StringHelper::noScript($text)) ->bindValue(':otvet', '') ->bindValue(':status', 1) ->bindValue(':id_razdel', $categoryId) ->bindValue(':ip', $this->_request->getIp()) ->bindValue(':ip2', $this->_request->getIpFromProxy()) ->bindValue(':guest', $this->_user->isGuest() == true ? 1 : 0) ->bindValue(':img_index', $image) ->query(); if ($result == true) { $this->_lastAddedQuestionId = \App::$pdo->lastInsertId(); return true; } return false; } /** * Функция возвращает последний добавленный ID вопроса. * @return int|null */ public function getLastAddedId() { return $this->_lastAddedQuestionId; } /** * Функция возвращает текст вопроса $questionId * @param $questionId * @return mixed|null */ public function getText($questionId) { return $this->_command ->createCommand(' SELECT id, vopros FROM `faq` WHERE id = :question_id ') ->bindValue(':question_id', $questionId) ->queryOne('vopros', null); } /** * Функция возвращает ID категории по ID вопроса. * @param $questionId * @return mixed|null */ public function getCategoryId($questionId) { return $this->_command ->createCommand(' SELECT id_razdel FROM `faq` WHERE id = :question_id ') ->bindValue(':question_id', $questionId) ->queryOne('id_razdel', null); } public function getQuestions($categoryId, $page, $limit) { $offset = ($page - 1) * $limit; return $this->_command ->createCommand(' SELECT faq.*, user.name as real_user_name FROM `faq` LEFT JOIN user ON user.id = faq.id_user WHERE faq.id_razdel = :category_id AND faq.status = 3 ORDER BY faq.id DESC LIMIT '.(int)$offset.',' . (int)$limit ) ->bindValue(':category_id', $categoryId) ->queryAll(); } /** * @param $categoryId * @return array */ public function getTotalQuestions($categoryId) { return $this->_command ->createCommand(' SELECT COUNT(*) as total FROM faq WHERE id_razdel = :category_id AND status = 3 ') ->bindValue(':category_id', $categoryId) ->queryOne('total', 0); } /** * Функция возвращает общее количество вопросов, на которых нет ответов. * @param $categoryId * @return int */ public function getTotalNotAnsweredQuestions($categoryId) { return $this->_command ->createCommand(' SELECT COUNT(*) as total FROM `faq` WHERE id_razdel = :category_id AND otvet = "" ') ->bindValue(':category_id', $categoryId) ->queryOne('total', 0); } /** * Функция возвращает список сообщений, на которые нет ответа от владельца раздела. * @param $categoryId * @return array */ public function getNotAnsweredMessages($categoryId) { return $this->_command ->createCommand(' SELECT * FROM faq WHERE id_razdel = :category_id AND otvet = "" ORDER BY id DESC ') ->bindValue(':category_id', $categoryId) ->queryAll(); } /** * Функция проверяет, есть ли такой вопрос в базе данных или нет. * @param $questionId * @return mixed|null */ public function isExist($questionId) { return $this->_command ->createCommand(' SELECT COUNT(*) as total FROM faq WHERE id = :id ') ->bindValue(':id', $questionId) ->queryOne('total', 0); } /** * Функция удаляет вопрос с сайта. * @param $questionId * @return bool */ public function delete($questionId) { return $this->_command ->createCommand(' DELETE FROM faq WHERE id = :id ') ->bindValue(':id', $questionId) ->query(); } /** * Функция возвращает все * @param $questionId * @return array */ public function getQuestion($questionId) { return $this->_command ->createCommand(' SELECT * FROM faq WHERE id = :id ') ->bindValue(':id', $questionId) ->queryOne(); } /** * Функция задает новый текст для вопроса. * @param $questionId * @param $text * @return bool */ public function setQuestionText($questionId, $text) { return $this->_command ->createCommand(' UPDATE `faq` SET vopros = :vopros WHERE id = :id ') ->bindValue(':id', $questionId) ->bindValue(':vopros', StringHelper::noScript($text)) ->query(); } public function setAnswerText($questionId, $text) { return $this->_command ->createCommand(' UPDATE `faq` SET otvet = :otvet, status = 3 WHERE id = :id ') ->bindValue(':id', $questionId) ->bindValue(':otvet', StringHelper::noScript($text)) ->query(); } /** * Функция удаляет ответ от пользователя. * @param $questionId * @return bool */ public function deleteAnswer($questionId) { return $this->_command ->createCommand(' UPDATE `faq` SET otvet = "", status = 1 WHERE id = :id ') ->bindValue(':id', $questionId) ->query(); } }
/app/consult/
Имя
Дата
Размер
..
2026-10-01
Categories.php
2017-01-27
3 кб.
Items.php
2017-02-16
2 кб.
Moderator.php
2017-08-11
5 кб.
Question.php
2017-04-06
8 кб.
QuestionForm.php
2026-05-25
2 кб.
QuestionForm.php~
2017-04-06
2 кб.
/app/consult
Загрузить файлы
Файл 1
Файл 2
Файл 3