Подскажите пожалуйста по раделу вопрос ответ.

#
Подскажите пожалуйста по раделу вопрос ответ.
Ка организавать радел вопрос ответ так чтобы темы выводились ввиде табличного дизайна (тоесть как на форуме.)Попеременно строка светлосерая потом белая.
Модератор
#
Re: Подскажите пожалуйста по раделу вопрос ответ.
Дмитрий Евгеньевич писал(а):
Ка организавать радел вопрос ответ так чтобы темы выводились ввиде табличного дизайна (тоесть как на форуме.)

Откорректироаать XSL шаблон на вывод в табличном дизайне.

Дмитрий Евгеньевич писал(а):
Попеременно строка светлосерая потом белая.


<xsl:variable name="link_style"><xsl:choose>
<xsl:when test="position() mod 2 = 0">color: #FFFFFF</xsl:when>
<xsl:otherwise>color: #EEEEEE</xsl:otherwise>
</xsl:choose></xsl:variable>

....

<td style="{$link_style}"> ...
#
Re: Подскажите пожалуйста по раделу вопрос ответ.
Если нетрудно можно полный код токо пытаюсь постич XSL.Заранее благодарен.И конечно где это редактировать чтоб я ошибок ненаделал.
Модератор
#
Re: Подскажите пожалуйста по раделу вопрос ответ.
Дмитрий Евгеньевич,
предоставьте Ваш вариант кода, даже с ошибко(ми), мы завтра посмотрим и отредактиурем, что позволит понять Вам, где у Вас ошибка. К XSL-у не забывайте прикладывать XML для ускорения ответа на запрос.
#
Re: Подскажите пожалуйста по раделу вопрос ответ.
Вот  именно я пытаюсь токо понять на примерах я думаю многим пользователям так будет удобнее(хотя это только мое мнение).Если вас не затруднит сделайте пример буду очень признателен.Думаю XSL многие токо постигают.
Модератор
#
Re: Подскажите пожалуйста по раделу вопрос ответ.
Дмитрий Евгеньевич,
<?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/>

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

<!-- Отображение подгрупп данной группы -->
<ul>
   <xsl:apply-templates select=".//group[@parent_id=$parent_group_id]" mode="goups">
   <xsl:sort select="@order"/>
   </xsl:apply-templates>
</ul>

<p/>
<a href="/faq/add_question/?add_question=1&amp;blocks_id={blocks/@id}&amp;group_id={blocks/parent_group_id}">Добавить вопрос</a>

<!-- Стиль заголовка таблицы -->
<xsl:variable name="top_style">background-color: #F0F0F0; text-align: center; font-weight: bold;</xsl:variable>

<!-- Отображение записей информационного блока -->
<table border="0" cellpadding="5" cellspacing="1" style="margin-top: 10px;" width="100%">
<tr>
<td style="{$top_style}">Вопрос</td>
<td style="{$top_style}">Автор</td>
<td style="{$top_style}">Дата</td>
</tr>
      <xsl:apply-templates select="blocks/items/item[item_status=1]"></xsl:apply-templates>
</table>


<!-- Строка ссылок на другие страницы архива информационного блока -->
<xsl:if test="ОтображатьСсылкиНаСледующиеСтраницы=1">
<xsl:if test="blocks/items/count_items > blocks/items/items_on_page">
<p>
   <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>
</p>
</xsl:if>
</xsl:if>

</xsl:template>

<!-- ========================================== -->
<!-- Шаблон для вывода информационных элементов -->
<!-- ========================================== -->
<xsl:template match="blocks/items/item">

   <!-- Определяем стиль вывода строки таблицы -->
   <xsl:variable name="link_style"><xsl:choose>
   <!-- Выделяем четную страницу фоном -->
   <xsl:when test="position() mod 2 = 0">background-color: #F0F0F0</xsl:when>
   <!-- Иначе обычный вывод -->
   <xsl:otherwise></xsl:otherwise>
   </xsl:choose></xsl:variable>

   <tr>
   <td style="{$link_style}">
      <a href="{item_path}"><xsl:value-of disable-output-escaping="yes" select="item_name"/></a>
   </td>
   <td style="{$link_style}">
      <!-- Автор -->
      <a href="mailto:{item_propertys/item_property/email}"><xsl:value-of disable-output-escaping="yes" select="item_propertys/item_property/autor"/></a>
   </td>
   <td style="white-space: nowrap; {$link_style}">
      <!-- Дата -->
      <b><xsl:value-of disable-output-escaping="yes" select="item_datetime"/></b>
   </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>
   ->
   <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:variable name="parent_id" select="@parent_id"/>
   <li>
      <xsl:if test="small_image!=''">
         <a href="/upload/{big_image}" target="_blank"><img src="/upload/{small_image}"/></a>&#xA0;
      </xsl:if>
      <a href="{/document/blocks/url}{fullpath}"><b><xsl:value-of disable-output-escaping="yes" select="name"/></b></a>
   </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>

   &#xA0;

      <!-- Рекурсивный вызов шаблона. НЕОБХОДИМО ПЕРЕДАВАТЬ ВСЕ НЕОБХОДИМЫЕ ПАРАМЕТРЫ! -->
      <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:stylesheet>
Авторизация