Список публикаций - 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.