Вопрос по pdoResources
решил все getproducts переписать на pdoresources, и так возник маленький вопрос,
[[!pdoResources?
&parents=`2,21`
&depth=`3`
&includeTVs=`currency,id,main_page_show,image,square,class,area,price,square_from,square_to`
&where=`{«main_page_show»:1}`
&tpl=`catalogItem`
&limit=`12`
&showLog=`0`
]]
есть доп поля у которых вывод списком(одиночный) он их отображает как число скажем в доп поле руб==1|| он вместо руб. выводит 1. Ну итдю Что надо прописать чтобы она адекватно выводилась? а то методом тыка не получилось)
[[!pdoResources?
&parents=`2,21`
&depth=`3`
&includeTVs=`currency,id,main_page_show,image,square,class,area,price,square_from,square_to`
&where=`{«main_page_show»:1}`
&tpl=`catalogItem`
&limit=`12`
&showLog=`0`
]]
есть доп поля у которых вывод списком(одиночный) он их отображает как число скажем в доп поле руб==1|| он вместо руб. выводит 1. Ну итдю Что надо прописать чтобы она адекватно выводилась? а то методом тыка не получилось)
Комментарии: 14
Нужно указать, какие ТВ дополнительно обрабатывать, согласно их настроек:
или можно обрабатывать все подключенные ТВ.
Документация
&processTVs=`square_from,square_to`
или можно обрабатывать все подключенные ТВ.
&processTVs=`1`
Документация
пробовал уже так, безрезультатно
Эм… ну ТВ типа List нужно для того, чтобы ты вводил какие-то данные удобно. Если там указано
Если же тебе нужно хранить в базе именно текст, то ТВ должен быть настроен так:
Я даже установил getResources и проверил — он точно так же выводит циферки, а не подписи к ним.
Описание значения1==1||Описание значения2==2||Описание значения3==3То на экране у юзера при выборе будет «Описание значения1» и т.п., а вот в базе будут уже цифры. В этом и смысл — ввести цифры не ручками, а выбрать из готового списка.
Если же тебе нужно хранить в базе именно текст, то ТВ должен быть настроен так:
Значение1||Значение2||Значение3
Я даже установил getResources и проверил — он точно так же выводит циферки, а не подписи к ним.
[[!pdoResources?
&parents=`2,21`
&depth=`3`
&includeTVs=`currency,id,metro,main_page_show,image,square,class,area,price,square_from,square_to`
&processTVs=`currency,metro,area`
&where=`{"main_page_show":1}`
&tpl=`catalogItem`
&limit=`12`
&showLog=`0`
]]
код чанка[[if?
&subject=`[[+tv.price]]`
&operator=`!=`
&operand=`0`
&then=`<tr><td>Цена от </td><td>[[+tv.price]] [[+tv.currency]]</td></tr>`
&else=``
]]
выводится так «Цена от 30000 1» должно «Цена от 30000 руб»
Если у ТВ currency настроен как
Должно быть
Причем, если ты изменишь настройки ТВ, то потом нужно пройти по всем товарам и пересохранить значения, чтобы в БД прописалось новое текстовое значение.
Ссылка на документацию:
Руб==1||Eur==2||USD==3то ты и будешь получать цифры, потому что именно они попадают в базу данных при сохранении товара.
Должно быть
Руб||EUR||USDТогда при сохранении в БД попадёт текст. А потом он же выведется сниппетом.
Причем, если ты изменишь настройки ТВ, то потом нужно пройти по всем товарам и пересохранить значения, чтобы в БД прописалось новое текстовое значение.
Ссылка на документацию:
Often it's nice to have a more readable label. You can display something nice and still store a different value using the double-equals and double-pipes format used by checkboxes:
да, всего лишь надо было пересохранить цены, как это сделать автоматом? просто у меня их 2-3т. товаров)
Я бы просто SQL запрос написал и прогнал по таблице ТВшек.
modx_site_tmplvars? через update?
Создай сниппет tvValue:
<?php
$tv = $modx->getObject('modTemplateVar', array('name' => $name));
$elements = $tv->get('elements');
$element = explode('||', $elements);
$els = array();
foreach($element as $e) {
list($elName,$elId) = explode("==", $e);
$els[$elId] = $elName;
}
echo $els[$input];
И в чанке выводи tv так:[[+square_from:tvValue]]
почему то он железно ставит на всех последний выбор ито если в возможных значениях
руб||$||€
если так
Выберите округ==0||
ЦАО==1||
ВАО==2||
то вообще не работает
руб||$||€
если так
Выберите округ==0||
ЦАО==1||
ВАО==2||
то вообще не работает
Выберите округ==0||
ЦАО==1||
ВАО==2||
попробуй в одну строку сделать
ЦАО==1||
ВАО==2||
попробуй в одну строку сделать
вы не поняли, когда в одну строку руб||$||€ он везде ставит значение €
руб||$||€ так не будет работать, сниппет только для варианта «Описание значения1==1||Описание значения2»
так кстати тоже не работает)
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.