Выдано 109045 лицензий

How To: Вывод анонсов новостей

Новости являются отражением информационной системы. Вывод списка новостей осуществляется с использованием метода show() контроллера показа информационной системы Informationsystem_Controller_Show().

Контроллер показа информационной системы принимает экземпляр объекта Informationsystem_Model. Настройки показа информационной системы задаются через методы контроллера показа.

<?php
// Новости
if (Core::moduleIsActive('informationsystem'))
{
	$Informationsystem_Controller_Show = new Informationsystem_Controller_Show(
		Core_Entity::factory('Informationsystem', 1)
	);
	$Informationsystem_Controller_Show
		->xsl(
			Core_Entity::factory('Xsl')->getByName('СписокНовостейНаГлавной')
		)
		->groupsMode('none')
		->itemsForbiddenTags(array('text'))
		->group(FALSE)
		->limit(2)
		->show();
}
?>

В приведенном примере настроики показа осуществляются через методы:

  • xsl(Xsl_Model) — принимает экземпляр класса Xsl_Model;
  • groupsMode('none')— режим показа групп, может принимать следующие значения:
    • none — не показывать группы;
    • tree — показывать дерево групп и все группы на текущем уровне (по умолчанию);
    • all — показывать все группы.
  • group(FALSE) — идентификатор информационной группы, если FALSE, то вывод информационных элементов осуществляется из всех групп;
  • limit(2) — количество выводимых элементов;

Пример структуры блока новостей:

<p class="h1">Новости</p>
<dl class="news_list">
	<dt>14 марта 2008 г.</dt>
	<dd>
		<a href="/news/45/">
			NVIDIA готовит 55-нм версию G92 для схватки с AMD RV770?
		</a>
	</dd>
	<dt>14 марта 2008 г.</dt>
	<dd>
		<a href="/news/40/">
			Хижина дяди Тома продана за миллион долларов
		</a>
	</dd>
</dl>

XSL-шаблон для отображения анонса новостей:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0"
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
	xmlns:hostcms="http://www.hostcms.ru/"
	exclude-result-prefixes="hostcms">
	<xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict"
	doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" 
	encoding="utf-8" indent="yes" method="html" 
	omit-xml-declaration="no" version="1.0" 
	media-type="text/xml"/>

	<!-- СписокНовостейНаГлавной -->

	<xsl:template match="/">
		<xsl:apply-templates select="/informationsystem"/>
	</xsl:template>

	<xsl:template match="/informationsystem">
		<!-- Выводим название информационной системы -->
		<p class="h1" hostcms:id="{@id}" hostcms:field="name" 
			hostcms:entity="informationsystem">
			<xsl:value-of disable-output-escaping="yes" select="name"/>
		</p>

		<!-- Отображение записи информационной системы -->
		<xsl:if test="informationsystem_item">
			<dl class="news_list">
				<xsl:apply-templates select="informationsystem_item"/>
			</dl>
		</xsl:if>

		<p class="button">
			<a href="{url}" title="Все новости">Все новости</a>
		</p>
	</xsl:template>

	<!-- Шаблон вывода информационного элемента -->
	<xsl:template match="informationsystem_item">
		<!-- Дата время -->
		<dt>
			<xsl:value-of select="substring-before(date, '.')"/>
			<xsl:variable name="month_year" select="substring-after(date, '.')"/>
			<xsl:variable name="month" select="substring-before($month_year, '.')"/>
			<xsl:choose>
				<xsl:when test="$month = 1"> января </xsl:when>
				<xsl:when test="$month = 2"> февраля </xsl:when>
				<xsl:when test="$month = 3"> марта </xsl:when>
				<xsl:when test="$month = 4"> апреля </xsl:when>
				<xsl:when test="$month = 5"> мая </xsl:when>
				<xsl:when test="$month = 6"> июня </xsl:when>
				<xsl:when test="$month = 7"> июля </xsl:when>
				<xsl:when test="$month = 8"> августа </xsl:when>
				<xsl:when test="$month = 9"> сентября </xsl:when>
				<xsl:when test="$month = 10"> октября </xsl:when>
				<xsl:when test="$month = 11"> ноября </xsl:when>
				<xsl:otherwise> декабря </xsl:otherwise>
			</xsl:choose>
			<xsl:value-of select="substring-after($month_year, '.')"/>
			<xsl:text> г.</xsl:text>
		</dt>

		<dd>
			<a href="{url}" hostcms:id="{@id}" 
				hostcms:field="name" hostcms:entity="informationsystem_item">
				<xsl:value-of disable-output-escaping="yes" select="name"/>
			</a>
		</dd>
	</xsl:template>
</xsl:stylesheet>

Комментарии

  • wssd

    Добавить название группы элемента

    Добавить название группы элемента ИС, если есть.

    29.05.2015 17:24:44 wssd