Создал набор, в котором выводятся лучшие посты, которые за определенное время голосования набрали наибольшее количество баллов рейтинга.
Для этого в таблицу cms_rating_log добавил колонку votedate, и добавил в компонент заполнение этой колонки временем голосования. Тут всё работает и замечательно добавляется время в колонку.
Потом создал поле контента, присвоил ему системное имя votedate и пытаюсь создать набор для вывода лучших постов за вчерашний день.
В наборе посты должны выводиться по убыванию рейтинга и с фильтрацией по votedate (не старше двух дней, не моложе одного).
Соответственно при выводе набора ожидаемо получаю ошибку:
Unknown column 'i.votedate' in 'where clause'
SELECT COUNT(i.id) as count
FROM cms_con_anec i
WHERE (i.votedate >= DATE_SUB(NOW(), INTERVAL 1 DAY)) AND (i.votedate < DATE_SUB(NOW(), INTERVAL 2 DAY)) AND (i.is_parent_hidden IS NULL) AND (i.is_approved = '1') AND (i.is_pub = '1')
Последние вызовы:
getCount() @ D:\open\OpenServer\domains\tren.ru\system\controllers\content\model.php: 1496
getContentItemsCount() @ D:\open\OpenServer\domains\tren.ru\system\controllers\content\frontend.php: 181
renderItemsList()
call_user_func_array() @ D:\open\OpenServer\domains\tren.ru\system\core\action.php: 29
__call() @ D:\open\OpenServer\domains\tren.ru\system\controllers\content\actions\category_view.php: 92
renderItemsList() @ D:\open\OpenServer\domains\tren.ru\system\controllers\content\actions\category_view.php: 92
run()
call_user_func_array() @ D:\open\OpenServer\domains\tren.ru\system\core\controller.php: 278
runExternalAction() @ D:\open\OpenServer\domains\tren.ru\system\core\controller.php: 209
runAction() @ D:\open\OpenServer\domains\tren.ru\system\controllers\content\frontend.php: 28
route()
Как в инструкции, написал $this->join('rating_log', 'r', 'r.target_id = i.id');
Пробовал засовывать это в разные места \system\controllers\content\model.php — никакого результата.
Кто может подсказать, в каком месте этой модели производится выборка из таблицы контента и как туда присоединить выборку из таблицы рейтинга?
______________________________________________________________________________________________________
Влепил в content\frontend.php строку
$total = $this->model->join('rating_log', 'r', 'r.target_id = i.id')->getContentItemsCount($ctype['name']);
Теперь ошибка выглядит так:
Unknown column 'i.votedate' in 'where clause' FROM cms_con_anec i WHERE (i.votedate >= DATE_SUB(NOW(), INTERVAL 1 DAY)) AND (i.votedate < DATE_SUB(NOW(), INTERVAL 2 DAY)) AND (i.is_parent_hidden IS NULL) AND (i.is_approved = '1') AND (i.is_pub = '1')