<?=$this->render($this->macros('news', 'related_links'), 'news/relatedlinks') ?>
Пример вызова
udata://news/related_links/(vse_novosti/novosti_ekonomiki/belorussiya_otmenit)/notemplate/3
XML-ответ UData
<udata module="news" method="related_links" generation-time="0.011270">
<items>
<item
id="80"
link="/vse_novosti/novosti_ekonomiki/belorussiya_otmenit_kvoty_na_sigarety1/"
xlink:href="upage://80">
Белоруссия отменит квоты на сигареты из России
</item>
<item
id="73"
link="/vse_novosti/novosti_ekonomiki/rossiya_i_belorussiya_otkazalis/"
xlink:href="upage://73">
Россия и Белоруссия отказались от ограничений во взаимной торговле
</item>
</items>
</udata>
Элементы и атрибуты
<item>
Элемент, содержащий данные об отдельной новости, связанной с указанной новостью. Значение элемента — название страницы новости.
- @id
-
Идентификатор страницы связанной новости.
- @link
-
Ссылка на страницу полного текста связанной новости.
- @xlink:href
-
Ссылка UPage на страницу полного текста связанной новости.
Параметр template определяет шаблон, по которому выводится блок "связанные новости". Вы можете не указывать этот параметр, в этом случае для вывода содержания новости будет использован шаблон по умолчанию — default.tpl
.
Используемые блоки шаблона
related_block
Этот блок используется для оформления списка связанных новостей.
- %lines%
-
Выводит список связанных новостей, где каждая выводится по шаблону related_line .
- %related_links%
-
Дубликат макроса %lines%.
related_block_empty
Используется в том случае, если у новости element_path нет связанных новостей. Выводится вместо блока related_block.
related_line
Выводит отдельную связанную новость.
- %id%
-
Выводит id связанной новости.
- %name%
-
Выводит название связанной новости.
- %link%
-
Выводит ссылку на связанную новость.
- %list-class-first%
-
в случае, если элемент первый, выводит "first"
- %list-class-last%
-
в случае, если элемент последний, выводит "last"
- %list-class-odd%
-
в случае, если элемент четный, выводит "odd"
- %list-class-even%
-
в случае, если элемент нечетный, выводит "even"
- %list-position%
-
вставляет порядковый номер в списке
Примеры использования
Напишите в шаблон /tpls/news/default.tpl
следующее:
<?php
$FORMS = Array();
$FORMS['view'] = <<<END
%data getProperty(%id%, 'publish_pic', 'news.view')%
%content%
%news related_links(%id%)%
END;
$FORMS['related_block'] = <<<END
<div id="related_news">
<p>Список связанных новостей:</p>
<ul>
%lines%
</ul>
</div>
END;
$FORMS['related_line'] = <<<END
<li><a href="%link%"><b>%name%</b> (%system convertDate(%publish_time%, 'Y-m-d H:i')%)</a></li>
END;
$FORMS['related_block_empty'] = <<<END
<p>У этой новости нет связанных новостей</p>
END;
?>
Название
%news related_links()% — Выводит список последних новостей, связанных по сюжету с указанной новостью.
Параметры: news related_links(element_path [, template = 'default', limit = '3'])
- element_path
-
Путь до новости, для которой необходимо вывести список связанных новостей.
- template
-
Имя шаблона, по которому следует вывести список связанных новостей.
- limit
-
Число, которое ограничивает количество выводимых связанных новостей.
Описание
Выводит связанные новости с новостью, указанной в параметре element_path.
Связанные новости — это новости, которые имеют общий сюжет (соответствующее поле в редактировании новости). Сюжеты — это списки ключевых фраз, которые характеризуют содержание новости. Если есть несколько новостей, у которых совпадает как минимум 1 сюжет, они считаются связанными.
Такие новости будут выведены в списке связанных новостей и отсортированы по дате публикации в обратном порядке.