UMIhelp

Разработка сайта на UMI.CMS => Шаблоны XSLT => Тема начата: dvoynikov от 09 Июля 2015, 23:44:06

Название: проблема с выводом подкатегорий
Отправлено: dvoynikov от 09 Июля 2015, 23:44:06
Я пытаюсь вывести подкатегории главной категории написал код:
<xsl:apply-templates select="document('udata://catalog/getObjectsList/notemplate/11163/10/0')/udata" mode="materials" />

<xsl:template match="udata[@method = 'getObjectsList']" mode="materials">
<xsl:apply-templates select="//item" mode="materials" />
</xsl:template>

<xsl:template match="udata[@method = 'getObjectsList']//item" mode="materials">
<li><a href="{@link}"><xsl:value-of select="." /></a></li>
</xsl:template>
но в ответ ничего не приходит, если же вместо id этой категории поставить id другой категории но не каждой то всё работает. не могу понять в чём ошибка. главная категория отмечена как "Разделы каталога", а дочерние как "Страница контента".
Название: Re: проблема с выводом подкатегорий
Отправлено: admin от 10 Июля 2015, 00:15:07
но в ответ ничего не приходит, если же вместо id этой категории поставить id другой категории но не каждой то всё работает. не могу понять в чём ошибка. главная категория отмечена как "Разделы каталога", а дочерние как "Страница контента".

макрос getObjectsList выводит только страницы типа данных связанных с базовым типом данных "Объект каталога", поэтому если вы пытаетесь вывести товары из категории с id = 11163, а внутри этой категории лежат страницы типа данных "Страница контента", то макрос вернет 0 товаров.
Название: Re: проблема с выводом подкатегорий
Отправлено: dvoynikov от 10 Июля 2015, 06:29:53
а как  тогда можно решить данную проблему? Так как когда я нажимаю "редактировать тип данных" и выбираю там  "объекты каталога" то я потом не могу создать ничего нового выдаёт ошибку. Видно я что-то не так делаю. как быть?
Название: Re: проблема с выводом подкатегорий
Отправлено: admin от 10 Июля 2015, 09:30:42
Если у вас есть страница типа "Страница контента", то её нельзя превратить в страницу типа  "объекты каталога", можно только удалить её и сделать новую страницу нужного типа данных ("объекты каталога").

Тут вопрос как так получилось что у вас страницу типа "Страница контента" лежат внутри раздела каталога.
- либо это было сделано умышленно с какой-то целью. Тогда может они и нужны там где они есть и просто надо выводить их не через getObjectsList , а через usel выборку например.
- либо по ошибке была организованна такая структура, когда создавали товары, но делали это не через страницы типа данных  "объекты каталога" . Тогда вам нужно пересоздать данные страницы заного с правильным типом данных, а старые удалить. После чего getObjectsList станет выводит списки этих страниц.

P.S. Очень нежелательно при редактировании типа данных "Страница контента" (да и для всех других типов) менять значение в поле "Назначение типа", так как вы можете поломать заложенную логику работы с базовыми типами.
Название: Re: проблема с выводом подкатегорий
Отправлено: dvoynikov от 10 Июля 2015, 10:32:51
То есть если я сделаю все подразделы "Страницы контента" и выведу через usel(если не сложно можете подсказать как это можно сделать) то я смогу получить все необходимые данные по подкатегориям и вывести в виде страницы каталога?
Название: Re: проблема с выводом подкатегорий
Отправлено: admin от 10 Июля 2015, 11:52:32
То есть если я сделаю все подразделы "Страницы контента" и выведу через usel(если не сложно можете подсказать как это можно сделать) то я смогу получить все необходимые данные по подкатегориям и вывести в виде страницы каталога?

Нет, не совсем так, я говорил о том, что если вы сделали товары не через тип данных "Объект каталога", а через "Страницы контента", то для вывода вам придется отказаться от макроса getObjectsList и работать с usel выборкой.

Но я бы советовал вам идти в другом направлении, пересоздать страницы с правильным типом данных (Объект каталога), так как функционал каталога  должен работать именно с ними, а не со старницами контента, которые вы будете выдавать за товары.
И у вас должны быть какие-то веские причины отказаться от функционала модуля каталог, работающего по умолчанию, потому как иначе вы теряете многие вещи работающие в модуле каталог:
- наличия спец поля для цены, складов и т.п.
- возможность добавлять такие страницы в корзину
- и т.п.

P.S. вы не могли бы рассказать для чего товары создавались как страницы контента? Может в вашей редакции нет модуля "Каталог" и на сайте создавали его заменитель из обычных страниц? Или может что-то еще?
Название: Re: проблема с выводом подкатегорий
Отправлено: dvoynikov от 10 Июля 2015, 12:12:41
это не товарные страницы это страницы с отзывами, которые создаются сами админами, есть много страниц(отзывов) и все они лежат в главном раздела отзывы имеющим тип разделы каталога
Название: Re: проблема с выводом подкатегорий
Отправлено: admin от 10 Июля 2015, 14:41:05
если вы выводите какие-то страницы (не товары) то тут удобнее пользоваться usel выводом.

