Выдано 126235 лицензий

Работа с дополнительными свойствами в HostCMS v. 6

Re: Работа с дополнительными свойствами в HostCMS v. 6
glen
alexpimnev не увидел ваш пост
Ваш вариант с <xsl:sort> и position() более правильный и надежный

29.09.2016 02:12:59 • Сообщений: 35
Re: Работа с дополнительными свойствами в HostCMS v. 6
jfstyle
Добрый день!

Подскажите как правильно написать, чтобы сортировались фото в дополнительном свойстве:

<xsl:variable name="myItem" select="." />
      <xsl:if test="count(property_value[value != '' or file != ''])">
         <!-- Nav tabs -->
         <ul class="nav nav-tabs sad">
            <xsl:for-each select="/informationsystem/informationsystem_item_properties//property">
               <xsl:variable name="propertyId" select="@id" />
               <xsl:choose>
                  <xsl:when test="count($myItem/property_value[property_id = $propertyId][value != '' or file != ''])">
                     <li>
                        <a href="#{@id}" data-toggle="tab"><xsl:value-of select="name"/>
                     </a></li>
                  </xsl:when>
               <xsl:otherwise><td></td></xsl:otherwise>
               </xsl:choose>
            </xsl:for-each>
         </ul>
         
         <div class="tab-content sad">
            <xsl:for-each select="/informationsystem/informationsystem_item_properties//property">
                  <xsl:sort select="file_description" order="ascending"/> - вот так не сортирует.
               <xsl:variable name="propertyId" select="@id" />
               <xsl:if test="count($myItem/property_value[property_id = $propertyId][value != '' or file != ''])">
                  <div class="tab-pane fade" id="{@id}">
                     <xsl:apply-templates select="$myItem/property_value[property_id = $propertyId]"/>
                  </div>
               </xsl:if>
            </xsl:for-each>
            <div style="clear: both"></div>
         </div>
      </xsl:if>
      <div style="clear: both"></div>


и шаблон свойства:

   <!-- Вывод строки со значением свойства -->
   <xsl:template match="property_value">
      <xsl:variable name="property_id" select="property_id" />
      <xsl:variable name="property" select="/informationsystem/informationsystem_item_properties/property_dir/property[@id=$property_id]" />
      
      <xsl:choose>
         <xsl:when test="$property/tag_name = 'rod'">
            <a rel="prettyPhoto" href="{/informationsystem/informationsystem_item/dir}{file}">
               <img class="img-responsive"  alt="{name}" src="{/informationsystem/informationsystem_item/dir}{file}" />
            </a>
         </xsl:when>
         <xsl:when test="$property/tag_name = 'papa'">
            <h4 class="media-heading"><xsl:value-of disable-output-escaping="yes" select="file_description"/></h4>
            
            <a rel="prettyPhoto" href="{/informationsystem/informationsystem_item/dir}{file}">
               <img class="img-responsive"  alt="{name}" src="{/informationsystem/informationsystem_item/dir}{file}" />
            </a>
         </xsl:when>
         <xsl:when test="$property/tag_name = 'mama'">
            <h4 class="media-heading"><xsl:value-of disable-output-escaping="yes" select="file_description"/></h4>
            <a rel="prettyPhoto" href="{/informationsystem/informationsystem_item/dir}{file}">
               <img class="img-responsive"  alt="{name}" src="{/informationsystem/informationsystem_item/dir}{file}" />
            </a>
         </xsl:when>
         <xsl:when test="$property/tag_name = 'foto'">
            
            <a rel="prettyPhoto[gallery1]" href="{/informationsystem/informationsystem_item/dir}{file}" style="margin: 15px; display: block; float: left;">
               <img class="img-responsive"  alt="{name}" src="{/informationsystem/informationsystem_item/dir}{file_small}" />
            </a>
         </xsl:when>
         <xsl:when test="$property/tag_name = 'diploma'">
            <a rel="prettyPhoto[gallery2]" href="{/informationsystem/informationsystem_item/dir}{file}" style="margin: 15px; display: block; text-align: center;">
               <img class="img-responsive"  alt="{name}" src="{/informationsystem/informationsystem_item/dir}{file}" />
            </a>
         </xsl:when>
         <xsl:when test="$property/tag_name = 'deti'">
            <a rel="prettyPhoto[gallery3]" href="{/informationsystem/informationsystem_item/dir}{file}">
               <img class="img-responsive"  alt="{name}" src="{/informationsystem/informationsystem_item/dir}{file}" />
            </a>
         </xsl:when>
         <xsl:when test="$property/tag_name = 'tituli'">
            <div style="color:#fff;">
               <xsl:value-of disable-output-escaping="yes" select="value"/>
            </div>
         </xsl:when>
         <xsl:when test="$property/type = 2">
            <a rel="prettyPhoto[gallery4]" href="{/informationsystem/informationsystem_item/dir}{file}">
               <img class="img-responsive"  alt="{name}" src="{/informationsystem/informationsystem_item/dir}{file}" />
            </a>
         </xsl:when>
         <xsl:when test="$property/type = 5">
            <a href="{informationsystem_item/url}"><xsl:value-of select="informationsystem_item/name"/></a>
         </xsl:when>
         <xsl:when test="$property/type = 7">
            <input type="checkbox" disabled="disabled">
               <xsl:if test="value = 1">
                  <xsl:attribute name="checked">checked</xsl:attribute>
               </xsl:if>
            </input>
         </xsl:when>
         <xsl:when test="$property/type = 12">
            <a href="{shop_item/url}"><xsl:value-of select="shop_item/name"/></a>
         </xsl:when>
         <xsl:otherwise>
            <xsl:value-of disable-output-escaping="yes" select="value"/>
         </xsl:otherwise>
      </xsl:choose>
   </xsl:template>
   

