UMIhelp

Разработка сайта на UMI.CMS => Шаблоны XSLT => Тема начата: webtrend от 25 Апреля 2016, 13:47:41

Название: Вывести каталог с разным внешним видом
Отправлено: webtrend от 25 Апреля 2016, 13:47:41
Добрый день, подскажите, необходимо сделать следующее, есть структура
Каталог
-Сантехника(подкатегория)
--Ип 1(подкатегория)
---водопровод(объект)
--Ип2(подкатегория)

Так вот задача вывести подкатегории где есть вложенные объекты с кнопкой подробнее, а где нету объектов без этой кнопки
Вывод осуществляем
<xsl:apply-templates select="document(concat('udata://catalog/getCategoryList/void/', page/@id))" mode="category" />
Далее
<xsl:template match="udata[@method = 'getCategoryList']" mode="category">
<div class="all-product-area">
<div class="row">
<xsl:apply-templates select="//item" mode="category" />
</div>
</div>
</xsl:template>
Далее
<xsl:template match="udata[@method = 'getCategoryList']//item" mode="category">

<a href="{@link}" class="button" umi:field-name="name" umi:delete="delete" umi:empty="&empty-section-name;">
<xsl.text>Подробно</xsl.text>
</xsl:template>

Название: Re: Вывести каталог с разным внешним видом
Отправлено: aghigay от 25 Апреля 2016, 15:02:16
А в чем сложность? Берете http://dev.docs.umi-cms.ru/spravochnik_makrosov_umicms/katalog/catalog_getobjectslist/ и проверяете сколько вернул результата. Вроде все просто?
Название: Re: Вывести каталог с разным внешним видом
Отправлено: webtrend от 25 Апреля 2016, 15:07:07
Немного не понял, у меня же выдаются подразделы, мне то нужно чтоб кнопка подробнее выдавалась у подразделов у которых есть объекты.
Если я что то неправильно понимаю, напишите пожалуйста что и куда нужно вставить в код.
Название: Re: Вывести каталог с разным внешним видом
Отправлено: aghigay от 25 Апреля 2016, 15:10:52
Вы получаете список подразделов, так?
В этом списке есть название подраздела и его ID, так?
По предложенной функции получаете список товаров в нужном разделе используя concat и ID подраздела из списка подразделов.
Название: Re: Вывести каталог с разным внешним видом
Отправлено: webtrend от 25 Апреля 2016, 15:16:26
Это Вы все правильно говорите, но возможно я объяснил не правильно, задача стоит следующая, я захожу в каталог, перехожу в сантехнику, там у меня выпадают все ИП с картинкой магазина и названием, далее если у ИП есть товары(объекты) то стоит кнопочка подробнее при нажатии на которую я попадаю на страницу с описанием данного ИП и вот там я уже вижу список выпадающих объектов, просто перечислением без подробного ознакомления, а если к примеру товаров нет, то я не вижу кнопочку подробнее и соответственно не могу ознакомиться ни с описанием ИП ни со списком объектов относящихся к нему.
Название: Re: Вывести каталог с разным внешним видом
Отправлено: aghigay от 25 Апреля 2016, 15:50:34
Так, и в чем противоречие с тем, что я описал? Пока не вижу его.
Название: Re: Вывести каталог с разным внешним видом
Отправлено: webtrend от 25 Апреля 2016, 15:52:32
Если не затруднит, можно конкретно написать что и куда мы вставляем? а то образно и логически все понятно, и было изначально, а что и куда вставить в коде не ясно
Название: Re: Вывести каталог с разным внешним видом
Отправлено: aghigay от 26 Апреля 2016, 00:06:38
Самый простой и прямой подход:
    <xsl:template match="udata[@method = 'getCategoryList']//item" mode="category">
        <xsl:if test="document(concat('udata://catalog/getObjectsList/notemplate/', @id))/udata/total &gt; 0">
            <a href="{@link}" class="button" umi:field-name="name" umi:delete="delete" umi:empty="&empty-section-name;">
                <xsl.text>Подробно</xsl.text>
            </a>
        </xsl:if>
    </xsl:template>
Но у него могут быть проблемы с производительностью, так что использовать его или нет - нужно решать по факту и по месту.