Про usel можно почитать тут http://dev.docs.umi-cms.ru/shablony_i_makrosy/xslt-shablonizator_umi_cms/vyborki_iz_bd_protokol_usel/
пример usel выборки для вывода меню смотрите тут http://umihelp.ru/articles/daniil_sirotkin/usel-multilevel-menu/

P.S. в вашем случае не нужно проверки на поле <property name="novoe_menyu" value="1" /> просто указать id страницы из которой вы хотите вывести страницы
Название: Re: проблема с выводом подкатегорий
Отправлено: dvoynikov от 10 Июля 2015, 15:05:50
благодарю сегодня попробую сделать, хочу верить что получится
Название: Re: проблема с выводом подкатегорий
Отправлено: dvoynikov от 10 Июля 2015, 20:50:28
Ваш совет помог, получилось сделать, только возник ещё один вопрос: как к типу страницы контента для к примеру только отзывов задать отличную от других пунктов (имеющий так же тип страницы контента) структуру. а то когда создаёшь что-то новое то это новое добавляется во все разделы имеющие этот тип
Название: Re: проблема с выводом подкатегорий
Отправлено: admin от 13 Июля 2015, 14:33:59
а то когда создаёшь что-то новое то это новое добавляется во все разделы имеющие этот тип

Поясните на примере. Сейчас это звучит так как будто вы добавляете товар (к примеру) внутри одного раздела каталога, а данный товар добавляется во всех разделах каталога, которые есть в структуре.
Название: Re: проблема с выводом подкатегорий
Отправлено: dvoynikov от 13 Июля 2015, 21:41:20
нет вы меня не совсем так поняли. вот например у нас есть два главных раздела отзывы и новости оба имеют тип "страницы контента" но содержимое по полям должно быть разное, например поля у отзывов одни у новостей другие. А сейчас получается что если я добавляю новое поле для дальнейшего заполнения, то оно довавляется для заполнения и в отзывы и в новости, хотя мне этого не нужно.
Название: Re: проблема с выводом подкатегорий
Отправлено: admin от 13 Июля 2015, 22:20:37
тогда вам надо создать новый тип данных (обычно он является дочерний к уже существующим) и в нем добавить нужные вам поля. При этом данный тип назначать только тем страницам, у которых должно быть данные поля.

По работе с модулем "Шаблоны данных" смотрите документацию (http://help.docs.umi-cms.ru/rabota_s_modulyami/modul_shablony_dannyh/)

P.S. Пишите, что получилось в итоге.
Название: Re: проблема с выводом подкатегорий
Отправлено: dvoynikov от 19 Июля 2015, 09:51:25
Подскажите пожалуйста если я прописываю
<xsl:apply-templates select="document('udata://content/menu/0/2/(otzyvy)')/udata" mode="vertical_menu"/>
то в итоге получаю "меню", а как можно написать чтобы можно было вывести так же список всех подкатегорий, но уже с картинкой, контентом и др. полями, сделать страничку каталога?
А то что-то никак не получается
Название: Re: проблема с выводом подкатегорий
Отправлено: admin от 20 Июля 2015, 10:13:25
Если у вас данные страницы реализованны через тип данных "Раздел каталога", то для вывода данных страниц стоит использовать %catalog getCategoryList()% (http://dev.docs.umi-cms.ru/spravochnik_makrosov_umicms/katalog/catalog_getcategorylist/). Если нет, то посмотрите в сторону usel.

Для вывода дополнительной информации при вызове любого макроса, который выводит список чего-то, вы можете использовать функционал получения расширенных полей для udata макросов (http://dev.docs.umi-cms.ru/shablony_i_makrosy/xslt-shablonizator_umi_cms/makrosy_protokol_udata/#extended) для usel вызовов (http://dev.docs.umi-cms.ru/shablony_i_makrosy/xslt-shablonizator_umi_cms/vyborki_iz_bd_protokol_usel/#extended)
Название: Re: проблема с выводом подкатегорий
Отправлено: dvoynikov от 22 Июля 2015, 08:13:04
подскажите пожалуйста, вставляю макрос например %content% или любой другой, но он выводится как обычный текст, что можно с этим сделать?
Название: Re: проблема с выводом подкатегорий
Отправлено: admin от 22 Июля 2015, 12:37:03
судя по ветке форума (Шаблоны xslt) вы работаете с XSLT шаблонизатором, в таком случае вызов макросов через в виде %content% , %news lastlist()% и т.п. вам не подходит, вам надо вызывать макросы через udata://news/lastlist , а в случае с %content% , создавать шаблон для вывода того или иного макроса в зависимости от типа страницы.
Название: Re: проблема с выводом подкатегорий
Отправлено: dvoynikov от 24 Июля 2015, 20:58:29
 можешь ещё подсказать как поставить ограничение в 3 записи вот тут <xsl:apply-templates select="document('udata://content/menu/1/1/11221')/udata"/>
Название: Re: проблема с выводом подкатегорий
Отправлено: admin от 25 Июля 2015, 22:47:30
Данный вопрос не относиться к теме данной ветки обсуждений (Re: проблема с выводом подкатегорий) , создайте отдельный вопрос или напишите в уже существующей, но более подходящей по теме