Календарь
compaq
6 февраля 2009 г.
обновления поставлены
(стояла скачанная версия 5.3.3 как есть)
ошибка пропала при заходе в /news - ок
compaq писал(а):
это есть
compaq писал(а):
на данный момент у меня при заходе в news
2009 / 2008
и 2009 не выделен жирным
надо выделить жирным текущий год либо добавить как и была просьба - все новости (жирным) / 2009 / 2008
спасибо
и заметил ошибку:
теперь при заходе в саму новость
повторюсь что все изменения были на версии скачанной с сайта, поставлены два последних обновления.
спасибо
(стояла скачанная версия 5.3.3 как есть)
ошибка пропала при заходе в /news - ок
compaq писал(а):
при заходе в информационную систему test.ru/news
идут новости как и есть по дефолту в системе друг за другом
идут новости как и есть по дефолту в системе друг за другом
это есть
compaq писал(а):
все новости (текущаяя, жирная) / 2009 / 2008 / 2007 и тп
на данный момент у меня при заходе в news
2009 / 2008
и 2009 не выделен жирным
надо выделить жирным текущий год либо добавить как и была просьба - все новости (жирным) / 2009 / 2008
спасибо
и заметил ошибку:
теперь при заходе в саму новость
ПРЕДУПРЕЖЕДЕНИЕ: DOMDocument::loadXML() [function.DOMDocument-loadXML]: StartTag: invalid element name in Entity, line: 4 в файле Z:\home\hostcmsfree.local\www\modules\Xsl\Xsl.class.php (строка 0)
ПРЕДУПРЕЖЕДЕНИЕ: DOMDocument::loadXML() [function.DOMDocument-loadXML]: expected '>' in Entity, line: 7 в файле Z:\home\hostcmsfree.local\www\modules\Xsl\Xsl.class.php (строка 0)
ПРЕДУПРЕЖЕДЕНИЕ: DOMDocument::loadXML() [function.DOMDocument-loadXML]: Opening and ending tag mismatch: document line 2 and unparseable in Entity, line: 7 в файле Z:\home\hostcmsfree.local\www\modules\Xsl\Xsl.class.php (строка 0)
ПРЕДУПРЕЖЕДЕНИЕ: DOMDocument::loadXML() [function.DOMDocument-loadXML]: Extra content at the end of the document in Entity, line: 7 в файле Z:\home\hostcmsfree.local\www\modules\Xsl\Xsl.class.php (строка 0
ПРЕДУПРЕЖЕДЕНИЕ: DOMDocument::loadXML() [function.DOMDocument-loadXML]: expected '>' in Entity, line: 7 в файле Z:\home\hostcmsfree.local\www\modules\Xsl\Xsl.class.php (строка 0)
ПРЕДУПРЕЖЕДЕНИЕ: DOMDocument::loadXML() [function.DOMDocument-loadXML]: Opening and ending tag mismatch: document line 2 and unparseable in Entity, line: 7 в файле Z:\home\hostcmsfree.local\www\modules\Xsl\Xsl.class.php (строка 0)
ПРЕДУПРЕЖЕДЕНИЕ: DOMDocument::loadXML() [function.DOMDocument-loadXML]: Extra content at the end of the document in Entity, line: 7 в файле Z:\home\hostcmsfree.local\www\modules\Xsl\Xsl.class.php (строка 0
повторюсь что все изменения были на версии скачанной с сайта, поставлены два последних обновления.
спасибо
ку
h4mpy
7 февраля 2009 г.
да) теперь внутри одной новости то же самое
compaq
"все новости" можно через choose вывести)
над кодом кодов
compaq
"все новости" можно через choose вывести)
над кодом кодов
<xsl:choose>
<xsl:when test="/document/ТекущийГод/node()">
Все новости нежирным
</xsl:when>
<xsl:otherwise>
Все новости жирным
</xsl:otherwise>
</xsl:choose>
<xsl:when test="/document/ТекущийГод/node()">
Все новости нежирным
</xsl:when>
<xsl:otherwise>
Все новости жирным
</xsl:otherwise>
</xsl:choose>
Ivanov
Модератор
10 февраля 2009 г.
Код типовой дин. страницы (жирным выделено изменение):
<?php
// Получаем информацию о текущем пользователе
if (class_exists('SiteUsers'))
{
$SiteUsers = & singleton('SiteUsers');
$site_user_id = $SiteUsers->GetCurrentSiteUser();
}
else
{
$site_user_id = 0;
}
/* Массив внешних параметров, передаваемых в XML */
$external_propertys = array();
/* Добавление комментария */
// ShowAddComment == 1 - только авторизированные
// ShowAddComment == 2 - все
if (isset($_POST['add_comment'])
&& (($GLOBALS['LA']['ShowAddComment'] == 1 && $site_user_id > 0) || $GLOBALS['LA']['ShowAddComment'] == 2))
{
$param['information_items_id'] = to_int($GLOBALS['InformationResult']['item_id']);
/* XSL шаблон для отправки уведомления администратору о добавлении комментария */
$param['admin_email_xsl'] = to_str($GLOBALS['LA']['xsl_admin_email']);
$xsl_add_comment = to_str($GLOBALS['LA']['xsl_add_comment']);
/* Режим добавления комментария:
1 - публиковать сразу,
0 - публиковать после проверки.*/
if (to_bool($GLOBALS['LA']['TypeAddComment'])/* || $site_user_id > 0*/)
{
$param['status'] = 1;
}
else
{
$param['status'] = 0;
}
// Текст комментария
$_POST['comment_text'] = nl2br(to_str($_POST['comment_text']));
// Типографируем текст, если доступен модуль типографирования
if (class_exists('typograph'))
{
$typograph = new typograph();
$_POST['comment_text'] = $typograph->ProcessTypographic($_POST['comment_text']);
}
$param['comment_mail_type'] = to_int($GLOBALS['LA']['comment_mail_type']);
// ID родительского комментария
$param['comment_parent_id'] = to_int($_POST['comment_parent_id']);
$param['comment_autor'] = to_str($_POST['comment_autor']);
$param['comment_email'] = to_str($_POST['comment_email']);
$param['comment_subject'] = to_str($_POST['comment_subject']);
$param['comment_text'] = to_str($_POST['comment_text']);
$param['comment_grade'] = to_int($_POST['comment_grade']);
$param['allowable_tags'] = '<b><strong><i><u><strike><ul><ol><li>';
ob_start();
$GLOBALS['LA_InformationSystem']->ShowAddComment('УведомлениеДобавлениеКомментария', $param);
$external_propertys[0]['xml_name'] = 'message';
$external_propertys[0]['value'] = ob_get_clean();
}
$InformationSystem_id = to_int($GLOBALS['InformationSystem_id']);
// XSL шаблон для отображения списка элементов информационной системы
$xsl_list = to_str($GLOBALS['LA']['xsl_information_system_list']);
// XSL шаблон для отображения элемента информационной системы
$xsl_item = to_str($GLOBALS['LA']['xsl_information_item']);
$InformationResult = $GLOBALS['InformationResult'];
$count_external_propertys = count($external_propertys);
$external_propertys[$count_external_propertys]['xml_name'] = 'ОтображатьСсылкуНаАрхив';
$external_propertys[$count_external_propertys]['value'] = 0;
$external_propertys[++$count_external_propertys]['xml_name'] = 'ОтображатьСсылкиНаСледующиеСтраницы';
$external_propertys[$count_external_propertys]['value'] = 1;
// Массив дополнительных параметров
$property = array();
// Число элементов на страницу
if (isset($InformationResult['items_on_page']))
{
if ($InformationResult['items_on_page'] !== true)
{
$InformationResult['items_on_page'] = to_int($InformationResult['items_on_page']);
}
}
else
{
$InformationResult['items_on_page'] = 10;
}
/* Номер, с которого начинается показ */
if (isset($InformationResult['items_begin']))
{
$InformationResult['items_begin'] = to_int($InformationResult['items_begin']);
}
else
{
$InformationResult['items_begin'] = 0;
}
/* Метод определения идентификатора информационной группы и идентификатора информационного элемента по значению URI */
//$result = $GLOBALS['LA_InformationSystem']->GetInformationFromPath($InformationSystem_id);
if ($GLOBALS['INFSYS_result'] != false)
{
/* Вывод списка */
if ($GLOBALS['INFSYS_result']['item'] == false)
{
// Если передано имя тэга - фильтруем
if (isset($GLOBALS['INFSYS_result']['tag_name']))
{
$oTag = & singleton('Tag');
$tag_row = $oTag->GetTagByName($GLOBALS['INFSYS_result']['tag_name']);
$property['tags'] = array($tag_row['tag_id']);
// При выводе тэгов вывод элементов ведется из всех групп
$GLOBALS['INFSYS_result']['group'] = false;
}
// $property['xml_show_group_type'] = 'all';
// Запрещаем передачу в XML свойств групп
$property['xml_show_group_property'] = true;
// Получаем список годов, для которых есть новости
$query = "SELECT DISTINCT DATE_FORMAT(information_items_date, '%Y') as news_date FROM information_items_table
WHERE information_systems_id = '1' AND information_items_status = '1'
ORDER BY news_date DESC";
$DataBase = & singleton ('DataBase');
$result = $DataBase->select($query);
$ExternalXml = new ExternalXml();
$param_ext_xml = array();
$year_ext_xml = array();
$i = 0;
while($row_date = mysql_fetch_assoc($result))
{
$year_ext_xml[$i]['xml_name'] = 'Год';
$year_ext_xml[$i++]['value'] = intval($row_date['news_date']);
}
//$xmlData = $ExternalXml->GenXml($year_ext_xml, 1);
$external_propertys[++$count_external_propertys]['xml_name'] = 'Годы';//$xmlData;
$external_propertys[$count_external_propertys]['value'] = $year_ext_xml;
// Передан год
if (isset($GLOBALS['year']))
{
$element['type'] = 0;
$element['prefix'] = ' AND ';
$element['name'] = 'information_items_date';
$element['if'] = '>=';
$element['value'] = $GLOBALS['year'] . '-01-01 00:00:00';
$element['sufix']='';
$property['select'][] = $element;
$element['type'] = 0;
$element['prefix'] = ' AND ';
$element['name'] = 'information_items_date';
$element['if'] = '<=';
$element['value'] = $GLOBALS['year'] . '-12-31 23:59:59';
$element['sufix']='';
$property['select'][] = $element;
$external_propertys[++$count_external_propertys]['xml_name'] = 'ТекущийГод';
$external_propertys[$count_external_propertys]['value'] = $GLOBALS['year'];
$group_id = false;
}
else // Год не передан - отображаем по умолчанию
{
$external_propertys[++$count_external_propertys]['xml_name'] = 'ТекущийГод';
$external_propertys[$count_external_propertys]['value'] = 2009;
$element['type'] = 0;
$element['prefix'] = ' AND ';
$element['name'] = 'information_items_date';
$element['if'] = '>=';
$element['value'] = 2009 . '-01-01 00:00:00';
$element['sufix']='';
$property['select'][] = $element;
$element['type'] = 0;
$element['prefix'] = ' AND ';
$element['name'] = 'information_items_date';
$element['if'] = '<=';
$element['value'] = 2009 . '-12-31 23:59:59';
$element['sufix']='';
$property['select'][] = $element;
$group_id = $GLOBALS['INFSYS_result']['group'];
}
$property['GenXml_type'] = 1;
/* Отображаем информационную систему */
$GLOBALS['LA_InformationSystem']->ShowInformationSystem($InformationSystem_id, $group_id, $xsl_list, $InformationResult['items_on_page'], $InformationResult['items_begin'], $external_propertys, $property);
}
else
{
/* Определяем идентификатор информационного элемента */
$item_id = $GLOBALS['LA_InformationSystem']->GetIdInformationItem($GLOBALS['INFSYS_result']['item'], $GLOBALS['INFSYS_result']['group'], $InformationSystem_id);
$external_propertys = array();
$external_propertys[0]['xml_name'] = 'show_comments';
if (to_bool($GLOBALS['LA']['ShowComments']))
{
$external_propertys[0]['value'] = '1';
}
else
{
$external_propertys[0]['value'] = '0';
}
// Кому разрешено добавление комментария
$external_propertys['show_add_comments'] = to_int($GLOBALS['LA']['ShowAddComment']);
$property['part'] = $GLOBALS['part_ii'];
// Запрещаем передачу в XML свойств групп
$property['xml_show_group_property'] = false;
// Выводим элемент информационной системы
$GLOBALS['LA_InformationSystem']->ShowInformationSystemItem($item_id, $xsl_item, $external_propertys, $property);
}
}
?>
<?php
// Получаем информацию о текущем пользователе
if (class_exists('SiteUsers'))
{
$SiteUsers = & singleton('SiteUsers');
$site_user_id = $SiteUsers->GetCurrentSiteUser();
}
else
{
$site_user_id = 0;
}
/* Массив внешних параметров, передаваемых в XML */
$external_propertys = array();
/* Добавление комментария */
// ShowAddComment == 1 - только авторизированные
// ShowAddComment == 2 - все
if (isset($_POST['add_comment'])
&& (($GLOBALS['LA']['ShowAddComment'] == 1 && $site_user_id > 0) || $GLOBALS['LA']['ShowAddComment'] == 2))
{
$param['information_items_id'] = to_int($GLOBALS['InformationResult']['item_id']);
/* XSL шаблон для отправки уведомления администратору о добавлении комментария */
$param['admin_email_xsl'] = to_str($GLOBALS['LA']['xsl_admin_email']);
$xsl_add_comment = to_str($GLOBALS['LA']['xsl_add_comment']);
/* Режим добавления комментария:
1 - публиковать сразу,
0 - публиковать после проверки.*/
if (to_bool($GLOBALS['LA']['TypeAddComment'])/* || $site_user_id > 0*/)
{
$param['status'] = 1;
}
else
{
$param['status'] = 0;
}
// Текст комментария
$_POST['comment_text'] = nl2br(to_str($_POST['comment_text']));
// Типографируем текст, если доступен модуль типографирования
if (class_exists('typograph'))
{
$typograph = new typograph();
$_POST['comment_text'] = $typograph->ProcessTypographic($_POST['comment_text']);
}
$param['comment_mail_type'] = to_int($GLOBALS['LA']['comment_mail_type']);
// ID родительского комментария
$param['comment_parent_id'] = to_int($_POST['comment_parent_id']);
$param['comment_autor'] = to_str($_POST['comment_autor']);
$param['comment_email'] = to_str($_POST['comment_email']);
$param['comment_subject'] = to_str($_POST['comment_subject']);
$param['comment_text'] = to_str($_POST['comment_text']);
$param['comment_grade'] = to_int($_POST['comment_grade']);
$param['allowable_tags'] = '<b><strong><i><u><strike><ul><ol><li>';
ob_start();
$GLOBALS['LA_InformationSystem']->ShowAddComment('УведомлениеДобавлениеКомментария', $param);
$external_propertys[0]['xml_name'] = 'message';
$external_propertys[0]['value'] = ob_get_clean();
}
$InformationSystem_id = to_int($GLOBALS['InformationSystem_id']);
// XSL шаблон для отображения списка элементов информационной системы
$xsl_list = to_str($GLOBALS['LA']['xsl_information_system_list']);
// XSL шаблон для отображения элемента информационной системы
$xsl_item = to_str($GLOBALS['LA']['xsl_information_item']);
$InformationResult = $GLOBALS['InformationResult'];
$count_external_propertys = count($external_propertys);
$external_propertys[$count_external_propertys]['xml_name'] = 'ОтображатьСсылкуНаАрхив';
$external_propertys[$count_external_propertys]['value'] = 0;
$external_propertys[++$count_external_propertys]['xml_name'] = 'ОтображатьСсылкиНаСледующиеСтраницы';
$external_propertys[$count_external_propertys]['value'] = 1;
// Массив дополнительных параметров
$property = array();
// Число элементов на страницу
if (isset($InformationResult['items_on_page']))
{
if ($InformationResult['items_on_page'] !== true)
{
$InformationResult['items_on_page'] = to_int($InformationResult['items_on_page']);
}
}
else
{
$InformationResult['items_on_page'] = 10;
}
/* Номер, с которого начинается показ */
if (isset($InformationResult['items_begin']))
{
$InformationResult['items_begin'] = to_int($InformationResult['items_begin']);
}
else
{
$InformationResult['items_begin'] = 0;
}
/* Метод определения идентификатора информационной группы и идентификатора информационного элемента по значению URI */
//$result = $GLOBALS['LA_InformationSystem']->GetInformationFromPath($InformationSystem_id);
if ($GLOBALS['INFSYS_result'] != false)
{
/* Вывод списка */
if ($GLOBALS['INFSYS_result']['item'] == false)
{
// Если передано имя тэга - фильтруем
if (isset($GLOBALS['INFSYS_result']['tag_name']))
{
$oTag = & singleton('Tag');
$tag_row = $oTag->GetTagByName($GLOBALS['INFSYS_result']['tag_name']);
$property['tags'] = array($tag_row['tag_id']);
// При выводе тэгов вывод элементов ведется из всех групп
$GLOBALS['INFSYS_result']['group'] = false;
}
// $property['xml_show_group_type'] = 'all';
// Запрещаем передачу в XML свойств групп
$property['xml_show_group_property'] = true;
// Получаем список годов, для которых есть новости
$query = "SELECT DISTINCT DATE_FORMAT(information_items_date, '%Y') as news_date FROM information_items_table
WHERE information_systems_id = '1' AND information_items_status = '1'
ORDER BY news_date DESC";
$DataBase = & singleton ('DataBase');
$result = $DataBase->select($query);
$ExternalXml = new ExternalXml();
$param_ext_xml = array();
$year_ext_xml = array();
$i = 0;
while($row_date = mysql_fetch_assoc($result))
{
$year_ext_xml[$i]['xml_name'] = 'Год';
$year_ext_xml[$i++]['value'] = intval($row_date['news_date']);
}
//$xmlData = $ExternalXml->GenXml($year_ext_xml, 1);
$external_propertys[++$count_external_propertys]['xml_name'] = 'Годы';//$xmlData;
$external_propertys[$count_external_propertys]['value'] = $year_ext_xml;
// Передан год
if (isset($GLOBALS['year']))
{
$element['type'] = 0;
$element['prefix'] = ' AND ';
$element['name'] = 'information_items_date';
$element['if'] = '>=';
$element['value'] = $GLOBALS['year'] . '-01-01 00:00:00';
$element['sufix']='';
$property['select'][] = $element;
$element['type'] = 0;
$element['prefix'] = ' AND ';
$element['name'] = 'information_items_date';
$element['if'] = '<=';
$element['value'] = $GLOBALS['year'] . '-12-31 23:59:59';
$element['sufix']='';
$property['select'][] = $element;
$external_propertys[++$count_external_propertys]['xml_name'] = 'ТекущийГод';
$external_propertys[$count_external_propertys]['value'] = $GLOBALS['year'];
$group_id = false;
}
else // Год не передан - отображаем по умолчанию
{
$external_propertys[++$count_external_propertys]['xml_name'] = 'ТекущийГод';
$external_propertys[$count_external_propertys]['value'] = 2009;
$element['type'] = 0;
$element['prefix'] = ' AND ';
$element['name'] = 'information_items_date';
$element['if'] = '>=';
$element['value'] = 2009 . '-01-01 00:00:00';
$element['sufix']='';
$property['select'][] = $element;
$element['type'] = 0;
$element['prefix'] = ' AND ';
$element['name'] = 'information_items_date';
$element['if'] = '<=';
$element['value'] = 2009 . '-12-31 23:59:59';
$element['sufix']='';
$property['select'][] = $element;
$group_id = $GLOBALS['INFSYS_result']['group'];
}
$property['GenXml_type'] = 1;
/* Отображаем информационную систему */
$GLOBALS['LA_InformationSystem']->ShowInformationSystem($InformationSystem_id, $group_id, $xsl_list, $InformationResult['items_on_page'], $InformationResult['items_begin'], $external_propertys, $property);
}
else
{
/* Определяем идентификатор информационного элемента */
$item_id = $GLOBALS['LA_InformationSystem']->GetIdInformationItem($GLOBALS['INFSYS_result']['item'], $GLOBALS['INFSYS_result']['group'], $InformationSystem_id);
$external_propertys = array();
$external_propertys[0]['xml_name'] = 'show_comments';
if (to_bool($GLOBALS['LA']['ShowComments']))
{
$external_propertys[0]['value'] = '1';
}
else
{
$external_propertys[0]['value'] = '0';
}
// Кому разрешено добавление комментария
$external_propertys['show_add_comments'] = to_int($GLOBALS['LA']['ShowAddComment']);
$property['part'] = $GLOBALS['part_ii'];
// Запрещаем передачу в XML свойств групп
$property['xml_show_group_property'] = false;
// Выводим элемент информационной системы
$GLOBALS['LA_InformationSystem']->ShowInformationSystemItem($item_id, $xsl_item, $external_propertys, $property);
}
}
?>
compaq
13 февраля 2009 г.
Ivanov cпасиБО огромядное теперь все ок!
вроде мелочь появилась а приятно то как - архив новостей должен быть АРХИВОМ =)
h4mpy писал(а):
да, применил - спасибо тоже
вроде мелочь появилась а приятно то как - архив новостей должен быть АРХИВОМ =)
h4mpy писал(а):
<xsl:choose>
<xsl:when test="/document/ТекущийГод/node()">
Все новости нежирным
</xsl:when>
<xsl:otherwise>
Все новости жирным
</xsl:otherwise>
</xsl:choose>
<xsl:when test="/document/ТекущийГод/node()">
Все новости нежирным
</xsl:when>
<xsl:otherwise>
Все новости жирным
</xsl:otherwise>
</xsl:choose>
да, применил - спасибо тоже
ку
compaq
13 февраля 2009 г.
ребят у меня ситуация правда малость поменялась:
при заходе в /news текущий год выделен жирным и новости только соответственно за текущий год
что мне надо поменять в этой ситуации?
спасибо
при заходе в /news текущий год выделен жирным и новости только соответственно за текущий год
что мне надо поменять в этой ситуации?
спасибо
ку
Ivanov
Модератор
19 февраля 2009 г.
compaq, Вам необходимо при заходе на станицу новостей сразу отображать новости только за текущий год?
compaq
23 марта 2009 г.
Ivanov писал(а):
ага и соответственно текущий год чтобы был выделен.
спасибо
compaq, Вам необходимо при заходе на станицу новостей сразу отображать новости только за текущий год?
ага и соответственно текущий год чтобы был выделен.
спасибо
ку
compaq
15 апреля 2009 г.
Ivanov не разобрался, покажите исправление пожалуйста 8)
ку
Ivanov
Модератор
15 апреля 2009 г.
compaq, подробно опишите проблему и пришлите в поддержку данные доступа к центру администрирования.
compaq
15 апреля 2009 г.
Cайт на локалке, я просто не понимаю что нужно добавить, исправить. не силен
Не проблема наверно а запрос на изменение немножко решения выше.
Мой Шаблон
сейчас при заходе в /news идут все новости
под ними список годов
а нужно чтобы при заходе в /news были новости только за текущий год и текущий год был выделен как активный среди списка годов
Так можно сделать?
Не проблема наверно а запрос на изменение немножко решения выше.
Мой Шаблон
<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" encoding="Windows-1251" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml"/>
<xsl:template match="/">
<xsl:apply-templates select="/document"/>
</xsl:template>
<xsl:template match="/document">
<!-- Получаем ID родительской группы и записываем в переменную $parent_group_id -->
<xsl:variable name="parent_group_id" select="blocks/parent_group_id"/>
<!-- Если в находимся корне - выводим название информационной системы -->
<xsl:if test="blocks/parent_group_id = 0">
<!-- Описание выводится при отсутствии фильтрации по тэгам -->
<xsl:if test="count(blocks/tags/tag) = 0">
<xsl:value-of disable-output-escaping="yes" select="blocks/description"/>
</xsl:if>
</xsl:if>
<!-- Если в находимся в группе - выводим название группы -->
<xsl:if test="blocks/parent_group_id != 0">
<h1>
<xsl:value-of disable-output-escaping="yes" select=".//group[@id=$parent_group_id]/name"/>
</h1>
<!-- Описание выводим только на первой странице -->
<xsl:if test="blocks/items/current_page = 0">
<xsl:value-of disable-output-escaping="yes" select=".//group[@id=$parent_group_id]/description"/>
</xsl:if>
<!-- Путь к группе -->
<p>
<xsl:apply-templates select=".//group[@id=$parent_group_id]" mode="goup_path"/>
</p>
</xsl:if>
<!-- Обработка выбранных тэгов -->
<xsl:if test="count(blocks/selected_tags/tag) = 1">
<ul><li><h2>Метка — <strong><xsl:value-of select="blocks/selected_tags/tag/tag_name"/></strong>.</h2></li></ul>
</xsl:if>
<!-- Отображение подгрупп данной группы, только если подгруппы есть и не идет фильтра по меткам -->
<xsl:if test="count(blocks/selected_tags/tag) = 0 and count(.//group[@parent_id=$parent_group_id]) > 0">
<ul class="news_group">
<xsl:apply-templates select=".//group[@parent_id=$parent_group_id]" mode="groups"/>
</ul>
</xsl:if>
<!-- Отображение записи информационной системы --><ul>
<xsl:apply-templates select="blocks/items/item[item_status=1]"/></ul>
<!-- Строка ссылок на другие страницы информационной системы -->
<xsl:if test="ОтображатьСсылкиНаСледующиеСтраницы=1">
<p>
<!-- Ссылка, для которой дописываются суффиксы page-XX/ -->
<xsl:variable name="link">
<xsl:value-of select="/document/blocks/url"/>
<xsl:if test="$parent_group_id != 0">
<xsl:value-of select="/document/blocks//group[@id = $parent_group_id]/fullpath"/>
</xsl:if>
<xsl:if test="/document/ТекущийГод/node() and /document/ТекущийГод > 0">
<xsl:value-of select="/document/ТекущийГод"/>/</xsl:if>
</xsl:variable>
<xsl:call-template name="for">
<xsl:with-param name="link" select="$link"/>
<xsl:with-param name="items_on_page" select="blocks/items/items_on_page"/>
<xsl:with-param name="current_page" select="blocks/items/current_page"/>
<xsl:with-param name="count_items" select="blocks/items/count_items"/>
<xsl:with-param name="visible_pages">5</xsl:with-param>
</xsl:call-template>
</p>
</xsl:if>
<div style="clear:both;"></div>
<xsl:for-each select="Годы/Год">
<xsl:variable name="year_style">
<xsl:choose>
<xsl:when test=". = /document/ТекущийГод">font-weight:bold</xsl:when>
<xsl:otherwise></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<a href="{/document/blocks/url}{.}/">
<span style="{$year_style}"><xsl:value-of select="."/></span>
</a></xsl:for-each>
<xsl:if test="count(blocks/properties_groups_dir) and blocks/parent_group_id != 0">
<div >
<h2>Атрибуты группы инфоэлементов</h2>
<xsl:if test="count(blocks/group[@id = //blocks/parent_group_id]/propertys/property[@parent_id = 0])">
<table border="0">
<xsl:apply-templates select="blocks/group[@id = //blocks/parent_group_id]/propertys/property[@parent_id = 0]"/>
</table>
</xsl:if>
<xsl:apply-templates select="blocks/properties_groups_dir"/>
</div>
</xsl:if>
<xsl:if test="ОтображатьСсылкуНаАрхив=1">
<a href="{blocks/url}" title="Все новости" style="text-decoration: underline" class="bold">архив</a>
</xsl:if><a href="{blocks/url}rss/">
<img src="/images/rss/rss_2.0.png" style="margin: 0px 0px -4px 0px" alt="RSS"/>
</a>
<div style="clear: both"></div>
</xsl:template>
<!-- Вывод строки со значением свойства -->
<xsl:template match="property">
<tr>
<td style="padding: 5px" bgcolor="#E5DFDA">
<b><xsl:value-of select="name"/></b>
</td>
<td style="padding: 5px" bgcolor="#E5DFDA">
<xsl:choose>
<xsl:when test="type = 1">
<a href="{file_path}">Скачать файл</a>
</xsl:when>
<xsl:when test="type = 7">
<xsl:choose>
<xsl:when test="value = 1">
<input type="checkbox" checked="" disabled="" />
</xsl:when>
<xsl:otherwise>
<input type="checkbox" disabled="" />
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:value-of disable-output-escaping="yes" select="value"/>
</xsl:otherwise>
</xsl:choose>
</td>
</tr>
</xsl:template>
<!-- Шаблон выводит рекурсивно ссылки на группы инф. элемента -->
<xsl:template match="group" mode="goup_path">
<xsl:variable name="parent_id" select="@parent_id"/>
<xsl:apply-templates select="//group[@id=$parent_id]" mode="goup_path"/>
<xsl:if test="@parent_id=0">
<a href="{/document/blocks/url}">
<xsl:value-of disable-output-escaping="yes" select="/document/blocks/name"/>
</a>
</xsl:if>
<span class="path_arrow">→</span>
<a href="{/document/blocks/url}{fullpath}">
<xsl:value-of disable-output-escaping="yes" select="name"/>
</a>
</xsl:template>
<!-- Шаблон выводит группы свойств для группы инфосистемы -->
<xsl:template match="properties_groups_dir">
<p><b><xsl:value-of select="information_propertys_groups_dir_name"/></b></p>
<xsl:variable name="dir_id" select="@id"/>
<xsl:if test="count(//blocks/group[@id = //blocks/parent_group_id]/propertys/property[@parent_id = $dir_id])">
<table border="0">
<xsl:apply-templates select="//blocks/group[@id = //blocks/parent_group_id]/propertys/property[@parent_id = $dir_id]"/>
</table>
</xsl:if>
<xsl:if test="count(properties_groups_dir)">
<blockquote>
<xsl:apply-templates select="properties_groups_dir"/>
</blockquote>
</xsl:if>
</xsl:template>
<!-- Шаблон выводит ссылки подгруппы информационного элемента -->
<xsl:template match="group" mode="groups">
<li>
<xsl:if test="small_image!=''">
<a href="{/document/blocks/url}{fullpath}" target="_blank">
<img src="{small_image}"/>
</a> </xsl:if>
<a href="{/document/blocks/url}{fullpath}">
<b>
<xsl:value-of disable-output-escaping="yes" select="name"/>
</b>
</a> <span style="color: #cacaca">(<xsl:value-of select="count_all_items"/>)</span></li>
</xsl:template>
<!-- Шаблон вывода информационного элемента -->
<xsl:template match="blocks/items/item"><li>
<!-- Дата время -->
<p class="grey"><small><xsl:value-of disable-output-escaping="yes" select="item_date"/></small></p>
<!-- Название -->
<h3><a href="{item_path}" class="bold" title="{item_name}"><xsl:value-of disable-output-escaping="yes" select="item_name"/></a></h3>
<!-- Изображение для информационного элемента (если есть) -->
<xsl:choose>
<xsl:when test="item_small_image!=''">
<a href="{item_path}" title="{item_name}">
<img src="{item_small_image}" alt="{item_name}" />
</a>
</xsl:when>
<xsl:otherwise>
<div class="big-line"></div>
</xsl:otherwise>
</xsl:choose>
<xsl:value-of disable-output-escaping="yes" select="item_description"/>
</li>
</xsl:template>
<!-- /// Метки для информационного элемента /// -->
<xsl:template match="tags/tag">
<a href="{/document/blocks/url}tag/{tag_path_name}/" class="tag">
<xsl:value-of select="tag_name"/>
</a>
<xsl:if test="position() != last()"> </xsl:if> </xsl:template>
<!-- Цикл для вывода строк ссылок -->
<xsl:template name="for">
<xsl:param name="i" select="0"/>
<xsl:param name="prefix">page</xsl:param>
<xsl:param name="link"/>
<xsl:param name="items_on_page"/>
<xsl:param name="current_page"/>
<xsl:param name="count_items"/>
<xsl:param name="visible_pages"/>
<xsl:variable name="n" select="$count_items div $items_on_page"/>
<!-- Заносим в переменную $parent_group_id идентификатор текущей группы -->
<xsl:variable name="parent_group_id" select="/document/blocks/parent_group_id"/>
<!-- Считаем количество выводимых ссылок перед текущим элементом -->
<xsl:variable name="pre_count_page">
<xsl:choose>
<xsl:when test="$current_page > ($n - (round($visible_pages div 2) - 1))">
<xsl:value-of select="$visible_pages - ($n - $current_page)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="round($visible_pages div 2) - 1"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!-- Считаем количество выводимых ссылок после текущего элемента -->
<xsl:variable name="post_count_page">
<xsl:choose>
<xsl:when test="0 > $current_page - (round($visible_pages div 2) - 1)">
<xsl:value-of select="$visible_pages - $current_page - 1"/>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="round($visible_pages div 2) = ($visible_pages div 2)">
<xsl:value-of select="$visible_pages div 2"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="round($visible_pages div 2) - 1"/>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:if test="$i = 0 and $current_page != 0">
<span class="ctrl">
← Ctrl
</span>
</xsl:if>
<xsl:if test="$i >= $n and ($n - 1) > $current_page">
<span class="ctrl">
Ctrl →
</span>
</xsl:if>
<xsl:if test="$count_items > $items_on_page and $n > $i">
<!-- Определяем адрес тэга -->
<xsl:variable name="tag_link">
<xsl:choose>
<!-- Если не нулевой уровень -->
<xsl:when test="count(/document/blocks/selected_tags/tag) != 0">tag/<xsl:value-of select="/document/blocks/selected_tags/tag/tag_path_name"/>/</xsl:when>
<!-- Иначе если нулевой уровень - просто ссылка на страницу со списком элементов -->
<xsl:otherwise></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!-- Определяем адрес ссылки -->
<xsl:variable name="number_link">
<xsl:choose>
<!-- Если не нулевой уровень -->
<xsl:when test="$i != 0">
<xsl:value-of select="$prefix"/>-<xsl:value-of select="$i + 1"/>/</xsl:when>
<!-- Иначе если нулевой уровень - просто ссылка на страницу со списком элементов -->
<xsl:otherwise></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!-- Ставим ссылку на страницу-->
<xsl:if test="$i != $current_page">
<!-- Выводим ссылку на первую страницу -->
<xsl:if test="$current_page - $pre_count_page > 0 and $i = 0">
<a href="{$link}" class="page_link" style="text-decoration: none;">←</a>
</xsl:if>
<xsl:choose>
<xsl:when test="$i >= ($current_page - $pre_count_page) and ($current_page + $post_count_page) >= $i">
<!-- Выводим ссылки на видимые страницы -->
<a href="{$link}{$tag_link}{$number_link}" class="page_link">
<xsl:value-of select="$i + 1"/>
</a>
</xsl:when>
<xsl:otherwise></xsl:otherwise>
</xsl:choose>
<!-- Выводим ссылку на последнюю страницу -->
<xsl:if test="$i+1 >= $n and $n > ($current_page + 1 + $post_count_page)">
<xsl:choose>
<xsl:when test="$n > round($n)">
<!-- Выводим ссылку на последнюю страницу -->
<a href="{$link}{$prefix}-{round($n+1)}/" class="page_link" style="text-decoration: none;">→</a>
</xsl:when>
<xsl:otherwise>
<a href="{$link}{$prefix}-{round($n)}/" class="page_link" style="text-decoration: none;">→</a>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
</xsl:if>
<!-- Ссылка на предыдущую страницу для Ctrl + влево -->
<xsl:if test="$current_page != 0 and $i = $current_page">
<xsl:variable name="prev_number_link">
<xsl:choose>
<!-- Если не нулевой уровень -->
<xsl:when test="($current_page - 1) != 0">page-<xsl:value-of select="$i"/>/</xsl:when>
<!-- Иначе если нулевой уровень - просто ссылка на страницу со списком элементов -->
<xsl:otherwise></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<a href="{$link}{$tag_link}{$prev_number_link}" id="id_prev"></a>
</xsl:if>
<!-- Ссылка на следующую страницу для Ctrl + вправо -->
<xsl:if test="($n - 1) > $current_page and $i = $current_page">
<a href="{$link}{$tag_link}page-{$current_page+2}/" id="id_next"></a>
</xsl:if>
<!-- Не ставим ссылку на страницу-->
<xsl:if test="$i = $current_page">
<span class="current">
<xsl:value-of select="$i+1"/>
</span>
</xsl:if>
<!-- Рекурсивный вызов шаблона. НЕОБХОДИМО ПЕРЕДАВАТЬ ВСЕ НЕОБХОДИМЫЕ ПАРАМЕТРЫ! -->
<xsl:call-template name="for">
<xsl:with-param name="i" select="$i + 1"/>
<xsl:with-param name="prefix" select="$prefix"/>
<xsl:with-param name="link" select="$link"/>
<xsl:with-param name="items_on_page" select="$items_on_page"/>
<xsl:with-param name="current_page" select="$current_page"/>
<xsl:with-param name="count_items" select="$count_items"/>
<xsl:with-param name="visible_pages" select="$visible_pages"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
<!-- Склонение после числительных -->
<xsl:template name="declension">
<xsl:param name="number" select="number"/>
<!-- Именительный падеж -->
<xsl:variable name="nominative">
<xsl:text>комментарий</xsl:text>
</xsl:variable>
<!-- Родительный падеж, единственное число -->
<xsl:variable name="genitive_singular">
<xsl:text>комментария</xsl:text>
</xsl:variable>
<xsl:variable name="genitive_plural">
<xsl:text>комментариев</xsl:text>
</xsl:variable>
<xsl:variable name="last_digit">
<xsl:value-of select="$number mod 10"/>
</xsl:variable>
<xsl:variable name="last_two_digits">
<xsl:value-of select="$number mod 100"/>
</xsl:variable>
<xsl:choose>
<xsl:when test="$last_digit = 1 and $last_two_digits != 11">
<xsl:value-of select="$nominative"/>
</xsl:when>
<xsl:when test="$last_digit = 2 and $last_two_digits != 12
or $last_digit = 3 and $last_two_digits != 13
or $last_digit = 4 and $last_two_digits != 14">
<xsl:value-of select="$genitive_singular"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$genitive_plural"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" encoding="Windows-1251" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml"/>
<xsl:template match="/">
<xsl:apply-templates select="/document"/>
</xsl:template>
<xsl:template match="/document">
<!-- Получаем ID родительской группы и записываем в переменную $parent_group_id -->
<xsl:variable name="parent_group_id" select="blocks/parent_group_id"/>
<!-- Если в находимся корне - выводим название информационной системы -->
<xsl:if test="blocks/parent_group_id = 0">
<!-- Описание выводится при отсутствии фильтрации по тэгам -->
<xsl:if test="count(blocks/tags/tag) = 0">
<xsl:value-of disable-output-escaping="yes" select="blocks/description"/>
</xsl:if>
</xsl:if>
<!-- Если в находимся в группе - выводим название группы -->
<xsl:if test="blocks/parent_group_id != 0">
<h1>
<xsl:value-of disable-output-escaping="yes" select=".//group[@id=$parent_group_id]/name"/>
</h1>
<!-- Описание выводим только на первой странице -->
<xsl:if test="blocks/items/current_page = 0">
<xsl:value-of disable-output-escaping="yes" select=".//group[@id=$parent_group_id]/description"/>
</xsl:if>
<!-- Путь к группе -->
<p>
<xsl:apply-templates select=".//group[@id=$parent_group_id]" mode="goup_path"/>
</p>
</xsl:if>
<!-- Обработка выбранных тэгов -->
<xsl:if test="count(blocks/selected_tags/tag) = 1">
<ul><li><h2>Метка — <strong><xsl:value-of select="blocks/selected_tags/tag/tag_name"/></strong>.</h2></li></ul>
</xsl:if>
<!-- Отображение подгрупп данной группы, только если подгруппы есть и не идет фильтра по меткам -->
<xsl:if test="count(blocks/selected_tags/tag) = 0 and count(.//group[@parent_id=$parent_group_id]) > 0">
<ul class="news_group">
<xsl:apply-templates select=".//group[@parent_id=$parent_group_id]" mode="groups"/>
</ul>
</xsl:if>
<!-- Отображение записи информационной системы --><ul>
<xsl:apply-templates select="blocks/items/item[item_status=1]"/></ul>
<!-- Строка ссылок на другие страницы информационной системы -->
<xsl:if test="ОтображатьСсылкиНаСледующиеСтраницы=1">
<p>
<!-- Ссылка, для которой дописываются суффиксы page-XX/ -->
<xsl:variable name="link">
<xsl:value-of select="/document/blocks/url"/>
<xsl:if test="$parent_group_id != 0">
<xsl:value-of select="/document/blocks//group[@id = $parent_group_id]/fullpath"/>
</xsl:if>
<xsl:if test="/document/ТекущийГод/node() and /document/ТекущийГод > 0">
<xsl:value-of select="/document/ТекущийГод"/>/</xsl:if>
</xsl:variable>
<xsl:call-template name="for">
<xsl:with-param name="link" select="$link"/>
<xsl:with-param name="items_on_page" select="blocks/items/items_on_page"/>
<xsl:with-param name="current_page" select="blocks/items/current_page"/>
<xsl:with-param name="count_items" select="blocks/items/count_items"/>
<xsl:with-param name="visible_pages">5</xsl:with-param>
</xsl:call-template>
</p>
</xsl:if>
<div style="clear:both;"></div>
<xsl:for-each select="Годы/Год">
<xsl:variable name="year_style">
<xsl:choose>
<xsl:when test=". = /document/ТекущийГод">font-weight:bold</xsl:when>
<xsl:otherwise></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<a href="{/document/blocks/url}{.}/">
<span style="{$year_style}"><xsl:value-of select="."/></span>
</a></xsl:for-each>
<xsl:if test="count(blocks/properties_groups_dir) and blocks/parent_group_id != 0">
<div >
<h2>Атрибуты группы инфоэлементов</h2>
<xsl:if test="count(blocks/group[@id = //blocks/parent_group_id]/propertys/property[@parent_id = 0])">
<table border="0">
<xsl:apply-templates select="blocks/group[@id = //blocks/parent_group_id]/propertys/property[@parent_id = 0]"/>
</table>
</xsl:if>
<xsl:apply-templates select="blocks/properties_groups_dir"/>
</div>
</xsl:if>
<xsl:if test="ОтображатьСсылкуНаАрхив=1">
<a href="{blocks/url}" title="Все новости" style="text-decoration: underline" class="bold">архив</a>
</xsl:if><a href="{blocks/url}rss/">
<img src="/images/rss/rss_2.0.png" style="margin: 0px 0px -4px 0px" alt="RSS"/>
</a>
<div style="clear: both"></div>
</xsl:template>
<!-- Вывод строки со значением свойства -->
<xsl:template match="property">
<tr>
<td style="padding: 5px" bgcolor="#E5DFDA">
<b><xsl:value-of select="name"/></b>
</td>
<td style="padding: 5px" bgcolor="#E5DFDA">
<xsl:choose>
<xsl:when test="type = 1">
<a href="{file_path}">Скачать файл</a>
</xsl:when>
<xsl:when test="type = 7">
<xsl:choose>
<xsl:when test="value = 1">
<input type="checkbox" checked="" disabled="" />
</xsl:when>
<xsl:otherwise>
<input type="checkbox" disabled="" />
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:value-of disable-output-escaping="yes" select="value"/>
</xsl:otherwise>
</xsl:choose>
</td>
</tr>
</xsl:template>
<!-- Шаблон выводит рекурсивно ссылки на группы инф. элемента -->
<xsl:template match="group" mode="goup_path">
<xsl:variable name="parent_id" select="@parent_id"/>
<xsl:apply-templates select="//group[@id=$parent_id]" mode="goup_path"/>
<xsl:if test="@parent_id=0">
<a href="{/document/blocks/url}">
<xsl:value-of disable-output-escaping="yes" select="/document/blocks/name"/>
</a>
</xsl:if>
<span class="path_arrow">→</span>
<a href="{/document/blocks/url}{fullpath}">
<xsl:value-of disable-output-escaping="yes" select="name"/>
</a>
</xsl:template>
<!-- Шаблон выводит группы свойств для группы инфосистемы -->
<xsl:template match="properties_groups_dir">
<p><b><xsl:value-of select="information_propertys_groups_dir_name"/></b></p>
<xsl:variable name="dir_id" select="@id"/>
<xsl:if test="count(//blocks/group[@id = //blocks/parent_group_id]/propertys/property[@parent_id = $dir_id])">
<table border="0">
<xsl:apply-templates select="//blocks/group[@id = //blocks/parent_group_id]/propertys/property[@parent_id = $dir_id]"/>
</table>
</xsl:if>
<xsl:if test="count(properties_groups_dir)">
<blockquote>
<xsl:apply-templates select="properties_groups_dir"/>
</blockquote>
</xsl:if>
</xsl:template>
<!-- Шаблон выводит ссылки подгруппы информационного элемента -->
<xsl:template match="group" mode="groups">
<li>
<xsl:if test="small_image!=''">
<a href="{/document/blocks/url}{fullpath}" target="_blank">
<img src="{small_image}"/>
</a> </xsl:if>
<a href="{/document/blocks/url}{fullpath}">
<b>
<xsl:value-of disable-output-escaping="yes" select="name"/>
</b>
</a> <span style="color: #cacaca">(<xsl:value-of select="count_all_items"/>)</span></li>
</xsl:template>
<!-- Шаблон вывода информационного элемента -->
<xsl:template match="blocks/items/item"><li>
<!-- Дата время -->
<p class="grey"><small><xsl:value-of disable-output-escaping="yes" select="item_date"/></small></p>
<!-- Название -->
<h3><a href="{item_path}" class="bold" title="{item_name}"><xsl:value-of disable-output-escaping="yes" select="item_name"/></a></h3>
<!-- Изображение для информационного элемента (если есть) -->
<xsl:choose>
<xsl:when test="item_small_image!=''">
<a href="{item_path}" title="{item_name}">
<img src="{item_small_image}" alt="{item_name}" />
</a>
</xsl:when>
<xsl:otherwise>
<div class="big-line"></div>
</xsl:otherwise>
</xsl:choose>
<xsl:value-of disable-output-escaping="yes" select="item_description"/>
</li>
</xsl:template>
<!-- /// Метки для информационного элемента /// -->
<xsl:template match="tags/tag">
<a href="{/document/blocks/url}tag/{tag_path_name}/" class="tag">
<xsl:value-of select="tag_name"/>
</a>
<xsl:if test="position() != last()"> </xsl:if> </xsl:template>
<!-- Цикл для вывода строк ссылок -->
<xsl:template name="for">
<xsl:param name="i" select="0"/>
<xsl:param name="prefix">page</xsl:param>
<xsl:param name="link"/>
<xsl:param name="items_on_page"/>
<xsl:param name="current_page"/>
<xsl:param name="count_items"/>
<xsl:param name="visible_pages"/>
<xsl:variable name="n" select="$count_items div $items_on_page"/>
<!-- Заносим в переменную $parent_group_id идентификатор текущей группы -->
<xsl:variable name="parent_group_id" select="/document/blocks/parent_group_id"/>
<!-- Считаем количество выводимых ссылок перед текущим элементом -->
<xsl:variable name="pre_count_page">
<xsl:choose>
<xsl:when test="$current_page > ($n - (round($visible_pages div 2) - 1))">
<xsl:value-of select="$visible_pages - ($n - $current_page)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="round($visible_pages div 2) - 1"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!-- Считаем количество выводимых ссылок после текущего элемента -->
<xsl:variable name="post_count_page">
<xsl:choose>
<xsl:when test="0 > $current_page - (round($visible_pages div 2) - 1)">
<xsl:value-of select="$visible_pages - $current_page - 1"/>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="round($visible_pages div 2) = ($visible_pages div 2)">
<xsl:value-of select="$visible_pages div 2"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="round($visible_pages div 2) - 1"/>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:if test="$i = 0 and $current_page != 0">
<span class="ctrl">
← Ctrl
</span>
</xsl:if>
<xsl:if test="$i >= $n and ($n - 1) > $current_page">
<span class="ctrl">
Ctrl →
</span>
</xsl:if>
<xsl:if test="$count_items > $items_on_page and $n > $i">
<!-- Определяем адрес тэга -->
<xsl:variable name="tag_link">
<xsl:choose>
<!-- Если не нулевой уровень -->
<xsl:when test="count(/document/blocks/selected_tags/tag) != 0">tag/<xsl:value-of select="/document/blocks/selected_tags/tag/tag_path_name"/>/</xsl:when>
<!-- Иначе если нулевой уровень - просто ссылка на страницу со списком элементов -->
<xsl:otherwise></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!-- Определяем адрес ссылки -->
<xsl:variable name="number_link">
<xsl:choose>
<!-- Если не нулевой уровень -->
<xsl:when test="$i != 0">
<xsl:value-of select="$prefix"/>-<xsl:value-of select="$i + 1"/>/</xsl:when>
<!-- Иначе если нулевой уровень - просто ссылка на страницу со списком элементов -->
<xsl:otherwise></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!-- Ставим ссылку на страницу-->
<xsl:if test="$i != $current_page">
<!-- Выводим ссылку на первую страницу -->
<xsl:if test="$current_page - $pre_count_page > 0 and $i = 0">
<a href="{$link}" class="page_link" style="text-decoration: none;">←</a>
</xsl:if>
<xsl:choose>
<xsl:when test="$i >= ($current_page - $pre_count_page) and ($current_page + $post_count_page) >= $i">
<!-- Выводим ссылки на видимые страницы -->
<a href="{$link}{$tag_link}{$number_link}" class="page_link">
<xsl:value-of select="$i + 1"/>
</a>
</xsl:when>
<xsl:otherwise></xsl:otherwise>
</xsl:choose>
<!-- Выводим ссылку на последнюю страницу -->
<xsl:if test="$i+1 >= $n and $n > ($current_page + 1 + $post_count_page)">
<xsl:choose>
<xsl:when test="$n > round($n)">
<!-- Выводим ссылку на последнюю страницу -->
<a href="{$link}{$prefix}-{round($n+1)}/" class="page_link" style="text-decoration: none;">→</a>
</xsl:when>
<xsl:otherwise>
<a href="{$link}{$prefix}-{round($n)}/" class="page_link" style="text-decoration: none;">→</a>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
</xsl:if>
<!-- Ссылка на предыдущую страницу для Ctrl + влево -->
<xsl:if test="$current_page != 0 and $i = $current_page">
<xsl:variable name="prev_number_link">
<xsl:choose>
<!-- Если не нулевой уровень -->
<xsl:when test="($current_page - 1) != 0">page-<xsl:value-of select="$i"/>/</xsl:when>
<!-- Иначе если нулевой уровень - просто ссылка на страницу со списком элементов -->
<xsl:otherwise></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<a href="{$link}{$tag_link}{$prev_number_link}" id="id_prev"></a>
</xsl:if>
<!-- Ссылка на следующую страницу для Ctrl + вправо -->
<xsl:if test="($n - 1) > $current_page and $i = $current_page">
<a href="{$link}{$tag_link}page-{$current_page+2}/" id="id_next"></a>
</xsl:if>
<!-- Не ставим ссылку на страницу-->
<xsl:if test="$i = $current_page">
<span class="current">
<xsl:value-of select="$i+1"/>
</span>
</xsl:if>
<!-- Рекурсивный вызов шаблона. НЕОБХОДИМО ПЕРЕДАВАТЬ ВСЕ НЕОБХОДИМЫЕ ПАРАМЕТРЫ! -->
<xsl:call-template name="for">
<xsl:with-param name="i" select="$i + 1"/>
<xsl:with-param name="prefix" select="$prefix"/>
<xsl:with-param name="link" select="$link"/>
<xsl:with-param name="items_on_page" select="$items_on_page"/>
<xsl:with-param name="current_page" select="$current_page"/>
<xsl:with-param name="count_items" select="$count_items"/>
<xsl:with-param name="visible_pages" select="$visible_pages"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
<!-- Склонение после числительных -->
<xsl:template name="declension">
<xsl:param name="number" select="number"/>
<!-- Именительный падеж -->
<xsl:variable name="nominative">
<xsl:text>комментарий</xsl:text>
</xsl:variable>
<!-- Родительный падеж, единственное число -->
<xsl:variable name="genitive_singular">
<xsl:text>комментария</xsl:text>
</xsl:variable>
<xsl:variable name="genitive_plural">
<xsl:text>комментариев</xsl:text>
</xsl:variable>
<xsl:variable name="last_digit">
<xsl:value-of select="$number mod 10"/>
</xsl:variable>
<xsl:variable name="last_two_digits">
<xsl:value-of select="$number mod 100"/>
</xsl:variable>
<xsl:choose>
<xsl:when test="$last_digit = 1 and $last_two_digits != 11">
<xsl:value-of select="$nominative"/>
</xsl:when>
<xsl:when test="$last_digit = 2 and $last_two_digits != 12
or $last_digit = 3 and $last_two_digits != 13
or $last_digit = 4 and $last_two_digits != 14">
<xsl:value-of select="$genitive_singular"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$genitive_plural"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
сейчас при заходе в /news идут все новости
под ними список годов
а нужно чтобы при заходе в /news были новости только за текущий год и текущий год был выделен как активный среди списка годов
Так можно сделать?
ку
Авторизация