Как вывести каталог товаров в несколько столбцов?

#
Как вывести каталог товаров в несколько столбцов?
Добррый день,
необходимо модифицировать стандартный XSL шаблон "СписокТоваров" таким образом, чтобы список товаров выводился например в две колонки. Пытаюсь сделать таким образом:


   
   </tr>
   
   


и вызываю в нужном мне месте
</td>
{endstr}

в результате получаю предупреждение
ПРЕДУПРЕЖЕДЕНИЕ: domxml_xslt_stylesheet(): Opening and ending tag mismatch: when line 104 and tr в файле /home/site/public_html/modules/Xsl/Xsl.class.php (строка 112)
Как корректно выполнить эту процедуру?
#
Re: Как вывести каталог товаров в несколько столбцов?
Не получилось вставить кусок кода :evil: не получается и отредактировать свое сообщение :exclaim:
Вообщем пытаюсь задать новую переменную
xsl:variable name="endstr"
   xsl:choose
   xsl:when test="position() mod 2 = 0"</tr>xsl:when
   xsl:otherwise/xsl:otherwise
   xsl:choose
/xsl:variable
Форматирование убрал.
Модератор
#
Re: Как вывести каталог товаров в несколько столбцов?
Владимир Петрович,
посмотрите здесь:
http://www.hostcms.ru/forums/17/111/

Если нужно вывести какую либо часть кода, не вписывающеюся в иерархию тегов:
<xsl:text disable-output-escaping="yes">
<![CDATA[
</td>
<td valign="top">
]]>
</xsl:text>
#
Re: Как вывести каталог товаров в несколько столбцов?
А как можно вывести категории в каталое в 2 столбца? Можете сразу xsl шаблон выложить?
Делаю сайты на HostCMS! Подробнее по почте anton.yurzanov@gmail.com
Модератор
#
Re: Как вывести каталог товаров в несколько столбцов?
Varkolak,
категории выводятся с помощью <ul> и <li>, соответственно нужно заменить на таблицы.

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


заменяем на

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


<xsl:template match="group" mode="groups">
   <li>
      <xsl:if test="small_image!=''">
         <a href="{/document/blocks/url}{fullpath}" 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 match="group" mode="groups">
   <td>
      <xsl:if test="small_image!=''">
         <a href="{/document/blocks/url}{fullpath}" 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>
   </td>

   <!-- Переход на новую строку после каждой 2-й группы -->
   <xsl:if test="position() mod 2 = 0">
      <xsl:text disable-output-escaping="yes">
         &lt;/tr&gt;
         &lt;tr&gt;
      </xsl:text>
   </xsl:if>
</xsl:template>


писАл без проверки кода, возможны опечатки.
#
Re: Как вывести каталог товаров в несколько столбцов?
Попробовал воспользоваться Вашим кодом для вывода групп в глоссарии в 2 столбца, но ничего не получилось (версия HostCMS infinity
Не подскажете, как это реализовать?
#
Re: Как вывести каталог товаров в несколько столбцов?
UPD: Вопрос снимается.
(В сторону) - Внимательнее надо быть. Все получилось
Модератор
#
Re: Как вывести каталог товаров в несколько столбцов?
Absolut,
ок
#
Re: Как вывести каталог товаров в несколько столбцов?
Подскажите, пожалуйста, как тогда сделать вот так:

<table>
   <tr>
      <td class="leftcolumn">
           item №1
           item №3
           item №5
     </td>

     <td class="rightcolumn">
           item №2
           item №4
           item №6
     </td>
   </tr>
</table>

Сразу возникает идея, что выводить нужно в два прохода (сначала колонку с нечетными, потом - с четными элементами), но КАК это сделать в плане синтаксиса я не могу понять  
#
Re: Как вывести каталог товаров в несколько столбцов?
Пожалуйста, помогите...
У меня дедлайн, а я в эту проблему как в стену уперся
Авторизация