UMIhelp

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

Название: Раздел бренда каталог
Отправлено: webtrend от 27 Октября 2016, 13:29:41
Добрый день, подскажите вывожу каталог
document(concat('udata://catalog/getSmartCatalog//', page/@id, '/120//2'))/udata" />
Если ли возможность вывести в каталог только тот товар у которого поле brand = bmw используя данную конструкцию а не usel?
Название: Re: Раздел бренда каталог
Отправлено: aghigay от 27 Октября 2016, 14:31:19
document(concat('udata://catalog/getSmartCatalog//', page/@id, '/120//2?filter[brand]= bmw'))/udata" />
Название: Re: Раздел бренда каталог
Отправлено: webtrend от 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" />

на выходе получается пустота
Название: Re: Раздел бренда каталог
Отправлено: aghigay от 27 Октября 2016, 16:18:02
Ну вообще я не говорил делать так, как написано у вас :-) Конечно ничего работать не будет, если синтаксис не соблюдать
<xsl:apply-templates select="document(concat('udata://catalog/getSmartCatalog//', $par, '/1000//2?filter[brand_title]=', $brand))/udata" mode="other" />
Название: Re: Раздел бренда каталог
Отправлено: webtrend от 27 Октября 2016, 17:22:00
Самое странное что при в вводе в адресную строку http://имясайта/udata/catalog/getSmartCatalog//4/1000//2/?filter[brand_title]=lelo
результат выводится, а при выводе в карте товара, или в любой другой странице вашего кода, или в лоб такова же как в адресной строке ничего не появляется(((
Название: Re: Раздел бренда каталог
Отправлено: aghigay от 27 Октября 2016, 18:29:34
Проверяйте, как описан шаблон mode="other", правильный ли там match и подключен ли файл с этим шаблоном вообще.
Название: Re: Раздел бренда каталог
Отправлено: webtrend от 28 Октября 2016, 14:26:04
Попробовал вчера на готов сайте demodizzy
<xsl:apply-templates select="document(concat('udata://catalog/getSmartCatalog//', $par, '/1000//2?filter[brand_title]=', $brand))/udata" />
ничего не выводится(((
Название: Re: Раздел бренда каталог
Отправлено: e.ioffe от 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;
}
Название: Re: Раздел бренда каталог
Отправлено: webtrend от 28 Октября 2016, 17:01:44
А можно поподробнее, что в какой файл и как?
Название: Re: Раздел бренда каталог
Отправлено: aghigay от 28 Октября 2016, 17:14:01
А что должно выводиться? Как обрабатывается результат работы макроса?

Ну и в догонку: а каталог-то проиндексирован?
Название: Re: Раздел бренда каталог
Отправлено: e.ioffe от 29 Октября 2016, 00:34:52
А можно поподробнее, что в какой файл и как?

Код добавляете в файл custom.php (/classes/modules/custom.php или /classes/components/custom.php - в зависимости от версии php)
Название: Re: Раздел бренда каталог
Отправлено: webtrend от 29 Октября 2016, 15:16:58
Должны же выводится объекты каталога, по шаблону. Шаблон рабочий, по нему выводятся объекты данной категории, все работает отлично
Название: Re: Раздел бренда каталог
Отправлено: aghigay от 29 Октября 2016, 21:05:36
Ну, варианта 2:
1. нет информации в результате обработки запроса. Проверяется вставкой <xs:copy-of select="тут document и все остальное" />
2. нет обработчика шаблона. Проверяется через <xsl:apply-templates select="тут document и все остальное" mode="qqqwwweee" /> Ну и дальше пишется шаблон для этого.

Но проверяйте последовательно. Предположительно, не работает инструкция с get-параметрами в адресной строке и нужно действовать по методу e.ioffe
Название: Re: Раздел бренда каталог
Отправлено: webtrend от 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" />
Название: Re: Раздел бренда каталог
Отправлено: aghigay от 15 Ноября 2016, 20:29:12
Ну так себе вариантик конечно, но наверное работает.
Название: Re: Раздел бренда каталог
Отправлено: webtrend от 15 Ноября 2016, 21:08:36
работает. предлагайте свои, будем рады
Название: Re: Раздел бренда каталог
Отправлено: aghigay от 15 Ноября 2016, 22:43:40
Ну, мой вариант - закинуть нужные переменные в $_REQUEST и потом вызвать (локально) свой скрипт

Пишите макрос, который хавает данные и пихает их куда нужно. А потом, сразу после вызова макроса, вызываете свой фильтр уже без get-параметров.

Как-то так...