Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Помогите с XSL, уже крышей еду

Ответить
Настройки темы
Помогите с XSL, уже крышей еду
sharpp


Сообщения: n/a

Профиль | Цитировать


Изменения
Автор: Prisoner
Дата: 05-09-2006
есть код, что в нем изменить чтобы на страницу выходили все строки а не на 2 или 3 страницы разбивались.

большое спасибо.

Код: Выделить весь код
<?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 method="html" indent="yes" encoding="Windows-1251"/>

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

<xsl:template match="/document">
<!-- Получаем ID родительской группы и записываем в переменную $parent_group_id -->
<xsl:param name="parent_group_id" select="blocks/parent_group_id"/>

<!-- Если в находимся корне - выводим название информационной системы -->
<xsl:if test="blocks/parent_group_id=0">
<h1><xsl:value-of disable-output-escaping="yes" select="blocks/name"/></h1>
<xsl:value-of disable-output-escaping="yes" select="blocks/description"/>
</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>

<!-- ============= -->
<!-- Путь к гурппе -->
<!-- ============= -->

<xsl:apply-templates select=".//group[@id=$parent_group_id]" mode="goup_path"/>

<p/>

<!-- ========= -->
<!-- Подгруппы -->
<!-- ========= -->

<!-- Отображение подгрупп данной группы -->
<table border="0" cellspacing="0" cellpadding="2">
<tr>
<xsl:apply-templates select=".//group[@parent_id=$parent_group_id]" mode="goups"/>
</tr>
</table>

<p/>

<!--
<h1><xsl:value-of disable-output-escaping="yes" select="blocks/name"/>
<xsl:apply-templates select="blocks/groups_tree/group_node"/>
</h1>
-->
<!-- Отображение подгрупп данной группы 
<table border="0" cellspacing="0" cellpadding="2" class="news_table">
<tr>
<xsl:apply-templates select="blocks/groups/group">
<xsl:sort select="@order"/>
</xsl:apply-templates>
</tr>
</table>
-->

<xsl:if test="count(blocks/items/item[item_status=1]) > 0">
<!-- Отображение записи информационного блока -->
<ul>
<xsl:apply-templates select="blocks/items/item[item_status=1]">
</xsl:apply-templates>
</ul>
</xsl:if>

<!-- Строка ссылок на другие страницы архива информационного блока -->
<xsl:if test="ОтображатьСсылкиНаСледующиеСтраницы=1">
<xsl:if test="blocks/items/count_items > blocks/items/items_on_page">
<xsl:call-template name="for">
<xsl:with-param name="n" select="blocks/items/count_items div blocks/items/items_on_page"/>
<xsl:with-param name="current_page" select="blocks/items/current_page"/>
</xsl:call-template>
</xsl:if>
</xsl:if>

<!-- Ссылка на архив -->
<xsl:if test="ОтображатьСсылкуНаАрхив=1">
<p/><a href="{blocks/url}">Архив "<xsl:value-of disable-output-escaping="yes" select="blocks/name"/>"</a>
</xsl:if>
</xsl:template>

<xsl:template match="blocks/groups_tree/group_node">
<xsl:if test="group_name!=''">
 / <a href="{../../url}{group_path}"><xsl:value-of disable-output-escaping="yes" select="group_name"/></a>
</xsl:if>
</xsl:template>

<xsl:template match="blocks/groups/group">
<td><a href="{/document/blocks/url}{group_url}"><xsl:value-of disable-output-escaping="yes" select="group_name"/></a></td>
<xsl:if test="position() mod 5 =0">
<tr/>
</xsl:if>
</xsl:template>

<xsl:template match="blocks/items/item">
<li>

<a href="{item_path}"><b><xsl:value-of disable-output-escaping="yes" select="item_name"/></b></a>
<br/>
<xsl:value-of disable-output-escaping="yes" select="item_description"/>
<br/>


</li>

</xsl:template>

<!-- Цикл для вывода строк ссылок -->
<xsl:template name="for">
<xsl:param name="i" select="0"/>
<xsl:param name="n"/>
<xsl:param name="current_page"/>

<xsl:if test="$n > $i">
<!-- Ставим ссылку на страницу-->
<xsl:if test="$i != $current_page">
<a href="?page={$i}">
<xsl:value-of select="$i+1"/>
</a>
</xsl:if>

<!-- Не ставим ссылку на страницу-->
<xsl:if test="$i = $current_page">
<xsl:value-of select="$i+1"/>
</xsl:if>

 

