Владимир

Владимир

С нами с 28 декабря 2012; Место в рейтинге пользователей: #53
Василий Наумкин
12 августа 2015, 05:48
1
+1
Вот, проверил — можно даже прямо массивы указывать, безо всяких JSON:
{$_modx->runSnippet('pdoResources', [
    'parents' => 19,
    'depth' => 0,
    'where' => ['isfolder' => 0],
    'showLog' => 1,
])}

Ну а так, автор Fenom предусмотрел тег ignore и пропуск выражений типа { expr } — то есть, с пробелами возле скобок.
Василий Наумкин
09 августа 2015, 08:52
1
+1
Вот, придумал плагин с фиксом на событие OnDocFormPrerender, который не меняет код ни Ace, ни CB:
<?php
$modx->controller->addHtml("<script>
    var config = ace.require('ace/config');
    var acePath = MODx.config['assets_url'] + 'components/ace/ace';
    config.set('basePath', acePath);
</script>");
Теперь, насколько я вижу, всё работает.
Владимир
08 августа 2015, 15:16
1
+2
Default Keyboard Shortcuts
может еще кому будут полезны все горячие клавиши Ace.
Василий Наумкин
07 августа 2015, 06:19
1
0
&where=`{
	"color:LIKE":"%black%",
	"OR:color:LIKE":%gray%"
}`
И вот еще один OR:color:LIKE тут добавить не выйдёт — потому что одинаковых ключей в массиве быть не может.

Но можно указывать строки:
&where=`["
	color LIKE '%black%' OR color LIKE '%gray%' OR color LIKE '%white%'
"]`
Подробнее про синтаксис where можно прочитать в официальной документации.

И очень тебя прошу — почини свой enter, ненужные пустые строки в комментарии выглядят неопрятно.
Василий Наумкин
07 августа 2015, 05:24
4
+3
В pdoResources задача решается несколько иначе:
[[!pdoResources?
	&includeTVs=`manuf,diag,color`
	&where=`{
		"manuf":"Sony",
		"diag:IN":[65,85],
		"color:IN":["black","gray"]
	}`
]]
В принципе, там есть и &tvFilters, но только как временная замена при миграции c getResources. Пользоваться этим параметром я никому не советую — &where гораздо гибче, лучше и удобнее.

Вот здесь кратко написано, а вот здесь значительно подробнее.
Максим Кузнецов
04 августа 2015, 23:37
1
+1
Получилось.) Вот рабочий код:

[[!mFilter2? &limit=`25` &loadModels=`voteforms` &paginator=`pdoPage` &class=`msProduct` &element=`msProducts` &depth=`0` &sort=`price:asc, rating:desc`
	&where=`{"class_key":"msProduct"}`
	&leftJoin=`{
		"VoteFormThread": {
			"class": "VoteFormThread",
			"on": "msProduct.id = VoteFormThread.resource AND VoteFormThread.form = 1"
		}
	}`
	&select=`{"Data": "*",  "VoteFormThread": "VoteFormThread.rating AS rating, VoteFormThread.users_count AS totalVoted"}`
	&tpls=`item.list.table`
]]
— рейтинг в чанке выводится плейсхолдером [[+rating]].
Максим Кузнецов
02 августа 2015, 18:42
7
+7
Необходимо создать кастомный класс доставки:

1) Идем в core/components/minishop2/custom/delivery/ и создаем здесь свой пхп файл (допустим, mscustomdeliveryhandler.class.php) со следующим содержимым:

<?php

//Важно: при изменении названия файла, вот в этом месте также нужно изменить класс
class mscustomdeliveryhandler extends msDeliveryHandler{

	public function getCost(msOrderInterface $order, msDelivery $delivery, $cost = 0) {
        $cart = $this->ms2->cart->status();
        
	//условие начисление доставки
        if ($cart['total_cost'] < 5000) {
            $add_price = $delivery->get('price');
            if (preg_match('/%$/', $add_price)) {
                $add_price = str_replace('%', '', $add_price);
                $add_price = $cost / 100 * $add_price;
            }
            $cost += $add_price;
        }
        
        return $cost;
    }

}

2) Идем в настройки магазина -> Варианты доставки.
Создаем новый вариант «Доставка» (или редактируем исходный), после чего заполняем в «дополнительную стоимость» требуемое значение (300 рублей), в Класс-обработчик пишем название созданного файла — mscustomdeliveryhandler, заполняем доступные способы оплаты и ставим галочку напротив «включен».
Александр
09 июля 2015, 22:10
1
0
все разобрался благодаря этой теме modx.pro/development/1547-phpthumb-imposition-watermark/

НЕ хватало слеша после wmi|
Александр
09 июля 2015, 21:37
1
0
Василий, а как png наложить? так правильно:
{"w":300,"h":300,"q":100,"bg":"FFFFFF","far":"C","zc":"0","fltr":"wmi|assets/images/logimg.png|C|50"}
Павел Романов
26 июня 2015, 20:12
1
0
Если включен новый парсер pdoTools и Ajax-пагинация не включена, то можно дешево и сердито )):
[[!#GET.page:lt=`2`:then=`[[*content]]`]]