Как разбить описание каталога товаров на 2 части?

#
Re: Как разбить описание каталога товаров на 2 части?
Перечитал тему и проанализировав личный опыт от использования этой фишки понял что здесь упущен один важный нюанс.

Дело в том, что разрыв страницы в визуальном редакторе вставляется _внутрь_ текущего тега абзаца. То есть выглядит это в HTML так:
<p>Некоторый текст. Это ваше короткое описание<!-- pagebreak --></p><p>А это вторая часть вашего описания</p>


Соответственно, когда мы разобем этот код по границам условного тега <!-- pagebreak -->, то мы получим два невалидных куска:
<p>Некоторый текст. Это ваше короткое описание

и
</p><p>А это вторая часть вашего описания</p>
.
В первом, как мы видим, тег абзаца остается не закрытым, зато второй начинается с закрывающего тега абзаца. Помимо того что это не очень красиво, в некоторых случаях это может еще и привести к странному поведению макета.

Как этого избежать? А очень просто! - Нужно всего лишь выделять тег разрыва страницы в отдельный абзац! То есть перед вставкой разрыва страницы нажать на Enter, кликнуть по кнопке разрыва страницы и еще раз нажать на Enter. Тогда у нас получится следующий HTML-код:
<p>Некоторый текст. Это ваше короткое описание</p><p><!-- pagebreak --></p><p>А это вторая часть вашего описания</p>


И если теперь мы в качестве разделителя в XSL будем использовать не
&lt;!-- pagebreak --&gt;
а
&lt;p&gt;&lt;!-- pagebreak --&gt;&lt;/p&gt;
, то в результате мы получим полностью валидный, красивый и безопасный код!

Ну и раз уж решил обновить тему, то тогда можно и сам код для xsl-шаблона написать красивее, с использованием функции contains() для проверки:

<!--Для верхней части описания-->
<xsl:choose>
   <xsl:when test="contains(description,'&lt;p&gt;&lt;!-- pagebreak --&gt;&lt;/p&gt;')">
      <xsl:value-of disable-output-escaping="yes" select="substring-before(description,'&lt;!-- pagebreak --&gt;')"/>
   </xsl:when>
   <xsl:otherwise>
      <xsl:value-of disable-output-escaping="yes" select="description"/>
   </xsl:otherwise>
</xsl:choose>

<!--Для нижней части описания-->
<xsl:choose>
   <xsl:when test="contains(description,'&lt;p&gt;&lt;!-- pagebreak --&gt;&lt;/p&gt;')">
      <xsl:value-of disable-output-escaping="yes" select="substring-after(description,'&lt;!-- pagebreak --&gt;')"/>
   </xsl:when>
   <xsl:otherwise>
   </xsl:otherwise>
</xsl:choose>
Заказов не беру. Консультирую редко.
#
Re: Как разбить описание каталога товаров на 2 части?
Блин мне тоже так надо. А нельзя ли для дурачков поподробнее расписать ?
Тоесть где вставлять этот код и где заканчивать? в Каком файле и разделе?
#
Re: Re: Как разбить описание каталога товаров на 2 части?
Чудеса какие-то... Делал похожую вещь. Хотел description в переменную занести, что-то типа
<xsl:variable name="descript" select="description"/>

а оно ну никак не хочет... Ошибку выдает, если просто вывести - выводит, а в переменную не заносится.
#
Re: Как разбить описание каталога товаров на 2 части?
Stepan0v,
а какую именно ошибку?
Заказов не беру. Консультирую редко.
#
Re: Re: Как разбить описание каталога товаров на 2 части?
Хм... говорил, что переменная не определена. Пробовал и так и этак...
После чего сделал всё без переменной.

А вот сейчас скопировал этот же текст, вставил в код (хотел точнее посмотреть ошибку)... и всё работает )
#
Re: Как разбить описание каталога товаров на 2 части?
Вероятно в первый раз где-то допустили опечатку.
Заказов не беру. Консультирую редко.
#
Re: Re: Как разбить описание каталога товаров на 2 части?
Опечатку я мог один раз допустить. Но я пол часа пробовал разные варианты. Вначале у меня было <xsl:variable name="description" select="description"/>. Я подумал, может имена конфликтуют? Сократил название переменной. Потом копировал код из рабочей области, меняя только переменную, копировал название тега из XML, делал не через select, а вывод внутри тэга... B т.д. и т.п..

P.S. Вероятно, торсионные поля...
#
Re: Как разбить описание каталога товаров на 2 части?
Очень познавательно, а объясните, пожалуйста, "чайнику", если цель данной процедуры - развести ключевики по нескольким страницам. Соответственно, идеальный вариант - когда мета-теги title, description, keywords различаются. Возможно будет сделать title, description, keywords различными для страниц, разбитых через pagebreak?
<a href=www.globegroup.ru>Нотариальное бюро переводов</a> - услуги лингвистов и переводчиков по нотариальному заверению переводов в Москве
#
Re: Как разбить описание каталога товаров на 2 части?
не нашел подходящую тему в v.6, подскажите штатно можно реализовать разбивку тексту первый текст вверху перед товаром, вторая часть текста внизу товара.
#
Re: Как разбить описание каталога товаров на 2 части?
похоже что "штатного" ничего нет в движке...
Авторизация