Регистрация
Вход через соцсети
Восстановление пароля

Создание архива новостей.

Новый топик
24.10.2012, 14:47
Ответить | Цитировать
nops
Веб-студия «СТО сайтов»

Зарегистрирован:
2009-01-05
Сообщений: 111

Все банально и просто, но вот я тормознулся и стою перед выбором, точнее даже думаю как лучше реализовать.
Значи есть корневой раздел новости, при его открытии открывается страница, которая поделена на 2 блока, в левом архив за прошлые года, а справа текущие новости.
С правым блоком все ясно и понятно, там доьбавлен компанент новостей и там добавляются новости и отображаются. В макете дизайна я вывожу в левом блоке, где должны быть архивы, примерно так:
Код:
<?= nc_objects_list(356,547,'nc_ctpl=515'); ?>

Там пока шаблон не сделан, дефолтный. Ну и в контентной части по жефолтному шаблону список новостей.
Вот в левом меню надо сделать группировку сначала по годам, при нажатии на год, должен открываться полный список новостей за этот год в кратком виде и при нажатии на новость открывалась полная новость.
Т.е. мне в левом блоке нужно сделать отображение всех новостей с группировкой по годам и отображением скажем 5 новостей в каждой из групп, а при полном просмотре года, выводились все новости этого года.

Вот мысль. вывожу примерно так:
Код:
<?= nc_objects_list(356,547,'nc_ctpl=515'); ?>

внутри этого шаблона вывожу так же:
Код:
<?= nc_objects_list(356,547,'nc_ctpl=516'); ?>
но используюя другой шаблон.
Вот думаю как такое сделать будет правильнее и как формировать и наследовать ссылки
24.10.2012, 18:06
Ответить | Цитировать
nops
Веб-студия «СТО сайтов»

Зарегистрирован:
2009-01-05
Сообщений: 111

Друзья.
У меня кое-что получилось, но все еще осталась одна проблема, с которой прошу помочь разобраться.
Итак.
В шаблоне макета дизайна я вывожу свой архив новостей таким вот образом:
Код:
<?= nc_objects_list(356,547,'nc_ctpl=515'); ?>

где 356 - ID раздела, 547 - ID инфоблока и 515 - шаблон компанента.
В этом шаблоне, я сделал следующее:
В префиксе прописал <? $date_year = date('Y'); ?> для назначения текущего года.
В "Объект в списке" прописал следующее:
Код:
<? 

$trans = array("%Year" => $f_Date_year);
if ($f_Date_year < $date_year) {echo strtr(nc_objects_list(356,547,'nc_ctpl=516'), $trans);}

?>

где собственно проверяю чтобы год публикации был меньше чем текущий.
Тут: 'nc_ctpl=516' я обращаюсь за формированием списка новостей по каждому году к новому шаблону компанента, в котором в суфиксе я указал: <div class="txt-2 p1">%Year г.</div> Тут пишется год.
и далее в объект в списке:
Код:
<p><a href="<?= $f_fullLink ?>"><?= $f_News ?></a></p>


В итоге, у меня выводятся все года, за которые есть новости, а так же выводится еще в каждом годе все подряд записи, а надо отсортировать, чтобы в 2011 скажем не было новости за 2010 и так далее.
Я пробовал прописать: if ($f_Date_year == "%Year") но это не работает естественно. Хоть визуально значения в $f_Date_year и %Year одинаковые, фактически они не равны и возникает неприятность.

Я пробовал создать новую переменную $Date = $F_Date_year; и прописывал ее в первом шаблоне, но увы, она не передается во второй шаблон и результат опять нулевойгрустный

Подскажите как можно решить такую проблему.
198 196 2012-10-24 18:06:14 12692
Описание проекта