Вывод последних зарегистрированных пользователей (XSLT)

Материал из Umicms
Версия от 19:26, 25 мая 2013; Velross (обсуждение | вклад) (Новая страница: «'''Задача''': Вывести на сайте список последних зарегистрированных на сайте пользователей (…»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к:навигация, поиск

Задача: Вывести на сайте список последних зарегистрированных на сайте пользователей (на примере шаблонов demodizzy).
Решение: Для решения задачи будем использовать макросы %users count_users()% и %users list_users()%.

Для начала, если Вы хотите чтобы список пользователей был виден всем пользователям сайта, а не только зарегистрированным, то необходимо изменить права на указанные макросы при помощи файла permissions.custom.php:

<?php
	$permissions = Array(
		             'registrate' => Array('list_users','count_users')
	                     );
?>

Так как макрос %users list_users()% выводит по умолчанию только 10 первых пользователей, то чтобы получить последних пользователей, нам необходимо будет использовать при вызове макроса пейджинг (udata://users/list_users/notemplate/10/?p=2).

Чтобы высчитать число последней страницы пейджинга, нам необходимо знать общее количество всех активированных пользователей на сайте(%users count_users()%)и количество пользователей выводимых макросом %users list_users()% на одну страницу (задаем самостоятельно).

В шаблоне дизайна (layouts/default.xsl) там, где мы хотим увидеть результаты своей работы, сделаем вызов темплейта с передачей параметра количества элементов выводимых на одной странице. Заметьте, что мы везде используем mode="lastreg":

<!-- @name="Вывод последних зарегистрированных пользователей" 
     @path="/modules/users/lastRegisteredUsers.xsl" 
-->
<xsl:apply-templates select="document('udata://users/count_users')/udata" mode="lastreg">
	<xsl:with-param name="perpage" select="10"/>
</xsl:apply-templates>

Разрабатываемая функциональность относится к модулю users, поэтому перейдем в папку /modules/users/ и скопируем какой-либо шаблон, сделав из него заготовку и переименовав lastRegisteredUsers.xsl. Также подключим созданный файл шаблона в файле common.xsl:

      <xsl:include href="lastRegisteredUsers.xsl" />
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet	version="1.0"
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
	xmlns:umi="http://www.umi-cms.ru/TR/umi">
	
	<!-- @name="Вывод последних зарегистрированных пользователей"
		 @import="common.xsl"
		 @call="/layouts/default.xsl" 
	-->

</xsl:stylesheet>