Русский English Deutsch Українська Қазақша

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

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

Вы не вошли.

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

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

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

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

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

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

Отредактировано Trashcka (2010-03-11 10:10:03)

Вне форума

#2 2010-03-11 10: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 11:26:01

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

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

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

Вне форума

#4 2010-03-11 11: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 12:06:30)

Вне форума

Сейчас в этой теме пользователей: 0, гостей: 1
[Bot] ClaudeBot

Подвал форума

Под управлением FluxBB 1.5.11
Модифицировал Visman

[ Сгенерировано за 0.012 сек, 7 запросов выполнено - Использовано памяти: 523.34 Кбайт (Пик: 550.52 Кбайт) ]