07.10.2016 12:52:03 • Сообщений: 104
Re: Работа с дополнительными свойствами в HostCMS v. 6
alexpimnev
ulla,
в предыдущих сообщениях есть примеры
www.morozovpimnev.ru - создание, поддержка и продвижение сайтов

07.10.2016 14:24:07 • Сообщений: 574
Re: Работа с дополнительными свойствами в HostCMS v. 6
jfstyle
alexpimnev,
спасиб! разобралась))

07.10.2016 15:13:57 • Сообщений: 104
Re: Работа с дополнительными свойствами в HostCMS v. 6
serg-88
Доброго времени суток. Не могу до конца разобраться, надеюсь кто-нибудь поможет немного. Хочу сделать так: В ИнтернетМагазине нет рубрик, только товары. В xsl 55 отображаются все товары без вложенности, как и подобает. Но хочу сделать разделение по группам через дополнительные свойства. А именно несколько свойств типа ИнформационнаяСистема, где выбрана система в которой есть элементы, имена этих элементов и будут являться названием псевдо-рубрик в 55-ом xsl. У всех товаров будут проставлены эти доп. свойства, у большинства по одному, у кого то по 2.И на странице хочу чтобы они выглядели так:
------------Имя информационного элемента (получаемое через дополнительное свойство---------- и далее только товары с отмеченным свойством
Товар1----Товар2----Товар3
------------Имя информационного элемента (получаемое через дополнительное свойство2---------------------------
Товар4----Товар1----Товар5----Товар6

Как понимаю нужно через for-each пройтись по свойствам, сначала выводим имя дополнительного свойства, потом применяем макет shop_item. Вот примерно так:


<xsl:for-each select="shop_item/property_value[tag_name='type_group']">
               <xsl:value-of select="informationsystem_item/name" />
               <xsl:apply-templates select="shop_item" />
            </xsl:for-each>

В итоге выводятся имена этих элементов у тех товаров которые отмечены(именно в этом участке кода). Но получается не то. Нужно один раз название элемента из свойства и уже потом товары, относящиеся к нему. Под конец уже появились мысли, что надо сделать выборку в ТиповойДинамическойСтранице.. Пожалуйста подскажите и не судите строго, только учусь, заранее спасибо.

20.10.2016 21:18:49 • Сообщений: 7
Re: Работа с дополнительными свойствами в HostCMS v. 6
hostcms
Модератор
serg-88 писал(а):
А именно несколько свойств типа ИнформационнаяСистема, где выбрана система в которой есть элементы, имена этих элементов и будут являться названием псевдо-рубрик в 55-ом xsl.

А как вы планируете их группировать, ведь у разных товаров может быть один и тот же элемент ИС в свойстве?

Также, вы пишите <xsl:apply-templates select="shop_item" />, но откуда у вас внутри значения доп. св-ва типа ИС эти shop_item?

Тему закрываю, она слишком разрослась в частности, по желанию вы можете создать новую тему с вашим вопросом.

21.10.2016 09:15:39 • Сообщений: 16276
Авторизация