UMIhelp

Разработка сайта на UMI.CMS => Шаблоны XSLT => Тема начата: ariusgroup от 01 Октября 2012, 10:10:08

Название: Есть ли в xslt обработки строк? (для автоматической генерации анонсов)
Отправлено: ariusgroup от 01 Октября 2012, 10:10:08
Есть ли в xslt шаблонизаторе возможность обработки строк.

При выводе например списка статей или новостей, должен выводится анонс. Есть желание сделать его не через дополнительное поле, а просто обрезая первые n-символов самого текста материала.

Например в smarty и php есть возможность:

{$description|truncate:30:"...":true}

в результате выводится 30 первых символов текста новости например с тремя точками на конце.
Название: Re:Есть ли в xslt обработки строк? (для автоматической генерации анонсов)
Отправлено: grave от 01 Октября 2012, 21:03:23
<xsl:variable name="cut" select=".//property[@name = 'content']/value" disable-output-escaping="yes" />
<xsl:value-of select="substring($cut, 1, 30)" />&nbsp;<xsl:text>...</xsl:text>
Название: Re:Есть ли в xslt обработки строк? (для автоматической генерации анонсов)
Отправлено: admin от 01 Октября 2012, 22:35:16
только не забывайте, что там могут быть теги, которые могут порезаться пополам и в итоге привести к проблемам с версткой. Так что надо скорее всего обрабатывать полный текст php скриптом очищая его от тегов, а потом уже вытягивать часть символов
Название: Re:Есть ли в xslt обработки строк? (для автоматической генерации анонсов)
Отправлено: ariusgroup от 02 Октября 2012, 11:08:47
спасибо за подсказку
Название: Re:Есть ли в xslt обработки строк? (для автоматической генерации анонсов)
Отправлено: Axiomateria от 28 Апреля 2013, 00:36:39
только не забывайте, что там могут быть теги, которые могут порезаться пополам и в итоге привести к проблемам с версткой. Так что надо скорее всего обрабатывать полный текст php скриптом очищая его от тегов, а потом уже вытягивать часть символов

В каком файле это возможно сделать, то есть очистить текст от тегов типа <p></p> ?
И как быть, если надо ограничить в количестве символов ссылку на новость из ленты новостей ?
Название: Re:Есть ли в xslt обработки строк? (для автоматической генерации анонсов)
Отправлено: admin от 28 Апреля 2013, 13:44:41

В каком файле это возможно сделать, то есть очистить текст от тегов типа <p></p> ?
И как быть, если надо ограничить в количестве символов ссылку на новость из ленты новостей ?

в каком файле? в том, в котором вы будете писать скрипт для обрезания строчки (например /classes/modules/custom.php или любой другой файл в котором можно писать кастомы)

Ограничить в какой момент?
 - визуально при выводе списка новостей уже на сайте
 - при сохранении в админке
 - или еще в каком-то месте (в какой-то момент)
Название: Re:Есть ли в xslt обработки строк? (для автоматической генерации анонсов)
Отправлено: Axiomateria от 28 Апреля 2013, 14:39:41

В каком файле это возможно сделать, то есть очистить текст от тегов типа <p></p> ?
И как быть, если надо ограничить в количестве символов ссылку на новость из ленты новостей ?

в каком файле? в том, в котором вы будете писать скрипт для обрезания строчки (например /classes/modules/custom.php или любой другой файл в котором можно писать кастомы)

Да, в этом файле, если в конечно итоге вопрос решится.

Цитировать
Ограничить в какой момент?
 - визуально при выводе списка новостей уже на сайте

Да, визуально на сайте.
Название: Re:Есть ли в xslt обработки строк? (для автоматической генерации анонсов)
Отправлено: admin от 28 Апреля 2013, 14:52:49
когда выводите название режте его либо возможностями xslt
<xsl:value-of select="substring($short_message, 1, 320)" disable-output-escaping="yes"/>

здесь $short_message это само название

либо пользуйтесь css методами (поищите описание text-overflow: ellipsis;)