Линк из дополнительных свойств файл и строка

#
Линк из дополнительных свойств файл и строка
Здравствуйте!
Помогите реализовать следующую задачу:

Есть группы товаров, у которых свои подгруппы. У этих подгрупп есть доп. свойтва типа файл и строка. Через свойство файл цепляю прайс-лист по всем товарам относящимся к данной подгруппе. Возникла задача создать раздел прайс-лист, куда будут автоматом цеплятся ссылки на файлы из подгрупп, а название ссылки будет задаваться черех допсвойство строка. Выглядеть это будет примерно так - Сначала заголовок группы с картинкой от группы, а под ним список линков на прайсы подгрупп.
Реализовал все это на основе xsl шаблона "прайс-лист" (вот часть xsl)

.............

<!-- Шаблон "МагазинПрайс" -->
   <xsl:template match="/shop">
      
      
      <!-- Отображаем таблицу -->
      <table style="width: 100%;" border="0" cellspacing="0" cellpadding="15">
      
         <xsl:apply-templates select="//group"><xsl:sort select="@id" data-type="number" order="ascending"/></xsl:apply-templates>
               
      </table>
            
   </xsl:template>
   
   
   <!-- Группы товаров -->
   <xsl:template match="group">
      
      <xsl:if test="@parent=0"> <!-- Проверяю группа это или нет, если да то далее вставляю изображение группы и ее название  -->
      <tr>
      <!-- Изображение для товара, если есть -->
      <td align="right" valign="top">
         <xsl:if test="small_image != ''">
               <a href="{/shop/path}{fullpath}"><img src="{small_image}" align="left" /></a>
            </xsl:if>
      </td>
      <td>
         <h1><xsl:value-of select="name"/></h1>
         <!-- Далее работаю с подгруппами данной группы -->
         <ul>
            <li>
            <a href="{group/propertys/property[@xml_name='pricelist-group']/property_file_path}">                                                                                                                                                       
               <xsl:apply-templates select="group/propertys/property[@xml_name='pricelist-title']/value"/></a>   
            </li>
         </ul>
         
      </td>
      </tr>   
      </xsl:if>
   </xsl:template>

...................


Когда подгруппе всего один файл и соответствующее описание, то линк получается нормальным, однако если появляется еще одна (и более) подгрупп с прайсом то линк ссылается только на один прайс, а описание сливается в одну строку - ПрайсЛист1ПрайсЛист2  Как сделать чтобы ПрайсЛист1 ссылался на 1 прайс, ПрайсЛист2 на 2 прайс соответственно.
В xsl я не особо силен, видимо доп свойства обрабатываются по очереди, сначала из всех подгрупп свойство файл лепится  одну ссылку, в потом тоже самое и со свойством строка происходит.

На всякий случай кусок xml

