Boris Akimenko

Boris Akimenko

Был в сети 08 июня 2024, 13:37
Заказы не принимаю
Фух… Хвала богам! А то я после долгого перерыва зашел сюда, почитал, офигел с того что Вася самоотвёлся, офигел с того что вышла какая-то бомба под названием Evolution 3, и подумал, что MODX3 что-то подозрительно долго не подает признаков жизни.

Но это отличная новость!

Есть ли дедлайн по тестированию?
Николай, ты не прав. Когда возникли товарно-денежные отношения с обязательствами, то дела обстоят не совсем так как ты пишешь. Если на компонент заявлена поддержка на определенный срок, то разработчик именно должен. В обмен на деньги, которые покупатель оплатить тоже должен, а не «по мере появления свободных средств, и запросто может заплатить, например, водкой а не деньгами» :)
Володя, привет!
Скажи пожалуйста, метод getDeliveryPoints отдает точки всех доставщиков которые указаны в настройках?
А то у нас шиптор в списке есть, можно выбрать, но ни одной точки ни на карте ни списком не показывает.
Володя, привет!
В настройках доставки минишопа можно увеличить стоимость доставки на определенную сумму или на процент (!) Для этого в соответствующем поле надо написать число и %, например, 70%

В случае увеличения стоимости на %%, допустим, самовывоза, первое значение кэшируется и первый вариант доставки увеличивается на указанную величину %%, а вот последующие варианты увеличиваются на %% от первого варианта доставки.
Для наглядности я здесь увеличил доставку на 100% и получилось что Shiptor стал 180 вместо 90 (90+90), а вот все остальные варианты стали не в два раза больше, а тоже на 90.
Было:


Стало:


Пробовал с разными процентами — поведение одинаковое.
Поправь пожалуйста!
РЕШЕНИЕ
Открыл сниппет mFilter2 и увидел там вот это:
$tplOuter = !empty($scriptProperties['tplFilter.outer.' . $filter_key])
    			? $scriptProperties['tplFilter.outer.' . $filter_key]
    			: $scriptProperties['tplFilter.outer.default'];
    		$tplRow = !empty($scriptProperties['tplFilter.row.' . $filter_key])
    			? $scriptProperties['tplFilter.row.' . $filter_key]
    			: $scriptProperties['tplFilter.row.default'];
    		$tplEmpty = !empty($scriptProperties['tplFilter.empty.' . $filter_key])
    			? $scriptProperties['tplFilter.empty.' . $filter_key]
    			: '';
Это значит что для отсутствующих фильтров можно указать чанк, а не просто отключить вывод пустых результатов параметром
'showEmptyFilters'=>false
В документации упоминания о «tplFilter.empty.» не нашел.

Я создал чанк с неактивным чекбоксом, в итоге для одного чекбокса получился вот такой вызов:
'tplFilter.outer.msoption|product_label_action'=>'tpl.mFilter2.checkbox.outer',
    'tplFilter.row.msoption|product_label_action'=>'tpl.mFilter2.checkbox.row',
    'tplFilter.empty.msoption|product_label_action'=>'tpl.mFilter2.checkbox.empty',
И в итоге получил вот такой результат:
Володя, спасибо!
Это очень ценная информация!
В итоге я еще обнаружил, что почти все поля по которым происходил поиск в схеме имели вместо 'phptype' => 'string', 'phptype' => 'text'
Я вообще теряюсь в догадках, как у заказчика это всё работало раньше, при таких косяках в коде.
Дело в том, что сайт был заражен и его как-то кто-то починил, после чего перестала работать система учета. Хоть заново всё пиши.
Спасибо, Сергей!
Я всё так и сделал, но есть один нюанс. Реализация, как я говорил, не моя и там оказалось несколько CMP с очень похожими названиями и в БД таблицы тоже с похожими названиями и схожей структурой таблиц. То есть столбцы с одинаковыми названиями.
Так вот в таблице я поменял в которой надо, а файл .map.inc.php менял другой :)
Ну, теперь в обоих CMP будет всё как надо.
$this->where
Это переменная я еезадал вначале скрипта.
В нее я пишу массив значений, чтобы потом скопом их указать в
$c->where($this->where);
Даже если я сразу
$c->where([$k=>$v])
укажу в цикле, результат будет такой же.
Не. С этой штукой всё четко.
Там как раз фишка в работе where()
Если в цикле убрать "%", то в выходном SQL все значения правильные. Но тогда запрос SQL будет не корректным, потому что для поиска надо чтобы были "%"