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="https://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>
Не нашли ответ на свой вопрос в документации? Направьте обращение в службу поддержки или онлайн чат.
Комментарии
Только авторизованные пользователи могут оставлять комментарии.