Орла
Области
Компаний
Пользователи
Галерея
Фиксированные новости
Орла
Отзывы о фирмах
Тарифы
Пользователи
Области
Банкоматы
Торговые точки
Доска объявлений
Курсы валют
Скидки
организации Орла
организации области
товары
сайты
сайты Орел
Данные
Разделы
Поиск
Поиск запросы
Статистика
Показы каталога организаций
Статистика клиенты
Пользователи
Сайты
Управление сайтом
Анкета
Аптеки
Афиша
Афиша новая
Баннеры
Бизнес >
Викторина
Голосование
Гость на сайте
Истории
Календарь событий
Каталоги >
Конкурс красоты
Конкурс аудио
Консультации
Меню
Новое на сайте
Новости >
Организации >
Программа ТВ
Публикации
Разделы сайта
Рассылка
Рестораны
Секрет фирмы >
Сервисы >
Ссылки
Тесты
Файловый менеджер
Форум
Фотогалерея
Обратная связь
Недвижимость
Новый год
Тексты
Пользователи
Юридический рейтинг
Отзывы на товары
Бан пользователей
Жалобы
Новые тесты
Коронавирус
Файловый менеджер
Имя файла
CommentVote.php~
Содержимое
<?php namespace app\organizations; use app\comments\ICommentVote; use app\core\models\Command; use app\users\User; /** * Класс голосования за определенный комментарий или получения информации по голосованию за комментарий * Class CommentVote * @package app\organizations */ class CommentVote implements ICommentVote { /** * @var User */ private $_user; /** * @var Command */ private $_command; public function __construct(User $user, Command $command) { $this->_user = $user; $this->_command = $command; } /** * Функция проверяет, голосовал ли пользователь за этот комментарий или нет * @param $commentId * @param $sign * @return bool */ public function isVoted($commentId, $sign) { return $this->_command ->createCommand(' SELECT COUNT(id) as total FROM `firma_otzyv_users` WHERE sid = :sid AND comment_id = :comment_id AND sign = :sign ') ->bindValue(':comment_id', $commentId) ->bindValue(':sid', $this->_user->getSid()) ->bindValue(':sign', $sign) ->queryOne('total', 0) > 0; } /** * Функция голосования за комментарий * @param $commentId * @param $sign * @throws \Exception * @return boolean */ public function vote($commentId, $sign) { // Сначала пытаемся проголосовать за комментарий $set = ($sign > 0) ? 'yes = yes + 1' : 'no = no + 1'; $sql = ' UPDATE `firma_otzyv` SET ' . $set . ' WHERE id = :id '; $resultInsertVote = $this->_command ->createCommand($sql) ->bindValue(':id', $commentId) ->query(); if ($resultInsertVote == false) { throw new \Exception('Не удалось проголосовать за комментарий, попробуйте позже'); } // затем пытаемся записать это действие в историю голосов $resultInsertHistory = $this->_command ->createCommand(' INSERT INTO `firma_otzyv_users` (created_at, comment_id, sign, user_id, sid) VALUES(NOW(), :comment_id, :sign, :user_id, :sid) ') ->bindValue(':comment_id', $commentId) ->bindValue(':sign', $sign) ->bindValue(':user_id', $this->_user->getId()) ->bindValue(':sid', $this->_user->getSid()) ->query(); if ($resultInsertHistory == false) { throw new \Exception("Не удалось проголосовать за комментарий, попробуйте позже."); } return true; } public function getPlusVotes($commentId) { return $this->_command ->createCommand(' SELECT yes FROM `firma_otzyv` WHERE id = :id ') ->bindValue(':id', $commentId) ->queryOne('yes', 0); } public function getMinusVotes($commentId) { return $this->_command ->createCommand(' SELECT no FROM `firma_otzyv` WHERE id = :id ') ->bindValue(':id', $commentId) ->queryOne('no', 0); } public function deleteVote($commentId, $sign) { // Проверяем, есть ли такой комментарий if ($this->isVoted($commentId, $sign) == false) { return false; } $result = $this->_command ->createCommand(' DELETE FROM `firma_otzyv_users` WHERE comment_id = :comment_id AND sign = :sign AND sid = :sid ') ->bindValue(':comment_id', $commentId) ->bindValue(':sign', $sign) ->bindValue(':sid', $this->_user->getSid()) ->query(); if ($result == false) { return false; } if ($sign > 0) { $this->_command ->createCommand(' UPDATE `firma_otzyv` SET yes = yes - 1 WHERE id = :id ') ->bindValue(':id', $commentId) ->query(); } else { $this->_command ->createCommand(' UPDATE `firma_otzyv` SET no = no - 1 WHERE id = :id ') ->bindValue(':id', $commentId) ->query(); } return true; } }
/app/organizations/
Имя
Дата
Размер
..
2026-10-01
activerecord
2017-03-23
banners
2017-03-20
entity
2019-02-11
form
2020-04-06
helpers
2019-02-08
interfaces
2017-01-26
regions
2017-02-02
search
2019-02-12
shop
2020-04-06
statistic
2019-01-29
utils
2018-01-12
validators
2020-02-11
views
2018-01-16
Categories.php
2019-02-13
6 кб.
CommentVote.php
2024-08-23
5 кб.
CommentVote.php~
2017-01-26
5 кб.
Comments.php
2019-02-26
6 кб.
CommentsKarma.php
2017-01-26
308 байт
OrganizationCategory.php
2019-02-11
896 байт
OrganizationCategoryFactory.php
2018-01-12
1 кб.
OrganizationCategoryRepository.php
2019-02-12
2 кб.
OrganizationCommentsReader.php
2019-02-18
5 кб.
OrganizationEmails.php
2017-03-09
1 кб.
OrganizationFactory.php
2016-12-13
277 байт
OrganizationFiles.php
2017-02-15
645 байт
OrganizationIndexator.php
2017-08-18
349 байт
OrganizationNews.php
2019-08-23
2 кб.
OrganizationPhones.php
2019-02-11
7 кб.
OrganizationPhotos.php
2017-08-15
2 кб.
OrganizationRepository.php
2019-02-12
433 байт
OrganizationRubriks.php
2017-03-09
2 кб.
OrganizationSchedule.php
2018-01-12
2 кб.
OrganizationScheduleFactory.php
2018-01-12
844 байт
OrganizationSites.php
2020-04-09
1 кб.
OrganizationSlider.php
2019-08-12
1 кб.
OrganizationStatistics.php
2019-04-01
2 кб.
OrganizationVideos.php
2017-01-25
1 кб.
Organizations.php
2020-04-17
34 кб.
OrganizationsReader.php
2019-02-11
4 кб.
PhoneRepository.php
2019-02-11
1 кб.
Rating.php
2024-08-23
2 кб.
Rating.php~
2019-02-15
1 кб.
/app/organizations
Загрузить файлы
Файл 1
Файл 2
Файл 3