Всего 123 810 комментариев

Алексей
24 сентября 2022, 15:26
0
Добрый день. Старый плагин импорта перестал соответствовать норме. Подскажите пожалуйста как его немнго подправить.
<yml_catalog date=«2022-09-24 14:26»>
Такая дата с 19 сентября не подходит нормам яндекса.

Нужно указать её согласно стандарту RFC 3339, вот так:
<yml_catalog date=«2022-05-22T14:37+03:00»>
Артур Шевченко
23 сентября 2022, 18:45
0
Пиши JS как тебе удобно, я потом перепишу на Vanilla, @Баха Волков проверит))) А что касается возьмём в команду или нет, конечно да, от тебя PR с фильтрами)))
Александр Туниеков
23 сентября 2022, 15:35
0
@Артур после вчерашнего разбора mapFilter не сильно выигрывает у mFilter2. Так что его разработка обратно повисла.
Вообще участие в разработке Минишопа меня не сильно интересует. Он меня и в теущем виде устраивает, но вот фильтры для Минишопа интересуют. С ними проблемы есть.
mSearch2 платный компонент и дорабатывать его, чтоб деньги шли левому дяде меня обламывает :-).
Думаю, что участие в разработке бесплатных фильтров для Минишопа, мне интересно. Есть только одно препятствие. Я, обычно, пишу на jQuery. И на ванильный JS не спешу переходить. На jQuery удобней писать и есть мого примеров в интернете. Но если перед глазами будут лучшие примеры кода на ванильном JS, то писать на нем, конечно, смогу.
Примете в комманду? :-)
Илья
22 сентября 2022, 14:29
0
В localizator реализовано через setOption.
Если идти тем же путем, то можно взять за основу способ Василия Наумкина Переключение контекстов мультиязычного сайта, но
работать только с контекстом web и вместо переключения контекста переопределить значения для текущего контекста (web).

//выбираем только контекст web
$q = $modx->newQuery('modContextSetting', array('context_key' => 'web'))

//разбираем запрос в массив
$requestToArray = explode('/',$request);

//если в запросе en директория
if($requestToArray[0] == 'en'){
$modx->setOption('site_url', 'http://site.ru/en/');
$modx->setOption('cultureKey','en');
$modx->setOption('http_host','site.ru');
$modx->setOption('base_url','/en/');
$base_url = 'en';
}
//если директория ru
if($requestToArray[0] == 'ru'){
$modx->setOption('site_url', 'http://site.ru/ru/');
$modx->setOption('cultureKey','ru');
$modx->setOption('http_host','site.ru');
$modx->setOption('base_url','/ru/');
$base_url = 'ru';
}

Остается, конечно, вопрос про кеш…
Илья
22 сентября 2022, 14:04
0
Точно, в localizator такое было реализовано!
vectorserver
22 сентября 2022, 12:21
0
Для динамического обновления цены доставки в корзине можно использовать такой скрипт:

<select name="shk_delivery">
    <option value=""></option>
    <option id="otherTransport" value="700">Деловые линии</option>
