Добрый день, подскажите вывожу каталог
document(concat('udata://catalog/getSmartCatalog//', page/@id, '/120//2'))/udata" />
Если ли возможность вывести в каталог только тот товар у которого поле brand = bmw используя данную конструкцию а не usel?
document(concat('udata://catalog/getSmartCatalog//', page/@id, '/120//2?filter[brand]= bmw'))/udata" />
Сделал как вы сказали, но что то ничего не происходит. Нахожусь в карточке товара
<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" />
на выходе получается пустота
Ну вообще я не говорил делать так, как написано у вас :-) Конечно ничего работать не будет, если синтаксис не соблюдать
<xsl:apply-templates select="document(concat('udata://catalog/getSmartCatalog//', $par, '/1000//2?filter[brand_title]=', $brand))/udata" mode="other" />
Я обычно использую кастомы до и после вызова каталога. Что-то вроде
<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;
}
Итак выход с данной ситуации следующий, кому интересно. Спасибо службе заботы за помощь
<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" />