UMIhelp

Разработка сайта на UMI.CMS => Шаблоны XSLT => Тема начата: Axiomateria от 25 Июня 2013, 00:21:49

Название: Как вывести отдельно заголовок группы полей ?
Отправлено: Axiomateria от 25 Июня 2013, 00:21:49
В общем-то в заголовке уже вся суть, но если чуть подробнее, то задача вывести заголовок группы полей в отдельную ссылку пока не решается вот таким образом:
<xsl:apply-templates select=".//group[@name = 'description_own' and not(property/value='')]" mode="table-tabs-hotel" />
где "description_own" Заголовок группы нескольких полей и в результате выводятся данные этих самых полей....
Подскажите, пожалуйста, куда надо посмотреть и подправить?
Название: Re:Как вывести отдельно заголовок группы полей ?
Отправлено: e.ioffe от 25 Июня 2013, 10:28:05
В общем-то в заголовке уже вся суть, но если чуть подробнее, то задача вывести заголовок группы полей в отдельную ссылку пока не решается вот таким образом:
<xsl:apply-templates select=".//group[@name = 'description_own' and not(property/value='')]" mode="table-tabs-hotel" />
где "description_own" Заголовок группы нескольких полей и в результате выводятся данные этих самых полей....
Подскажите, пожалуйста, куда надо посмотреть и подправить?

Если нужно именно вывести, то <xsl:value-of select=".//group[@name = 'description_own' and not(property/value='')]/@title" />
Название: Re:Как вывести отдельно заголовок группы полей ?
Отправлено: Axiomateria от 25 Июня 2013, 13:38:49
Если нужно именно вывести, то <xsl:value-of select=".//group[@name = 'description_own' and not(property/value='')]/@title" />

Работает, только, если вместо "title" подставить "name" и тогда выводится "description_own", то есть вотак:
Если нужно именно вывести, то <xsl:value-of select=".//group[@name = 'description_own' and not(property/value='')]/@name" />

А сам <xsl:value-of select=".//group[@name = 'description_own' and not(property/value='')]/@title" /> ни чего не выводит.

Вот кусочек xml этого, выделенное слово жирным и требуется вывести

<group id="352" name="description_own"><title>Описание</title><property id="416" name="general_information" type="wysiwyg"><title>Общее описание: расположение, особенности</title><value><p>Азимут отель (бывшая гостиница Советская) один из крупнейших отелей категории 3 звезды в Петербурге, состоит из 2-х корпусов Восток и Фонтанка.</p>
<p>Отель расположен в старой части города на набережной реки Фонтанка, рядом со станциями метро Балтийская и Технологический институт.</p>
<p>Здание гостиницы -  единственное  высотное здание  в историческом центре города, было построено в 1967 году и с  2001 года несколько раз реконструировалось. Виды на город из окон &laquo;Азимут отеля&raquo; уникальны.</p></value></property></group>
Название: Re:Как вывести отдельно заголовок группы полей ?
Отправлено: e.ioffe от 25 Июня 2013, 14:02:08
Опечатался - нужно без @:
<xsl:value-of select=".//group[@name = 'description_own' and not(property/value='')]/title" />
Название: Re:Как вывести отдельно заголовок группы полей ?
Отправлено: Axiomateria от 25 Июня 2013, 15:43:49
Спасибо, e.ioffe, теперь работает!
А Вы благодаря какому справочнику (если не секрет конечно) знаете правильные ответы на тему XSLT-шаблонизатора ?
Название: Re:Как вывести отдельно заголовок группы полей ?
Отправлено: e.ioffe от 25 Июня 2013, 17:32:32
Начинал с методички Кострова - "Применение технологии xslt при разработке сайтов на UMI.CMS", а остальное сам находил в Интернете + метод аналогий.
Название: Re:Как вывести отдельно заголовок группы полей ?
Отправлено: Axiomateria от 27 Июня 2013, 15:42:04
У меня тут ещё один вопрос, как мне кажется близки по теме, может у Вас, e.ioffe,  тоже есть на него правильный ответ на вопрос, который я уже ранее задавал здесь: http://umihelp.ru/forum/index.php/topic,1377.msg6241.html#msg6241

В общем вопрос такой: надо вывести одно из выбранных значений выпадающего списка, которое выбирается из справочника. Этот справочник с выпадающим списком состоит всего из трёх значений "Мини-отель", Частная гостиница", "Ведомственная гостиница".
Такой макрос конечно не работает <xsl:value-of select=".//property[@name = 'membership_of_hotel']/value" />
где "membership_of_hotel" это имя поля в типе данных..
Какой макрос посоветуете включить в шаблон, что бы при выборе администратором в админ/панеле из выпадающего списка  "Мини-отель" в результате на сайта в определённом месте появлялась именно эта надпись "Мини-отель" ?
Название: Re:Как вывести отдельно заголовок группы полей ?
Отправлено: admin от 27 Июня 2013, 16:21:44
попробуйте посмотреть через
<xsl:copy-of select=".//property[@name = 'membership_of_hotel']"/>
ваше выражение и вы увидите, что у выпадающих полей другой набор узлов. Поэтому, чтобы добраться до название выбранного элемента справочника, вам необходимо писать

<xsl:value-of select=".//property[@name = 'membership_of_hotel']/value/item/@name" />
Название: Re:Как вывести отдельно заголовок группы полей ?
Отправлено: Axiomateria от 27 Июня 2013, 17:29:02
Спасибо, admin, сработало!
Остаётся ещё пока в перспективе (для полного комплекта так сказать) вывести данные в сумме из нескольких выбранных значений из "списка множественного выбора". Так же выводить как и
<xsl:value-of select=".//property[@name = 'membership_of_hotel']/value/item/@name" />
?
Название: Re:Как вывести отдельно заголовок группы полей ?
Отправлено: admin от 27 Июня 2013, 18:14:46
<xsl:value-of select=".//property[@name = 'membership_of_hotel']/value/item/@name" /> выводит одно значение, если их несколько то надо выводить через apply-templates, как-то так

<xsl:apply-templates select=".//property[@name = 'membership_of_hotel']/value/item" mode="names_list"/>

<xsl:template match="item" mode="names">
        <xsl:value-of select="@name" /><br/>
</xsl:template >