Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”

0 Пользователей и 1 Гость просматривают эту тему.

*

webtrend

  • **
  • 89
  • +0/-0
    • Просмотр профиля
Раздел бренда каталог
« : 27 Октября 2016, 13:29:41 »
Добрый день, подскажите вывожу каталог
document(concat('udata://catalog/getSmartCatalog//', page/@id, '/120//2'))/udata" />
Если ли возможность вывести в каталог только тот товар у которого поле brand = bmw используя данную конструкцию а не usel?

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Re: Раздел бренда каталог
« Ответ #1 : 27 Октября 2016, 14:31:19 »
document(concat('udata://catalog/getSmartCatalog//', page/@id, '/120//2?filter[brand]= bmw'))/udata" />
Мой блог http://umicms.me

*

webtrend

  • **
  • 89
  • +0/-0
    • Просмотр профиля
Re: Раздел бренда каталог
« Ответ #2 : 27 Октября 2016, 15:54:55 »
Сделал как вы сказали, но что то ничего не происходит. Нахожусь в карточке товара
<xsl:apply-templates select="document(concat('udata://catalog/getSmartCatalog//', $par, '/1000//2?filter[brand_title]=$brand'))/udata" mode="other" />
где $par
<xsl:variable name="par" > 
<xsl:value-of select="result/page/@parentId" />
</xsl:variable>
а $brand
<xsl:variable name="brand" select="//property[@name='brand_title']/value" />

на выходе получается пустота

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Re: Раздел бренда каталог
« Ответ #3 : 27 Октября 2016, 16:18:02 »
Ну вообще я не говорил делать так, как написано у вас :-) Конечно ничего работать не будет, если синтаксис не соблюдать
<xsl:apply-templates select="document(concat('udata://catalog/getSmartCatalog//', $par, '/1000//2?filter[brand_title]=', $brand))/udata" mode="other" />
Мой блог http://umicms.me

*

webtrend

  • **
  • 89
  • +0/-0
    • Просмотр профиля
Re: Раздел бренда каталог
« Ответ #4 : 27 Октября 2016, 17:22:00 »
Самое странное что при в вводе в адресную строку http://имясайта/udata/catalog/getSmartCatalog//4/1000//2/?filter[brand_title]=lelo
результат выводится, а при выводе в карте товара, или в любой другой странице вашего кода, или в лоб такова же как в адресной строке ничего не появляется(((

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Re: Раздел бренда каталог
« Ответ #5 : 27 Октября 2016, 18:29:34 »
Проверяйте, как описан шаблон mode="other", правильный ли там match и подключен ли файл с этим шаблоном вообще.
Мой блог http://umicms.me

*

webtrend

  • **
  • 89
  • +0/-0
    • Просмотр профиля
Re: Раздел бренда каталог
« Ответ #6 : 28 Октября 2016, 14:26:04 »
Попробовал вчера на готов сайте demodizzy
<xsl:apply-templates select="document(concat('udata://catalog/getSmartCatalog//', $par, '/1000//2?filter[brand_title]=', $brand))/udata" />
ничего не выводится(((

*

e.ioffe

  • ****
  • 369
  • +81/-2
  • Профессиональная разработка на UMI.CMS.
    • Просмотр профиля
    • Fullspace - Лучший хостинг для UMI.CMS
Re: Раздел бренда каталог
« Ответ #7 : 28 Октября 2016, 16:21:17 »
Я обычно использую кастомы до и после вызова каталога. Что-то вроде
<xsl:variable name="setRequestFilter" select="document(concat('udata://custom/setRequestFilter/brand_title/', $brand, '/'))/udata" />
<xsl:variable name="result" select=""document(concat('udata://catalog/getSmartCatalog//', $par, '/1000//2'))/udata" />
<xsl:variable name="unsetRequestFilter" select="document('udata://custom/unsetRequestFilter/brand_title/')/udata" />

В кастомах устанавливаю значение в $_REQUEST. Навскидку:
public function setRequestFilter($field, $value) {
if(!getRequest('filter')) {
$_REQUEST['filter'] = array();
}
$_REQUEST['filter'][$field]=$value;
}

public function unsetRequestFilter($field) {
$filter = getRequest('filter');
if(!getArrayKey($filter, $field)) {
return '';
}
unset($filter[$field]);
$_REQUEST['filter'] = $filter;
}
Ускорение сайта на UMI.CMS - http://speed.umispec.ru/

*

webtrend

  • **
  • 89
  • +0/-0
    • Просмотр профиля
Re: Раздел бренда каталог
« Ответ #8 : 28 Октября 2016, 17:01:44 »
А можно поподробнее, что в какой файл и как?

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Re: Раздел бренда каталог
« Ответ #9 : 28 Октября 2016, 17:14:01 »
А что должно выводиться? Как обрабатывается результат работы макроса?

Ну и в догонку: а каталог-то проиндексирован?
Мой блог http://umicms.me

*

e.ioffe

  • ****
  • 369
  • +81/-2
  • Профессиональная разработка на UMI.CMS.
    • Просмотр профиля
    • Fullspace - Лучший хостинг для UMI.CMS
Re: Раздел бренда каталог
« Ответ #10 : 29 Октября 2016, 00:34:52 »
А можно поподробнее, что в какой файл и как?

Код добавляете в файл custom.php (/classes/modules/custom.php или /classes/components/custom.php - в зависимости от версии php)
Ускорение сайта на UMI.CMS - http://speed.umispec.ru/

*

webtrend

  • **
  • 89
  • +0/-0
    • Просмотр профиля
Re: Раздел бренда каталог
« Ответ #11 : 29 Октября 2016, 15:16:58 »
Должны же выводится объекты каталога, по шаблону. Шаблон рабочий, по нему выводятся объекты данной категории, все работает отлично

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Re: Раздел бренда каталог
« Ответ #12 : 29 Октября 2016, 21:05:36 »
Ну, варианта 2:
1. нет информации в результате обработки запроса. Проверяется вставкой <xs:copy-of select="тут document и все остальное" />
2. нет обработчика шаблона. Проверяется через <xsl:apply-templates select="тут document и все остальное" mode="qqqwwweee" /> Ну и дальше пишется шаблон для этого.

Но проверяйте последовательно. Предположительно, не работает инструкция с get-параметрами в адресной строке и нужно действовать по методу e.ioffe
Мой блог http://umicms.me

*

webtrend

  • **
  • 89
  • +0/-0
    • Просмотр профиля
Re: Раздел бренда каталог
« Ответ #13 : 15 Ноября 2016, 16:53:26 »
Итак выход с данной ситуации следующий, кому интересно. Спасибо службе заботы за помощь
<xsl:apply-templates select="document(concat('uhttp://', $domain, '/udata://catalog/getSmartCatalog//', $par, '/1000//2/?filter%5Bbrand_title%5D=', php:function('urlencode', string($brand))))/udata" mode="other" />

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Re: Раздел бренда каталог
« Ответ #14 : 15 Ноября 2016, 20:29:12 »
Ну так себе вариантик конечно, но наверное работает.
Мой блог http://umicms.me