Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

Вы не зашли.

#1 2010-03-11 11:09:48

Trashcka
Участник
Откуда КиевГрад
Зарегистрирован: 2008-12-04
Сообщений: 1,487
Рейтинг :   73 

Как сделать авто замену новостей в плагине favorites

Можно ли сделать, чтобы добавляя новость в закладки, она сдвигала прошлые новости, т.е. есть к примеру в закладках вывод 4 новостей
новость 01
новость 02
новость 03
новость 04

добавляем еще новость - новость 09 на выходе получаем
новость 09
новость 01
новость 02
новость 03

Он по ходу и сейчас так вроде делает, но никак не могу понять логику его работы, т.к. иногда заменяет, а иногда нет.

Изменено Trashcka (2010-03-11 11:10:03)

Не в сети

#2 2010-03-11 11:44:18

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: Как сделать авто замену новостей в плагине favorites

Ну в админке указывается количество выводимых новостей, например $number = 10

В самом плагине делается SQL запрос к БД на извлечение опубликованных новостей в диапазоне от 0 до $number, которые помечены как favorite:

select alt_name, postdate, title, views, catid from ".prefix."_news where favorite = '1' and approve = '1' limit 0,$number

Вот и вся логика

Не в сети

#3 2010-03-11 12:26:01

Trashcka
Участник
Откуда КиевГрад
Зарегистрирован: 2008-12-04
Сообщений: 1,487
Рейтинг :   73 

Re: Как сделать авто замену новостей в плагине favorites

Wolverine, это я поняла, но а чего иногда есть авто-замена, а иногда нет, этой логики не пойму.

Не в сети

#4 2010-03-11 12:34:37

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: Как сделать авто замену новостей в плагине favorites

Вся логика содержится в запросе smile Что ему сказали извлечь, то он и сделал. Он берет первые 10 favorite записей из таблицы news. Если ты добавляешь старые новости в фаворит, то создается иллюзия, что он что-то заменяет, а если новые записи, то они банально могут не попасть в выборку, так как все 10 записей будут из старых публикаций.

То есть плагин не может определить, что добавилось в последнюю очередь в закладки, чтобы вывести эти записи чуть повыше. Он всегда выдаст первые 10 новостей из таблицы с новостями. Для решения этой проблемы можно создать в таблице news какое-нибудь новое поле типа favorite_postdate, в которое при создании или редактировании новости записывать дату добавления в фавориты и в запросе делать сортировку по этому полю ORDER BY favorite_postdate roll

А просто по дате добавления можно и сейчас сделать ORDER BY postdate DESC

Изменено Wolverine (2010-03-11 13:06:30)

Не в сети

Подвал раздела

Работает на FluxBB