</select>
<script type="text/javascript">
$(document).bind('ready',function(){
    
    let otherTransport =  $('#otherTransport');
    //Запишем цену отданную API сервисом
    otherTransport.val('Тут пишем цену');
    
    $('select[name="shk_delivery"]','#shopOrderForm').bind('change',function(){
        SHK.selectDelivery( $(this).val() );
    });
});
</script>
Дмитрий
22 сентября 2022, 10:18
0
как Вам помогли? мне на reg.ru ответили «Изменить sql_mode глобально не возможно»(
Роман
22 сентября 2022, 08:55
0
Тут основная боль, это phpthumbon с наложением ватермарка. =)
Александр Туниеков
22 сентября 2022, 08:39
0
Решил описать кеширование mFilter2. Начал здесь https://modx.pro/development/23310
Kirill A. Rusanov
22 сентября 2022, 08:17
0
Кажется, вы начали писать что-то подобное localizator. Он бесплатный – читайте доки, смотрите код.
Алексей Смирнов
21 сентября 2022, 23:30
0
Посмотрите это решение:
modx.pro/solutions/23005
Артур Шевченко
21 сентября 2022, 20:45
0
На самом деле, если сделали фильтры как в mFilter2, то suggestions уже просто посчитать.
Дело не в количестве строк кода, а в этом
И при выборе какого-то фильтра делает suggestions 25с.
Александр Туниеков
21 сентября 2022, 20:20
0
Ну тогда надо архитектуру как-то менять.
TV rubrika со списком множественного выбора (там несколько значений вида имя1==1||имя2==2||имя3==3) храниться в базе как текст например такой «1||3||13». И ни как запросом LIKE не отличишь 1 от 13.
Нужно список множественного выбора хранить как отдельные значения в таблице. Например tvsuperselect храниться в 2 таблицах и как текст «1||3||13» и в отдельной таблице отдельные значения. Я не помню как именно.
Если использовать tvsuperselect, то, наверно, можно в pdoPage подцепить 2-ю таблицу и написать что-то вроде
[[!pdoPage?
        &parents=`4`
        &loadModels=`tvsuperselect`
        &leftJoin=`{"2-таблица":....}`
        &groupby=`modResource.id`
        &where=`{"2-таблица.value":[[*option]]}`
        &tpl=`RowTpl`
]]
newbmod
21 сентября 2022, 20:02
0
Спасибо большое!
Да такой подход действительно работает! Мне подошел этот вариант (как раз сейчас 9 элементов).
Но есть ли более универсальный вариант, где более 10 вариантов?
Александр Туниеков
21 сентября 2022, 19:23
+1
Может так
[[!pdoPage?
        &parents=`4`
        &includeTVs=`rubrika`
        &where=`{"rubrika:LIKE":"%[[*option]]%"}`
        &tpl=`RowTpl`
]]
если значения rubrika меньше 10 должно ловить. Если больше 10, то на option=1 словит и 1 и 10 и 11 и т.д.
Александр Туниеков
21 сентября 2022, 18:44
0
Не быстрее. Так только от 1 запроса на картинку избавишься. По идее самый быстрый вариант подцепить парент титле и картинку в pdoResource. На 99% уверен. Но, конечно, если гнаться за скоростью, надо тестировать все варианты и на практике смотреть уже.
newbmod
21 сентября 2022, 16:55
0
TV текущего ресурса — option
TV выбираемых ресурсов с множественными значениями — rubrika
Александр Туниеков
21 сентября 2022, 16:51
0
Не знаю как в прошлый раз тестировал. Тогда в моем компоненте mapFilter загрузка с подсчетом результатов на 10т товавов в каталоге выдавало около 10с, а сейчас первая загрузка около 1,2с а вторая с кешем mysql 0.0769041: Total time. (В каталоге 10т. товаров — это самый большой каталог. Всего товаров на сайте 27т.). Правда сейчас я чуть подшаманил и запрос делаю только для 1 каталога.
А вот прокешированный mFilter2 на этом же каталоге при загрузке из кеша массива ids ресурсов тратит 1.7866640: Total time. И при выборе какого-то фильтра делает suggestions 25с.
mapFilter:

mFilter2:


То есть mapFilter работает все таки быстрее mFilter2. И имеет смысл его доделывать. То есть, я не буду выкладывать код. В течении 2-3 месяцев доделаю и буду продовать :-).

пс. Почему-то mFilter2 ошибочно считает suggestions. Для женщин он посчитал 31 кольцо, а на самом деле их 4082.

пс2.
в mFilter есть подсчёт результатов по каждому фильтру, но для фильтров из коробки я этого делать не планировал
На самом деле, если сделали фильтры как в mFilter2, то suggestions уже просто посчитать. В mFilter2 это 100 строк кода всего.
Роман
21 сентября 2022, 16:50
0
А TV текущего ресурса как называется?
newbmod
21 сентября 2022, 16:46
0
Нужно чтобы хотя бы одно из множества значений TV выбираемых ресурсов совпало со значением TV текущего ресурса