Новости являются отражением информационной системы. Вывод списка новостей осуществляется с использованием метода 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(); } ?>
В приведенном примере настроики показа осуществляются через методы:
Пример структуры блока новостей:
<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>