CZB
Подскажите, вызов доклистера в сниппете, имеется параметр 'noneTPL', как используя данный параметр и его возврат нуля или едницы подменять кусок кода?
суть проблемы: если доклистер пустой выводится определенный код, если нет, тогда другой. Возможно ли как-либо зайдествовать этот параметр для условия? Просто в шаблоне прописаны ссылки на следующую и предыдушую страницы, генерированием и записьмю в плейсхоледры, а если доклистер пустой, тогда выводить их не целесообразно.
EVO bot Лёшка
Aliaksandr
CZB
noneWrapOuter
спасибо! У меня оказывается в шаблоне лишнее было, но если бы не вы нашел бы не сразу))
Sergey
Кто нить может поделиться примером AJAX сортировки для DocLister?
EVO bot Лёшка
Volodymyr
Sergey
а если без eFilter?
Volodymyr
Как пример
alexx
CZB
Подскажите куда копать. Требуется сделать подгрузку ресурсов при нажатии ссылки, не обновляя страницы. С помощью доклистера. Куда копать есть ли пример?
EVO bot Лёшка
Yaroslav
CZB
Yaroslav
:)
Камиль
Переделал сайт с wp на evo :)
CZB
Камиль
Кто нить может поделиться примером AJAX сортировки для DocLister?
php:
$sort = $_GET['s1'] ? $_GET['s1'] : 'menuindex';
$sort .= $_GET['s2'] ? ' '.$_GET['s2'] : ' ASC';
$modx->runSnippet('DocLister',[
'api' => 1,
'orderBy' => $sort
]);
jquery:
Камиль
$.get('url.html?s1=menuindex&s2=ASC', function ($res) {
alert($res);
});
Камиль
https://habr.com/company/microsoft/blog/435432/
Камиль
Камиль
Am
Am
Am
(:
Anonymous
Реально ли, в evoShop.js на MODx Evo сделать скидку чтобы поменялся evoShop_grandTotal?
Volodymyr
очень просто кстате, написать
evoShop.shipping = function(){
return 100;
}
Volodymyr
скидка будет 100 рублей
Anonymous
Volodymyr
не надо
Volodymyr
evoShop Будет сам дергать функцию
Volodymyr
а логику уже вам нужно
или по промокоду
или от количества товаром или от суммы
функция должна возвратить сумму скидки
Volodymyr
в html class="evoShop_grandtotal"
Anonymous
Старанно. Ничего не происходит...
<div class="cart_total">
Итого: <strong class="evoShop_total"></strong><br />
Со скидкой: <strong class="evoShop_grandTotal"></strong>
</div>
$('.cartForm_promocode-action').click(function() {
if ($('input[name="discount"]').val() == 'Тест') {
evoShop.shipping = function(){
return 100;
}
}
});
Am
Мои глаза.. ((%
Dmytro
А при таком раскладе и не должно ничего происходить
Anonymous
Dmytro
Там в доке ж написано куда вставить
Am
evoShop_grandTotal - вот эти классы хорошо бы переделать, имхо.
"верблюжийРегистр" и подчеркивания нижние это печальная практика в css - затрудняет чтение.
В идеале более осмыслено переназвать и с дефисами: evo-shop-grand-total - даже так лучше читается и воспринимается.
Подчеркивание выглядит как не до "БЭМ" - очень популярное соглашение и странное, т.к. используется так:
двойной дефис это значит вариант элемента, а двойное подчеркивание означает дочерний элемент
.navigation {}
.navigation__item {}
.navigation__item--active {}
Читать удобнее становится:
component-name
component-name--modifier-name
component-name__sub-object
component-name__sub-object--modifier-name
Am
И хорошо бы в местах где используется элемент только для js так и называть - js-push-me
Am
Это все к тому что когда читать удобно, то и отвечать на вопрос/понимать что за что отвечает в коде намного удобнее и интуитивнее.
Ihar
Ihar
В DocLister есть ли возможность задать фильтр типа:
&filters=`AND(tv:price:isnot: tv:old_price)`
При &debug=`1` вижу, что второе значение в строку переводится.
Ihar
Andrey
Ну так она и есть строка. Что мешает её задать как [*old_price*]?
Ihar
Скрин debug
Может не верно сформулировал.
В общих чертах:
Из выборки DocLister'а нужно убрать ресурсы, у которых ТВ со старой ценой [+tv.old_price+] равны ТВ с новой [+tv.price+].
Использовал параметр:
&filters=`AND( tv:price : isnot : tv:old_price )`
Наткнулся на проблему:
tv:old_price в такой конструкции передаётся строкой
см. Скрин debug
Andrey
&filters=`AND( tv:price : isnot : [*old_price*] )
Andrey
Не сработает разве?
Александр
это в категори похоже. там нет плейсхолдера oldprice
Ihar
Ihar
При записи с [*old_price*] debug выдаёт пустую строку.
Ihar
Andrey
Где вызывается сам сниппет? В чанке другого сниппета или в шаблоне? Может надо [+old_price+]
Александр
думаю, стоит смотреть в сторону prepare
Andrey
Эмм. А если просто [*old_price*] вывести рядом со сниппетом, оно будет?
Александр
как вариант еще ```&filters=`AND(tv:old_price:isnot:)```
а в базе значения почистить
и плагин сделать на проверку при сохранении товара
Александр
в параметрах он подставляет плейсхолдер текущего документа
Ihar
Александр
Andrey
Так как я написал, работает. Разбирайтесь с вызовом, почему в тв пусто.
Александр
в смысле нет доступа в БД? так есть Console в extras
Ihar
Andrey
Если в нём нет этого тв, то и фильтровать не получится. Надо в prepare сниппете написать что-то типа
if($data['имятв'] == 800){
return false;
}
return $data;
И важно - &tvPrefix не забыть там указать, если он есть.
Ihar
Ihar
С тем же успехом я в чанке вывода через if отфильтровать мог.
Михаил
Ihar