Простое облако тегов

Материал из Umicms
Версия от 11:23, 5 июня 2013; Mad grant (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к:навигация, поиск

Актуально для версии 2.9

Пример облака тегов на сайте, на основе демо шаблона Demodizzy (2.8.5.3)

В основном шаблоне layouts/default.xsl делаем вызов макроса %stat tagsCloud()% - который отображает собранное облако тегов.

<xsl:apply-templates select="document('udata://stat/tagsCloud//10/10')/udata/lines" mode="tags" />

первый параметр 10 - это максимальное количество тегов на страницу.
второй параметр 10 - это максимальное значение атрибута размер.

Теперь создаем шаблон для вывода этих тегов, для этого создаем новый template:

<xsl:template match="item" mode="tags">
	<strong style="font: {@font-size}pt/16pt sans-serif;">
		<a href="/content/pagesByDomainTags/{.}"><xsl:value-of select="." /></a>
	</strong><br />
</xsl:template>

Получилось что мы выводим облако тегов, которое в свою очередь будет нас направлять на страницу содержащую сведения о этих тегах, по сути будет отрабатывать макрос %content pagesByDomainTags()%

Теперь откроем файл xsltTpls/modules/content/common.xsl для оформления странички информации о тегах, и добавим туда шаблоны следующего содержания:

<xsl:template match="result[@module = 'content' and @method = 'pagesByDomainTags']">
	<xsl:apply-templates select="//udata/items" mode="pagesByTag" />
</xsl:template>

<xsl:template match="item" mode="pagesByTag"><br />
	<a href="{@link}"><xsl:value-of select="." /></a>
</xsl:template>

Все, теперь пользователи сайта могут находить тематичные страницы по собранным тегам на сайте.