Создание блока новостей в NetCat

Пример реализации информационного блока новостей на 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>

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

1 Comment

  • On 03.05.10 Юрий said:

    Я читал что не нужно выводить информацию функцией s_list_class() из-за большого количества запросов к базе и что можно воспользоваться функцией listQuery(),
    как с помощью этой функции можно организовать вывод?

Комментарии:

Вы можете использовать эти теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

*Required Fields