<!-- Рекурсивный вызов шаблона. НЕОБХОДИМО ПЕРЕДАВАТЬ ВСЕ НЕОБХОДИМЫЕ ПАРАМЕТРЫ! -->
<xsl:call-template name="for">
<xsl:with-param name="i" select="$i + 1"/>
<xsl:with-param name="n" select="$n"/>
<xsl:with-param name="current_page" select="$current_page"/>
</xsl:call-template>
</xsl:if>
</xsl:template>

<!-- ======================================================== -->
<!-- Шаблон выводит рекурсивно ссылки на группы инф. элемента -->
<!-- ======================================================== -->

<xsl:template match="group" mode="goup_path">
<xsl:param 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>

->

<a href="{/document/blocks/url}{fullpath}"><xsl:value-of disable-output-escaping="yes" select="name"/></a>

</xsl:template>

<!-- ======================================================== -->
<!-- Шаблон выводит ссылки подгурппы инф. элемента -->
<!-- ======================================================== -->

<xsl:template match="group" mode="goups">
<xsl:param name="parent_id" select="@parent_id"/>

<td valign="bottom">
<xsl:if test="small_image!=''">
<a href="/upload/{big_image}" target="_blank"><img src="/upload/{small_image}"/></a> 
</xsl:if>
<a href="{/document/blocks/url}{fullpath}"><b><xsl:value-of disable-output-escaping="yes" select="name"/></b></a>
</td>

</xsl:template>


</xsl:stylesheet>

Отправлено: 10:51, 05-09-2006

 

Аватара для benya

Старожил


Сообщения: 302
Благодарности: 5

Профиль | Сайт | Отправить PM | Цитировать


Вообще если Вы этот код не писали то я бы его трогал очень осторожно.
А что бы выполнить вашу задачу я бы нашел параметр (внешний прямо и таблицы или внутренний передаваемый в XML) он называется что-то типа "количество элементов на странице". Поставил бы число побольше, там 1000, ну на порядок больше чем Ваших строк. Вот бы и были все ваши строки без никаких страниц. И не нужно лазить в коде.

Отправлено: 11:52, 05-09-2006 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.

sharpp


Сообщения: n/a

Профиль | Цитировать


а что здесь может за это отвечать?

Отправлено: 12:04, 05-09-2006 | #3


Аватара для benya

Старожил


Сообщения: 302
Благодарности: 5

Профиль | Сайт | Отправить PM | Цитировать


sharpp,
Вообще тяжело сказать без входного XML. Посмотрите во входном XML выводимые строки все независимо от страницы на которой находимся или их там часть (только те, которые отнотся к странице)?

P.S. Вообще неплохо было бы видеть собственно вх. XML

Отправлено: 17:39, 05-09-2006 | #4


Ночной странник


Contributor


Сообщения: 4050
Благодарности: 83

Профиль | Сайт | Отправить PM | Цитировать


sharpp
что то мне кажется что эта штука стоит какоето дерево...

-------
можно практически все, но просто мы это еще не знаем.
главный враг програмиста это копипастинг
За хорошее сообщение не забываем нажимать ссылочку "Полезное сообщение"!


Отправлено: 17:44, 05-09-2006 | #5

sharpp


Сообщения: n/a

Профиль | Цитировать


как он выглядит входного XML???? я в это деле тормоз. помогите плиз. с меня пиво

Отправлено: 21:05, 05-09-2006 | #6


Аватара для benya

Старожил


Сообщения: 302
Благодарности: 5

Профиль | Сайт | Отправить PM | Цитировать


Vlad Drakula,
В смысле?
sharpp,
Мда, Вам нужно было бы неплохо знать основы, а то Вам вообще будет непонятно.
В движок нужно лазить. Вообще он может скорее всего и не существует в виде файла, а собирается в переменную и подается на трансформацию. Нужно перед трансформацией вставить кусочек, который сохранит XML в файл, ну а потом его можно будет рассматривать.
Цитата:
как он выглядит входного XML????
Вообще это мы должны у Вас спросить, мы же не телепаты

Отправлено: 21:52, 05-09-2006 | #7



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Помогите с XSL, уже крышей еду

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Установка - Ужасная проблема с вистой!!!!уже не знаю что делать!помогите Kaztantin Microsoft Windows Vista 11 22-05-2009 20:27
[решено] Срочно! Не включается монитор ASUS MK241H, что делать? Сегодня еду менять! Evil_Devil Непонятные проблемы с Железом 6 30-06-2008 08:32
Помогите я уже совсем отчаялся( Comandante Непонятные проблемы с Железом 41 13-06-2007 09:44
xsl таблица FADE Вебмастеру 8 22-04-2007 14:23
xsl - include FADE Вебмастеру 13 21-04-2007 23:19




 
Переход