Список публикаций - list_pubs

Вывод новостей, статей и других записей типа "публикация"

Пример вызова компонента

{list_pubs id=$id spec="1" limit="70" assign="pubs"}

id - идентификатор страницы, публикации которой нужно вывести
alias - мнемонический код страницы, публикации которой нужно вывести
spec - если указано, то выводятся записи отмеченные, как важные
limit - количество записей. По умолчанию равно количеству записей на странице.
list_files_on - если 1, то в элементах массива публикаций подгружаются загруженные файлы
list_photos_on - если 1, то для элементов массива подгружаются все загруженные фото
assign - название переменной, куда записать результат

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

Получаемые данные

В результате вызова компонента получим переменную $pubs с массивом, содержащую следующие поля:

spec - all (все) или 1 (отмеченные, как важные)
all - количество записей
pages - постраничная навигация (html-код генерирующий ссылки на страницы, если записей больше, чем задано в поле limit)
options - массив характеристик публикаций
list - массив публикаций

Массив публикаций $pubs.list

id => идентификатор публикации
title => заголовок
intro => текст анонса
active => активная запись или нет (по умолчанию выводятся только активные)
content => содержимое записи
alias => мнемонический код записи (для построения URL)
views => количество просмотров
user_id => идентификатор пользователя, добавившего запись
user_login => логин пользователя
user_name => имя пользователя
user_gender => пол пользователя
icon => иконка для публикации
f_spec => метка важной публикации (1 или 0)
date_insert => дата добавления
date_update => дата последнего изменения
categ_title => заголовок страницы
categ_id => идентификатор страницы
categ_alias => мнемонический код страницы
categ2_title => заголовок страницы уровнем выше
categ2_id => идентификатор страницы уровнем выше
categ2_alias => мнемонический код страницы уровнем выше
categ3_title => заголовок страницы высшего уровня
categ3_id => идентикатор страницы высшего уровня
categ3_alias => мнемонический код страницы высшего уровня
monthviews => количество просмотров в месяц
fotos_qty => количество фото у записи
files_qty => количество файлов у записи
comments_qty => количество комментариев у записи
pic => массив с фото публикации (представлен отдельно ниже
link => ссылка на страницу
link_idn => ссылка на страницу для кириллических доменов
date => отформатированная дата публикации 
time => отформатированное время публикации
options => массив характеристик публикации (описан ниже)
list_files => список прикрепленных файлов, описан ниже
list_photos => список прикрепленных фото, описан ниже

Массив с фото $pubs.list.ID.pic

Выводится массив из 4-х размеров главного фото публикации (если загружено несколько, выводится первое)

[1] => Array
(
id => идентификатор фото
ext => расширение (jpg, gif и т.д.)
width => ширина фото
height => высота фото
title => название фото
url => полная ссылка на фото
)
 
[2] => Array
(
данные о фото в размере 2
)
 
[3] => Array
(
данные о фото в размере 3
)
 
[4] => Array
(
данные о фото в размере 4
)

Массив всех прикрепленных фото $pubs.list.ID.list_photos

Array
(
 [1] => Array
 (
   [1] => Array
   (
     url => ссылка на фото
     title => заголовок
     width => ширина
     height => высота
     id_in_record => число по порядку
     id => идентификатор фото
     ext => расширение
     ext_h1 => доп.заголовок
     ext_desc => доп.описание
     ext_link => доп.примечание
   )
   [2] => Array(
    размер 2 и т.д.
   )
 )
 [2] => фото 2 и т.д.
)

Характеристики публикации $pubs.list.ID.options

Array
(
 мнемонический код (alias) или ID => Array
 (
   id_product => идентификатор публикации 
   title => название
   value => значение
   after => текст после значения
   icon => иконка
   type => тип (val, int, select, connected, checkbox, multicheckbox, date, datetime, categ, products)
   group => идектификатор группы характеристик
   alias => мнемонический код
   opt_title => Название группы характеристик (если заголовок надо скрыть)
   to_show => кому показывать (all, info - для контент-менеджеров, manager - для менеджеров, user - для пользователей, hidden - скрытое)
   opt_value1 => Название характеристики 1
   opt_value2 => Название характеристики 2
   opt_value3 => Название характеристики 3
   value2 => Значение для характеристики 2
   value3 => Значение для характеристики 3
   group_title => Заголовок группы характеристик
 )
)
и так далее все характеристики

Загруженные файлы $pubs.list.ID.list_files

Array
(
 [ID] => Array
 (
   id => идентификатор
   url => ссылка на файл
   direct_url => ссылка на файл
   content => описание
   file => путь к файлу
   title => название
   ext => расширение
   size => размер файла
   id_in_record => номер по порядку
   allow_download => разрешено скачивание
   direct_link => разрешена прямая ссылка
   date => отформатированная дата файла
 )
)

Пример

Например, нам надо построить страницу со списком записей в блоке. Рассмотрим, как это сделать по шагам:

1. Создадим файл blog.html в шаблоне сайта.
2. Назначим этот шаблон для страницы Блог.
3. Далее наполним наш лог записями.
4. Теперь самое главное - открываем шаблон blog.html и вызываем компонент со списком записей на странице Блог.

{list_pubs alias="blog" limit="20" assign="pubs"}

Далее выведем данные и настроим их внешний вид:

{foreach from=$pubs.list value="v"}
 <p><img src="{$v.pic.1.url}" align="left"><a href="{$v.link}">{$v.title}</a><br>{$v.intro}</p>
{/foreach}

Всё, шаблон готов.

Типы списков

С помощью параметра spec можно задать такие виды списов:

connected - связанные с публикацией товары.
pub_connected - связанные с публикацией другие публикации.
wishlist - список отложенных для прочтения публикаций. 
show - показать конкретные публикации, их идентификаторы задаются параметром ids через запятую.
search - поиск по фразе, саму фразу можно задать параметром search.
last - последние публикации.
visited - вывод просмотренных публикаций.
by_option - вывод публикаций с характеристикой. Характристика задается в массиве by_option, где указывать id или alias характеристики и значение в элементе value.