Меню KDT

Страница "Каталог статей"

Пример её создания.

Для отображения каталога статей для начала нужно в панели управления сайтом создать страницу каталога статей, с произвольным адресом страницы (например /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;
}
Код обязательно должен обладать отступом (tabs).