<group id="600" parent="0">
      <name>Кровельные материалы</name>
      <description>Описание раздела кровельных материалов</description>
      <image width="101" height="101">/upload/shop_7/shop_group_600/shop_group_image600.jpg</image>
      <small_image width="101" height="101">/upload/shop_7/shop_group_600/small_shop_group_image600.jpg</small_image>
      <order>1</order>
      <indexation>1</indexation>
      <path>materials</path>
      <fullpath>materials/</fullpath>
      <count_items>0</count_items>
      <count_groups>7</count_groups>
      <count_all_items>50</count_all_items>
      <count_all_groups>7</count_all_groups>
      <seo_title></seo_title>
      <seo_description></seo_description>
      <seo_keywords></seo_keywords>
      <propertys>
         <property type="WYSIWYG" xml_name="general-text" id="3" parent_id="0" value_id="1">
            <name>Текст</name>
            <value></value>
            <default_value></default_value>
            <order>2</order>
         </property>
      </propertys>
      <group id="599" parent="600">
         <name>Металлочерепица</name>
         <description>Описание раздела металлочерепица</description>
         <image width="800" height="800">/upload/shop_7/shop_group_599/shop_group_image599.jpg</image>
         <small_image width="101" height="101">/upload/shop_7/shop_group_599/small_shop_group_image599.jpg</small_image>
         <order>0</order>
         <indexation>1</indexation>
         <path>metall</path>
         <fullpath>materials/metall/</fullpath>
         <count_items>5</count_items>
         <count_groups>0</count_groups>
         <count_all_items>5</count_all_items>
         <count_all_groups>0</count_all_groups>
         <seo_title></seo_title>
         <seo_description></seo_description>
         <seo_keywords></seo_keywords>
         <propertys>
            <property type="String" xml_name="pricelist-title" id="5" parent_id="0" value_id="28">
               <name>Текст в прайс-листе</name>
               <value>Металлочерепица (Доставка бесплатно)</value>
               <default_value></default_value>
               <order>0</order>
            </property>
            <property type="File" xml_name="pricelist-group" id="4"
               parent_id="0"                                  value_id="11">
               <name>Скачать прайслист</name>
               <value>metallocherepitca.xls</value>
               <default_value></default_value>
               <order>1</order>
               <property_file_path size="299520">/upload/shop_7/shop_group_599/shop_property_file_599_4.xls</property_file_path>
               <small_image>
                  <value>icon-excel.gif</value>
                  <property_file_path width="29"  height="34" size="806">/upload/shop_7/shop_group_599/small_shop_property_file_599_4.gif</property_file_path>
               </small_image>
            </property>
            <property type="WYSIWYG" xml_name="general-text" id="3" parent_id="0" value_id="5">
               <name>Текст</name>
               <value></value>
               <default_value></default_value>
               <order>2</order>
            </property>
         </propertys>
      </group>
         <group id="602" parent="600">
         <name>Битумная черепица</name>
         <description>Описание раздела битумная черепица</description>
         <image width="800" height="800">/upload/shop_7/shop_group_602/shop_group_image602.jpg</image>
         <small_image width="101" height="101">/upload/shop_7/shop_group_602/small_shop_group_image602.jpg</small_image>
         <order>0</order>
         <indexation>1</indexation>
         <path>bitum_tile</path>
         <fullpath>materials/bitum_tile/</fullpath>
         <count_items>14</count_items>
         <count_groups>0</count_groups>
         <count_all_items>14</count_all_items>
         <count_all_groups>0</count_all_groups>
         <seo_title></seo_title>
         <seo_description></seo_description>
         <seo_keywords></seo_keywords>
         <propertys>
            <property type="String" xml_name="pricelist-title" id="5" parent_id="0" value_id="29">
               <name>Текст в прайс-листе</name>
               <value>Битумная черепица (Доставка бесплатно)</value>
               <default_value></default_value>
               <order>0</order>
            </property>
            <property type="File" xml_name="pricelist-group" id="4"
               parent_id="0"                                  value_id="9">
               <name>Скачать прайслист</name>
               <value>gibkay.xls</value>
               <default_value></default_value>
               <order>1</order>
               <property_file_path size="663552">/upload/shop_7/shop_group_602/shop_property_file_602_4.xls</property_file_path>
               <small_image>
                  <value>icon-excel.gif</value>
                  <property_file_path width="29"  height="34" size="806">/upload/shop_7/shop_group_602/small_shop_property_file_602_4.gif</property_file_path>
               </small_image>
            </property>
            <property type="WYSIWYG" xml_name="general-text" id="3" parent_id="0" value_id="3">
               <name>Текст</name>
               <value></value>
               <default_value></default_value>
               <order>2</order>
            </property>
         </propertys>
      </group>
      <group id="605" parent="600">
         <name>Фальцевая кровля</name>
         <description>Описание раздела фальцевая кровля</description>
         <image width="101" height="101">/upload/shop_7/shop_group_605/shop_group_image605.jpg</image>
         <small_image width="101" height="101">/upload/shop_7/shop_group_605/small_shop_group_image605.jpg</small_image>
         <order>0</order>
         <indexation>1</indexation>
         <path>fold_roof</path>
         <fullpath>materials/fold_roof/</fullpath>
         <count_items>1</count_items>
         <count_groups>0</count_groups>
         <count_all_items>1</count_all_items>
         <count_all_groups>0</count_all_groups>
         <seo_title></seo_title>
         <seo_description></seo_description>
         <seo_keywords></seo_keywords>
         <propertys>
            <property type="WYSIWYG" xml_name="general-text" id="3" parent_id="0" value_id="7">
               <name>Текст</name>
               <value></value>
               <default_value></default_value>
               <order>2</order>
            </property>
         </propertys>
      </group>
   </group>
Модератор
#
Re: Линк из дополнительных свойств файл и строка
Мне абсолютно непонятен фрагмент
<!-- Далее работаю с подгруппами данной группы -->
         <ul>
            <li>
            <a href="{group/propertys/property[@xml_name='pricelist-group']/property_file_path}">                                                                                                                                                      
               <xsl:apply-templates select="group/propertys/property[@xml_name='pricelist-title']/value"/></a>  
            </li>
         </ul>

Вы применяете шаблон (но какой, где он описан?), естественно, что он применяется для первой группы. Вам нужно указывать просто
<!-- Далее работаю с подгруппами данной группы -->
         <ul>
            <xsl:apply-templates select="group" mode="subgroup_price"/>
         </ul>

а потом вынести и сам новый тэмплэйт:
<xsl:template match="group" mode="subgroup_price">
   <li>
      <a href="{propertys/property[@xml_name='pricelist-group']/property_file_path}"><xsl:value-of select="propertys/property[@xml_name='pricelist-title']/value"/></a>
   </li>
</xsl:template>
#
Re: Линк из дополнительных свойств файл и строка
Спасибо, помогло, все не мог понять как грамотно работать с подгруппой
Модератор
#
Re: Линк из дополнительных свойств файл и строка
maxigold,
Пожалуйста.
Авторизация