Михаил

Михаил

С нами с 27 декабря 2012; Место в рейтинге пользователей: #316
01 февраля 2026, 17:45
0
UPD: Предложенный вариант с формированием ссылок рабочий, конечно, но он вызывает перезагрузку страницы.
Как бы решить эту задачу красиво, с Ajax как в МодСтор — ecommerce?paid=1
28 января 2026, 20:11
0
Понял в чем дело ) Чекбокс один выводился. Переписал вывод — норм. Сергей, спасибо за подсказки!
28 января 2026, 20:11
0
Понял в чем дело ) Чекбокс один выводился. Переписал вывод — норм. Сергей, спасибо за подсказки!
28 января 2026, 13:40
0
По стране «Россия» это делается легко, конечно, а как исхитриться и выбрать фильтром «Импорт», то есть не «Россия»?
28 января 2026, 13:19
0
Оказалось не так просто…
[[!mFilter2@mikmFilter?
                    	&paginator=`pdoPage@pdoPage_m`
                    	&limit=`30`
                    	&parents=`3`
                    	&showEmptyFilters=`false`
                    	[[$pdoPage-prefix?]]
                    	&hideContainers=`1`
                    	&element=`msProducts`
                    	&where=`{ [[!+modx.user.id:is=`235`:then=`"Data.remains:>":0.001`:else=`"Data.remains:>":0.001,"Data.image:IS NOT":null`]]}`
                    	&class=`msProduct`
                    	&sort=`ms|remains:desc`
                    	&filters=`
                    		ms|mat
                    		,ms|cattools
                    		,ms|color
                    		,ms|application
                    		,msoption|ms_SlabsBackLight
                    		,ms|weight
                    		,ms|made_in
                    		,ms|price:number
                    		,ms|remains:number
                    	`
                    	&aliases=`
                            ms|mat==poroda
                    		,ms|cattools==vidprodukcii
                    		,ms|color==cvet
                    		,ms|application==obrabotka
                    		,msoption|ms_SlabsBackLight==backlight
                    		,ms|weight==tolschina
                    		,ms|made_in==country
            		
                        `
                    	&showLog=`0`
                    	&tplFilter.outer.poroda=`tpl.mFilter2.filter.select`
                    	&tplFilter.row.poroda=`tpl.mFilter2.filter.option`
                    	&tplFilter.outer.vidprodukcii=`tpl.mFilter2.filter.select`
                    	&tplFilter.row.vidprodukcii=`tpl.mFilter2.filter.option`
                    	&tplFilter.outer.cvet=`tpl.mFilter2.filter.select`
                    	&tplFilter.row.cvet=`tpl.mFilter2.filter.option`
                    	&tplFilter.outer.obrabotka=`tpl.mFilter2.filter.select`
                    	&tplFilter.row.obrabotka=`tpl.mFilter2.filter.option`
                    	&tplFilter.outer.backlight=`tpl.mFilter2.filter.checkbox`
                    	&tplFilter.row.backlight=`tpl.mFilter2.filter.option`
                    	&tplFilter.outer.tolschina=`tpl.mFilter2.filter.select`
                    	&tplFilter.row.tolschina=`tpl.mFilter2.filter.option`
                    	&tplFilter.outer.country=`tpl.mFilter2.filter.select`
                    	&tplFilter.row.country=`tpl.mFilter2.filter.option`
                    	&tplFilter.outer.ms|price=`tpl.mFilter2.filter.slider`
                    	&tplFilter.row.ms|price=`tpl.mFilter2.filter.number`
                    	&tplFilter.outer.ms|remains=`tpl.mFilter2.filter.slider`
                    	&tplFilter.row.ms|remains=`tpl.mFilter2.filter.number`
                    	&tpls=`tpl.msProducts.row_m`
                    ]]
