Меню KDT

Страница "Аудиогалерея"

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

Для отображения аудиогалереи для начала нужно в панели управления сайтом создать страницу аудиогалереи, с произвольным адресом страницы (например /audiogallery) и с шаблоном страницы Аудиогалерея (audios.html). Затем создать аудиогалерею, содержащую в себе хотя бы один альбом через страницу Аудиогалерея в панели управления сайтом. Теперь в шаблоне audios.html в месте, где необходимо вывести аудиогалерею, нужно прописать следующий код:

{{widgetRenderByType(
	'gallery', {
		widget_name: 'audiogallery',
		gallery_type: 'audio',
	}
)}}

audiogallery – имя виджета, указанное при создании аудиогалереи в панели управления сайтом.

Также есть такая конструкция, позволяющая создавать галереи вручную:

{% set a = widgetDataByType(
	'gallery', {
		widget_name: 'audiogallery',
		gallery_type: 'audio',
	}
) %}
{{v_dump(a)}}

Полный вариант:

{% set album = xget('album', 0) %}
{% set album = album == '' ? 0 : album %}
{% set mfile = xget('mfile') %}
{% set mtype = xget('mtype') %}
{% set gallery = widgetDataByType('gallery', {
	widget_name: 'audiogallery',
	gallery_type: 'audio',
}).data %}
{% if not mtype %}
	{% if album != 0 %}
		{% set selaudios = [] %}
		{% set selalbum = [] %}
		{% for item in gallery %}
			{% if item.pkid == album %}
				{% set selalbum = item %}
				{% set selaudios = item.content %}
			{% endif %}
		{% endfor %}
		<table>
			{% if selalbum.pkid == album %}
				<tr>
					<td><a href="{{UrlGetAdd(link(page.uri), 'album', selalbum.parent_pkid)}}">На уровень выше</a></td>
				</tr>
			{% endif %}
			<tr><td></td></tr>
			<tr>
				<td>Альбомы</td>
			</tr>
			{% for item in gallery %}
				{% if item.parent_pkid != 0 %}
					{% if item.parent_pkid == album %}
						<tr>
							<td><a href="{{UrlGetAdd(link(page.uri), 'album', item.pkid)}}">{{item.title}}</a></td>
						</tr>
					{% endif %}
				{% endif %}
			{% endfor %}
		</table>
		{% if selaudios|length > 0 %}
			<table>
				{% for key, audio in selaudios %}
					<tr>
						<td><a href="{{UrlGetAdd(link(page.uri), 'album', selalbum.pkid, 'mfile', key, 'mtype', audio.type)}}">audiofile {{audio.name}}</a></td>
					</tr>
				{% endfor %}
			</table>
		{% else %}
			Альбом пуст!
		{% endif %}
	{% else %}
		<table>
			<tr>
				<td>Альбомы</td>
			</tr>
			{% for item in gallery %}
				{% if item.parent_pkid == 0 %}
					<tr>
						<td><a href="{{UrlGetAdd(link(page.uri), 'album', item.pkid)}}">{{item.title}}</a></td>
					</tr>
				{% endif %}
			{% endfor %}
		</table>
	{% endif %}
{% else %}
	{% set selaudios = [] %}
	{% set selalbum = [] %}
	{% for item in gallery %}
		{% if item.pkid == album %}
			{% set selalbum = item %}
			{% set selaudios = item.content %}
		{% endif %}
	{% endfor %}
	<table>
		<tr>
			<td><a href="{{UrlGetAdd(link(page.uri), 'album', album)}}">Назад к списку</a></td>
		</tr>
	</table>
	{% set link = '' %}
	{% set ext = '' %}
	{% for key, item in selaudios %}
		{% if mfile == key %}
			{% set link = item.link %}
			{% set ext = item.link | getExtension %}
		{% endif %}
	{% endfor %}
	<div style="text-align: center; margin: 0 auto; width: 650px; border: 1px dotted grey;">
		<audio controls>
			<source src="{{link}}" type="audio/mpeg" />
			No audio support.
		</audio>
	</div>
{% endif %}
Код обязательно должен обладать отступом (tabs).