Пример реализации информационного блока новостей на CMS NetCat.
Манипуляции с формированием и выводом информации из БД в NetCat производятся посредством компонентов и шаблонов компонентов.
То есть начиная с версии 3.6 достаточно найти компонент "Пyбликaции: Hoвocти кoмпaнии" нажать кнопку "Добавить шаблон" и заполнить нужные поля:
// Префикс списка объектов: $f_AdminCommon <div class='nc_list nc_news'> ... // Объект в списке: $f_AdminButtons <div class='news'><small>$f_Date_day.$f_Date_month.$f_Date_year</small><p><a href='$fullLink'>$f_Title</a></p></div> ... // Суффикс списка объектов: </div> ... // Отображение объекта (по умолчанию): <div class='nc_full nc_news'> <h2>$f_Title</h2> <div class='nc_full_text'>$f_Text</div> ".opt( $cc_settings[DateStyle]!='disable' , "<div class='nc_datetime'>". opt( $cc_settings[DateStyle]!='time' , "<span class='nc_date'>$f_Date_day.$f_Date_month.$f_Date_year </span>" ). opt( $cc_settings[DateStyle]!='date' , "<span class='nc_time'>$f_Date_hours:$f_Date_minutes </span>" )."</div>" ) .opt( $f_SourceTitle || $f_SourceLink , "<div class='nc_source'><span>Источник: </span>".opt_case( $f_SourceTitle && $f_SourceLink , "<a href='$f_SourceLink'>$f_SourceTitle</a>", opt_case( !$f_SourceLink,$f_SourceTitle , "<a href='$f_SourceLink'>$f_SourceLink</a>" ) )."</div>" )." </div> ".(nc_module_check_by_keyword("comments") ? "<div class='nc_comments'>".$nc_comments->wall($f_RowID)."</div>" : "")."
Чтобы при вызове в макете дизайна:
<div class='type_block'> <h2>События</h2> <div class='nc_row'> ".s_list_class(15,5,'recNum=3&nc_ctpl=88')." </div> </div>
получить блок новостей с датой и заголовком новости в виде ссылки на полную новость (15 — раздел, 5 — компонент в разделе, 88 — номер шаблона компонента).
Раньше (до версии 3.6) все было немного (совсем немного) сложнее:
В поле "Объект в списке" того же компонента ("Пyбликaции: Hoвocти кoмпaнии") используем тернарный оператор получим следующее:
$f_AdminButtons // добавили проверку на существование и неравенство нулю переменной $isTitle и соответствуюищий шаблон вывода новостей если все ок ".($isTitle ? "<div class='news'><small>$f_Date_day.$f_Date_month.$f_Date_year</small><p><a href='$fullLink'>$f_Title</a></p></div>" : " <div class='nc_row'> ... То что здесь есть по умолчанию ... </div> ")." // добавили
Теперь в любом месте любого макета дизайна можно показать новости в кратком формате так:
<div class='type_block'> <h2>События</h2> <div class='nc_row'> <!--".s_list_class(15,5,'recNum=3&nc_ctpl=88')." для сравнения--> ".s_list_class(15,5,'recNum=3&isTitle=1')." </div> </div>
Отличий немного, а порядка в движке прибавилось. Отрадно.