Вот так у меня формируется список фильтров. Мне нужно на странице каталога в верхней части (как в modstore) поставить 2-3 кнопки, нажатие на которые, отфильтрует результаты по конечному значению фильтра ms|made_in (страна). То есть кнопка «Россия» покажет товары российского производства, а кнопка «Импорт» покажет всю остальную продукцию. И, желательно, чтобы это и выглядело как в modstore, то есть без селектов, а именно кнопкой.
27 января 2026, 19:07
0
Точнее, я думал об этом. Что-то вроде применения двух mFilter2 на одной странице. Показалось некорректным. Но попробую как вариант, спасибо
27 января 2026, 18:56
0
Да, можно и так, попробую
19 ноября 2018, 19:36
0
Если кому пригодится, то решил так — в файле ajaxlogin.js вместо
redirect = redirectSubmitResId;
пишем
$('#ajaxlogin-modal').delay(3000).fadeOut();
05 октября 2018, 10:22
0
Спасибо! А где можно почитать про optionFilters? сколько гуглил — ни разу не попадалось
05 октября 2018, 10:21
0
Спасибо, сработало
08 августа 2018, 16:23
0
Спасибо, Василий.
по pagetitle работает правильно (показывает все результаты, потому что уникальных нет).
А мне надо по полю shifr (аналог article). Правильно ли я поменял в коде?
if (!empty($_REQUEST['query'])) {
    $query = htmlspecialchars(strip_tags(trim($_REQUEST['query'])));
    $resource = $modx->getObject('msProductData', [
        'shifr' => $query,
        'class_key' => 'msProduct',
        'deleted' => 0,
        'published' => 1,
        'context_key' => $modx->context->key,
    ]);
    if ($resource) {
        $modx->sendRedirect($resource->get('uri'));
    }
}
08 августа 2018, 13:19
0
Пока отключил $_GET['search'] поставил туда постоянное значение.
Но появилась проблема с sendRedirect — ERR_TOO_MANY_REDIRECTS.
Она есть в твоем варианте:
if($product_id) {
$modx->sendRedirect($modx->makeUrl($product_id));
}
и в моем:
if($product_id) {
$url = $modx->makeUrl($product_id);
$modx->sendRedirect($url);
}
если поставить $modx->sendRedirect('http://yandex.ru'); — редирект без проблем!
что у меня может вызывать многократный редирект?
08 августа 2018, 10:12
0
Спасибо за помощь )
Вчера еще полдня провозился, теперь сервер выдает 500…
На сервере в логах:
2018/08/08 09:42:32 [error] 3191#3191: *56026 FastCGI sent in stderr: «PHP message: PHP Fatal error: Uncaught Error: Call to a member function get() on null in /home/*****/www/core/cache/includes/elements/modsnippet/48.include.cache.php:3
Stack trace:
#0 /home/*****/www/core/model/modx/modscript.class.php(70): include()
#1 /home/*****/www/core/model/modx/modparser.class.php(536): modScript->process(NULL)
#2 /home/*****/www/core/components/pdotools/model/pdotools/pdoparser.class.php(273): modParser->processTag(Array, false)
#3 /home/*****/www/core/model/modx/modparser.class.php(250): pdoParser->processTag(Array, false)
#4 /home/*****/www/core/components/pdotools/model/pdotools/pdoparser.class.php(65): modParser->processElementTags('[[$Header]]', '<section class=...', false, false, '[[', ']]', Array, 9)
#5 /home/*****/www/core/model/modx/modchunk.class.php(117): pdoParser->processElementTags('[[$Header]]', '<section class=...', false, false, '[[', ']]', Array, 10)
#6 /home/*****/www/core/model/modx/modparser.class.php(498): modChunk->process(NULL)
#7 /home/*****/www/core/comp» while reading response header from upstream, client: 194.***.11.106, server: *****.h3.modhost.pro, request: «GET /katalog/kolczo-iz-belogo-zolota,-358380/ HTTP/1.1», upstream: «fastcgi://127.0.0.1:1****», host: "*****.h3.modhost.pro"

Причем такое выдает на любые поля из msProductData. Гуглю на тему получения $_GET['search'] пока не понятно.
07 августа 2018, 17:06
0
$res = $modx->getObject('msProduct', array('article' => $_GET['search']));
[2018-08-07 17:05:32] (ERROR @ /home/s9074/www/core/xpdo/om/xpdoobject.class.php: 240) Error 42S22 executing statement:
Array
(
[0] => 42S22
[1] => 1054
[2] => Unknown column 'msProduct.article' in 'where clause'
)
не могу понять в чем дело…
07 августа 2018, 12:44
0
Понял, поробую
07 августа 2018, 10:27
0
Рабочий сниппет можно увидеть? Попробую понять и применить.
07 августа 2018, 09:48
0
Василий, день добрый. Да именно так, как на modstore.pro.
06 августа 2018, 17:50
0
Вот сниппет и не получается, нужно ж по нажатию «Найти» перейти на товар, при условии, что он есть
06 августа 2018, 17:06
0
Это понятно, вопрос в переходе стазу на товар без страницы «результаты поиска».