Максим

Максим

С нами с 03 июля 2015; Место в рейтинге пользователей: #258
Максим
11 февраля 2022, 12:42
0
Шрифт «MODX» в статье — это шрифт из «Черепашек ниндзя»? )))
Максим
11 февраля 2022, 11:04
0
Мы делаем что-то хорошее и стараемся делать это что-то хорошо
В своём понимании этого «хорошего». Оно может отличаться у людей.

И для проведения работ по смене версии MODx с 2 на 3, должны быть очень значительные причины, в первую очередь для бизнеса.
Если рассуждать именно так, то никакого смысла конечно же нет! Так же как менять modx2 на какой-нибудь Laravel. Какой смысл? И так всё работает!
У нас некоторые клиенты до сих пор работают на Evo!
Главная причина «зачем» — это появление новых возможностей в «старых» компонентах. Чем больше потребности в таких новых возможностей, тем больше вероятность перехода на 3-ю версию.

потому что большинству моих клиентов...MODx 3 по сути и не нужен
Большинству? Т.е. есть меньшинство, кому нужно?)))
Для большинства моих клиентов не нужен React или Vue. И? )))) Не нужен — не используй))) В чем проблема то?)))
Для клиентов, как мне кажется, вообще пофиг MODX или WP, ему главное чтоб всё работало как надо!
MODX 3 — это по сути инструмент для разработчиков. Для кого-то одни плюсы, для кого-то другие.

не могу пока что найти серьезных причин в необходимости развития системы
Для тебя их нет, ок. Для других есть, потому что " врятли мы все такие садимся за комп и говорим, «а ну ка сделаю ка я сейчас дерьмо»"
Максим
11 февраля 2022, 09:04
0
Если вы просто хотите создать экземпляр некоторого класса… используйте loadClass()
Почему-то всегда думал, что loadClass просто подключает класс, а getService как раз создаёт экземпляр.
Максим
09 октября 2021, 18:06
0
Предложить свой код разработчикам?) Ахахаха… Отличная шутка!)
А что конкретно смешного в этом?
Максим
08 октября 2021, 12:13
0
В mSearch2 конфиг и инициализация подключаются в сниппетах. Сам компонент подключается в php-классе.

Почему нельзя сделать так же с minishop2 в одном из следующих обновлений?

Можно, думаю сделают. Вопрос только когда?))) У них там полно работы судя по issue на github.
Можешь туда им написать, предложив свой код.
Максим
29 сентября 2021, 07:10
0
Нужно опытным путем проверять.
Максим
28 сентября 2021, 15:55
0
Из документации к mFilter2:
&paginator pdoPage Сниппет для постраничной навигации, по умолчанию pdoPage. Вы можете указать набор параметров для него: &paginator=`pdoPage@myParams`.
Сооветственно…
— можно ли просто отключить такое поведение пагинации? Сделать чтобы при клике на 2 страница перезагружалась?
У pdoPages есть параметры: ajax и ajaxMode.
Есть еще параметр ajaxHistory. Можно с ними поэкспериментировать.

