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

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

Вы не зашли.

#1 2010-10-24 12:15:19

oldvovk
Участник
Зарегистрирован: 2010-10-14
Сообщений: 137
Рейтинг :   
Сайт

Новый старый плагин archive

Не найдено по поиску, решил создать тему.

В принципе работа плагина archive устраивает. Но, есть одно маленькое но из пожеланий.
Оно в общем-то и не так нужно, но лучше для пользователя, если все же захочется полазать
по архивам.

Сейчас вывод ограничен 12 месяцами. Хотелось бы не делать ограничений, но и не развозить
портянку. Сделать свернутый архив - к примеру как на whets.ru, там simpl arhiv используется. Понятно, что добавится лишний запрос, возможно увеличится время, ))) но "больше плагинов хороших и разных"

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

Что имеем

foreach($mysql->select("SELECT year(from_unixtime(postdate)) AS 'year',COUNT(id) AS 'cnt' FROM ".prefix."_news WHERE approve = '1' GROUP BY year(from_unixtime(postdate)) ORDER BY postdate DESC") as $row2){
$year_link = checkLinkAvailable('news','by.year')?
generateLink('news','by.year',array('year' => $row2['year'])):
generateLink('core','plugin',array('plugin' => 'news','handler' => 'by.year'));
$yvars['vars'] = array('link' => $year_link,'title' => $row2['year'],'cnt' => $row2['cnt']);
$yvars['regx']["'\[counter\](.*?)\[/counter\]'si"] = $counter?'$1':'';
$tpl -> vars('entries',$yvars);
$result.= $tpl -> show('entries');
}

foreach($mysql->select("SELECT month(from_unixtime(postdate)) as 'month',year(from_unixtime(postdate)) as 'year',COUNT(id) AS 'cnt' FROM ".prefix."_news WHERE approve = '1' GROUP BY year(from_unixtime(postdate)),month(from_unixtime(postdate)) ORDER BY postdate DESC") as $row){
$month_link = checkLinkAvailable('news','by.month')?
generateLink('news','by.month',array('year' => $row['year'],'month' => sprintf('%02u',$row['month']))):
generateLink('core','plugin',array('plugin' => 'news','handler' => 'by.month'),array('year' => $row['year'],'month' => sprintf('%02u', $row['month'])));
$mvars['vars'] = array('link' => $month_link,'title' => $langMonths[$row['month']-1],'cnt' => $row['cnt']);
$mvars['regx']["'\[counter\](.*?)\[/counter\]'si"] = $counter?'$1':'';
$tpl -> vars('entries',$mvars);
$result2.= $tpl -> show('entries');
}

В итоге вроде 2 запроса по которым получаем выборку по годам и выборку по месяцам с годом.
А как вот теперь месяцы растащить под свой год. Или я не в ту степь роюсь и не так? И можно как то и в тп в плагине скрипт применить.

Изменено oldvovk (2010-10-24 12:16:04)

Не в сети

#2 2010-10-24 12:48:29

vitaly
Администратор
Откуда Россия
Зарегистрирован: 2008-10-08
Сообщений: 2,823
Рейтинг :   118 

Re: Новый старый плагин archive

oldvovk, а зачем второй запрос?
Делаешь один запрос по месяцам, а уже в плагине собираешь из них года.

Не в сети

#3 2010-10-24 13:04:19

oldvovk
Участник
Зарегистрирован: 2010-10-14
Сообщений: 137
Рейтинг :   
Сайт

Re: Новый старый плагин archive

Ладно, по первому я собрал года, вывел. Далее, надо чтобы при клике на год развернулся архив по месяцам. sad Но это ж без второго не сделать или можно, но как я не знаю.

Не в сети

#4 2010-10-24 16:02:43

vitaly
Администратор
Откуда Россия
Зарегистрирован: 2008-10-08
Сообщений: 2,823
Рейтинг :   118 

Re: Новый старый плагин archive

oldvovk, а ты первым сразу получай год+месяц+кол-во_за_месяц и группируй по годам уже скриптом smile

Не в сети

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

Работает на FluxBB