Для отображения каталога статей для начала нужно в панели управления сайтом создать страницу каталога статей, с произвольным адресом страницы (например /articles
) и с шаблоном страницы Каталог статей (articles.html)
. В settings.xml
необходимо добавить следующее:
<!-- Каталог статей -->
<widget>
<type>dynamiclist</type>
<name>record_list</name>
<search>1</search>
<content>1</content>
<label>Список</label>
<fields>
<datatype>text</datatype>
<name>header</name>
<label>Заголовок</label>
<search>1</search>
</fields>
<fields>
<datatype>date</datatype>
<name>data</name>
<label>Дата</label>
</fields>
<fields>
<datatype>bigtext</datatype>
<name>descrip</name>
<label>Краткий текст</label>
<search>1</search>
</fields>
<uq>0</uq>
</widget>
Затем в шаблоне articles.html
в месте, где необходимо вывести статьи, нужно прописать следующий код:
<ul class="advert">
{% set onpage = 30 %}
{% set start = (xget('page', 1) - 1) * onpage %}
{% if xget('pkid') != '' %}
{% set filter = {} %}
{% set filter = xadd(filter, 'pkid', xget('pkid')) %}
<!-- Каталог статей -->
{% set widgetname = 'record_list' %}
{% set res = widgetDataByType(
'dynamiclist', {
widget_name: widgetname,
filter : filter,
start: start,
limit: onpage,
format: 1,
}
) %}
{% set list = res %}
{{getLangData(list[0]).__Main_Content | purify | raw}}
{% else %}
{% set filter = {} %}
{% set text = xget('text') %}
{% if (text != '') and (text is not null) %}
{% set filter = xadd(filter, '%text', text) %}
{% endif %}
<!-- Каталог статей -->
{% set widgetname = 'record_list' %}
{% set res = widgetDataByType(
'dynamiclist', {
widget_name: widgetname,
filter: filter,
start: start,
limit: onpage,
format: 2,
}
) %}
{% set list = res.data %}
{% set list_count = res.count %}
<div data-widget-name='{{widgetname}}'{% if user.isAdmin %} class='widget-render' data-href='{{link(urlGetAdd("/options/widget/settings/"~page.pkid~"/"~widgetname, "account", user.adminAccount))}}'{% endif %}>
{% if list|length == 0 %}
<center><i>Список пуст</i></center>
{% else %}
{% set i = 0 %}
{% for data in list %}
{# v_dump(data) #}
{% set dt = getLangData(data) %}
<li id="av_li">
<header>{{dt.header}}</header>
<p class="date">{{dt.data}}</p>
<p>{{dt.descrip | purify | raw}}</p>
<a href="?pkid={{data.pkid}}">Подробнее >></a>
</li>
{% set i = i + 1 %}
{% endfor %}
{% endif %}
</div>
{% endif %}
</ul>
CSS код:
.advert li#av_li {
padding: 10px 0 20px 0;
border-bottom: 1px #ccc dotted;
list-style: none;
}
.advert li header {
font-size: 14px;
font-weight: bold;
}
.advert li .date {
font-size: 11px;
color: #999;
margin: 0;
text-decoration: none;
}
.advert li a {
float: right;
}