— или поделитесь пожалуйста кто какие решения уже придумал?
Через события, например. Ссылка
Максим
27 сентября 2021, 10:56
0
Вообще, на мой взгляд, «количество» и «качество» — это общие свойства для всех товаров, как и штрихкод, вес, цена и т.п. Я бы делал их через систему плагинов минишопа (т.е. добавление их на вкладку «свойства товара»), а не через опции (вкладка «опции товара»).
Максим
22 сентября 2021, 13:30
1
+2
Недавно ковырялся в скриптах минишопа, заметил, что нет callback-функции для miniShop2.Cart.status(). А ведь могло бы пригодиться (например, с той же мини-корзиной какие-то действия производить, добавлять классы или что-то еще).
И вообще, в чем преимущества этих callback? Почему бы не сделать через события? Например, написать (можно на чистом JS):
$(document).trigger('beforeAddToCart', options)
А там кому надо, тот напишет
$(document).on('beforeAddToCart', function(event, options){});
Как минимум короче код и привычнее.
Максим
09 сентября 2021, 13:00
0
Напоминает MIGX, только более продвинутый.
Максим
03 сентября 2021, 13:04
0
Мне иногда помогает жестка перезагрузка страницы. Открываем инструменты разработчика (клавиша F12), потом жмем CTRL+F5 (если firefox) или право кнопкой мыши по значку «обновить» и потом «очистить кэш и жесткая перезагрузка» (если chrome). Пару раз так сделать. Потом сохранить попробовать (для начала без ввода изменений).
Еще было такое из-за какого-то ТВ поля. Отключал его — норм работало.
Максим
03 сентября 2021, 12:46
0
*(даже если указать
<head>
и
<body>
как в инструкции написано)
Максим
03 сентября 2021, 10:33
0
Хочу в модальном окне подгружать информацию о товаре. На самой странице нет ни одного вызова сниппета от miniShop2. Если вызывать модальное окно с чанком, в котором вызывается любой из сниппетов от miniShop2, тогда скрипты от miniShop2 НЕ подключаются в чанке (даже если указать и как в инструкции написано). Если указать в параметре services значение minishop2, тогда скрипт подгружается. Но!!! Он подгружается не в модальном окне, а сразу на странице! А раз он подгружается сразу, значит это автоматом замедляет загрузку и отрисовку страницы! Зачем это надо? (вопрос риторический) может человек ниразу не зайдет в модалку.

Так вот вопрос такой — почему скрипты от сниппетов minishop2 не подключаются в модалку?

Другие скрипты (из своих сниппетов), подключаются. Искал в настройках, в коде компонента, так и не нашел где это всё дело «вырезается» и по какой логике…
Максим
22 августа 2021, 10:44
0
У меня просто пример, не проверял. В примере многоточие стоят. Это означает, что там другой код должен быть. А именно — проверка на массив и т.п.
Может быть даже лучше в отдельный сниппет вынести.
{set $data = [
    'Фрезеровка' => 2,
    'Гравировка' => 123
]}
{foreach $options as $option}
    {if $option.value is array}
        {foreach $option.value as $key => $value}
            {if in_array($value, $data)}
                {set $option.value[$key]}
                    <a href="{$data[$value]|url}">{$value}</a>
                {/set}
        {/foreach}
        {$option.value | join: ', '}
    {/if}
    ...
{/foreach}
(не проверял)
Максим
20 августа 2021, 17:12
0
Ну тогда как было написано выше. Только не по id, а прям по названию проверять. Примерно как-то так.
{set $data = [
    'Фрезеровка' => 2,
    'Гравировка' => 123
]}
{foreach $options as $option}
    ...
    {if in_array($option.value, $data)}
        <a href="{$data[$option.value]|url}">{$option.value}</a>
    {else}
        {$option.value}
    {/if}
    ...
{/foreach}
Максим
18 августа 2021, 20:32
0
Сессии modx хранит в базе… поэтому тут всё равно будет БД и куча записей (как я понимаю).
Максим
18 августа 2021, 20:19
0
в первой версии нужно изменять параметр ms2_order_handler_class
А в этой версии он сам изменяет?))) Или какой-то обходной путь найден?)))
Максим
18 августа 2021, 14:45
0
Нужен конкретный пример. Какая конкретно опция (цвет, вес или еще что-то), как она забивается (тип какой: текст, число и т.п.), на какой ресурс должна вести, вообще логика работы в целом (т.е. что хочешь получить) и т.д.
А так, если честно, не особо понятно…
Максим
18 августа 2021, 13:31
0
Разобрался, дело в кавычках…
Максим
10 августа 2021, 19:54
0
Ошибку нашел. Файл:
core/components/tinycompressor/model/tinycompressor/tinycompressor.class.php

Строка 98.
$path = $this->modx->getOption('base_path') . $container . $file['name'];

$container уже содержит base_path.
Плюс, между $container и $file['name'] должен быть разделитель /.

После исправления, всё заработало. В личном кабинете TinyPNG появилась информация о количестве сжатых файлов.