wfoojjaec
С нами с 31 июля 2019; Место в рейтинге пользователей: #11225 минут назад
Собственно пока писал пост, пришла идея костыльного решения, отдельным выводом записать в плейсхолдер id отобранных товаров и их передать в фильтр и т...
mFilter2: Не работает фильтрация при нескольких значения where 1
45 минут назад
А это уже моя ошибка в последней версии mmxDatabase, уже исправил.
composer update
composer exec mmx-forms installи всё должно работать.
Новый тип дополнений: mmxDatabase и mmxForms 35
Вчера в 20:16
UPD
Добавил подключение js.cookie.min.js и ваш код заработал. Спасибо!
Как вывести похожие товары по списку опций? 12
Вчера в 13:29
Здравствуйте. Статус заказа меняется на «Оплачено» после того как покупатель оплатил товар и произошёл редирект обратно сайт. Появились случаи когда п...
[mspSberbank] Оплата заказов miniShop2 через процессинг Сбербанка 108
Вчера в 13:27
Так вроде, пошустрее будет ):
$sql = "
SELECT tvr.value, tv.caption
FROM {$modx->getTableName('modTemplateVarResource')} t...
Получение всех TV полей ресурса из конкретной категории и вывод в чанк 1
03 мая 2024, 11:45
Всем привет! Подскажите пожалуйста а можно ли сделать фильтр в 2 уровня и как это сделать? Т.е. например мне нужно сделать: домен/бренд-из-сео-фильтра...
Анонс SeoFilter - ЧПУ+SEO для mFilter2 и не только 120
02 мая 2024, 15:27
Есть у кого-то идеи? или в данном случае через плагин и событие пробовать, или мсинк тупо всё обрезает?
Msync как записать html контент, а не обработанный без тегов? 1
02 мая 2024, 12:15
воротите, что хотите. Вплоть до удаления исходников сайта, это уже на ваше усмотрение.
Это определённо очень важная возможность 😊
mmxFenom - нативная интеграция шаблонизатора 3
02 мая 2024, 11:30
Управляя настройками mysql, можно задать параметр sql_mode пустым значением (после чего все заработает), но хостер такую возможность не дает… Есть ли ...
pdoTools и sql_mode=only_full_group_by - ошибки при работе PdoPage 1
На счёт дизайна — нет смысла тратить на это столько усилий. Это админка, а не свистопердящий фронтенд. Достаточно какого-нибудь шаблона за 5$ с themeforest по тегу dashboard, подогнанного под нужды MODX.
На мой взгляд это упирается совсем в другую, более глобальную проблему — ExtJS. Отказаться от него сложно. Использовать bootstrap (для которого уйма дешёвых и красивых решений для админок) в паре с ним крайне затруднительно. Лучшее, что можно безболезненно натянуть на текущую админку — это тему для ExtJS с мелкими правками для разного разрешения, где это вообще возможно (почти нигде. т к ExtJS почти всегда меряет размеры скриптами).
https://datatables.net/
Из того, что у них особенно понравилось — хорошо оптимизирован поиск и сортировка. Неплохо выгребает даже на 200к записей.
Обрабатывать HTML, как и любую структуру, регулярками, а не полноценным построением подели через парсинг, очень плохая идея. Про это неоднократно пишут. Возможны самые различные последствия, самые вкусные из которых:
1. Повреждение преформатированного текста, где важен каждый символ.
2. Повреждение ld+json разметки, json-аттрибутов, шаблонов, где пробелы тоже часто играют роль.
3. Повреждение JavaScript кода, в частности регулярных выражений, строк и логики (потеря перевода строки может приводить к нерабочему коду).
И другие подобные прелести.
Лучше пользоваться услугами CDN, если уже совсем лень.
Ultron, как и любой маркетплейс, берёт с продавца комиссию. Если я правильно помню, то цифры следующие (пример из письма от вс, 26 янв., 10:12):
Требований по обновлению самих сборок к разработчикам они не предъявляют (исходя из того же письма). Поэтому не понятно, кто в конечном счёте должен следить за актуальностью версий дополнений и движкой в сборках. Вероятно сам покупатель (есть ли об этом какое-то предупреждение на видном месте или в справочном разделе — хз).
К чему это я. Маркетплейс, конечно, хороший, но конкретно этот момент продуман ну очень хреново. Лично я отказался сотрудничать с ними, но не по этой причине. К сожалению платные компоненты включить в сборку у них возможности нет. Было бы неплохо, если бы комиссии действительно оправдывали себя (защита покупателя, накопительные скидки, техническая поддержка и прочие, обязательные, для современного мира плюшки).
Буду рад, если смогу как-то улучшить описание. Тестирование на modhost не такой и бессмысленный процесс.
Если сомневаетесь — обязательно воспользуйтесь тестированием компонентов. Если что-то не понятно из документации — смело задавайте вопросы. Для того автор, то есть я, и указывает свои контакты, где это возможно.
Для работы компонента его достаточно просто установить. Сниппет служит для конфигурации, чтобы отдельные страницы или шаблоны можно было обрабатывать по другим правилам или с другим набором подключенных библиотек.
Ранее тестировали PageSpeed для Nginx. Из проблем — это не промышленное решение. Он либо есть у хостера либо его нет. Если сервер свой, то надо ставить руками. И обычным apt-get install к сожалению обойтись не выйдет, нужно угробить часы админского времени. Из-за этого пришлось от него отказаться.
Следующим шагом был выбор провайдера. Именно он влияет на рейтинг «первого байта». И к сожалению скорость для РФ не значит скорость для Google. Оптимальным показался именно выбор провайдера на территории Европы с использованием CDN. Выбор очень широкий и качество достойное.
Ленивая загрузка изображений делалась через bLazy (есть и другие, превосходные аналоги).
Сжатие спева делалось через MinifyX. Он офигенно справляется, если все ресурсы уже скачаны и разложены по папочкам.
Позже накопился ворох плагинов на JavaScript, которые приходилось менять или обновлять. Аналогично было и с версиями Bootstrap. Пришлось переехать на NodeJS (webpack, gulp, тысячи их). Всё офигенно, но зачем тогда MODX?..
Отдельных мучений стоила минификация HTML. В некоторых случаях CDN давал не самые подходящие результаты, и Google не пропускал, предлагая сжать HTML ещё лучше, а минификаторы из официальных репозиториев могли похвастаться одной и той же \s+ регуляркой, которая съедала всё на своём пути.
Google тем временем требовал ещё и грамотно поставить теги preconnect и использовать async/defer.
Плюнули. Написали свою шарманку для склеивания скриптов и стилей в кучу. Завернули туда же минификатор. Назвали PageSpeed.
Следующим шагом был webp. Первой попыткой была конвертация картинок «на лету». Стало понятно, что этот идиотизм проживёт до первой тысячи картинок или посетителей, и память превратится в склероз.
Второй — попытка делать отконвертированные копии при загрузке или по cron-у. Ждать час или каждую минуту сканировать кучу каталогов.
Третьей — очередной модуль для Nginx.
В итоге — конвертация с сохранением во временный кэш, лежащий рядом с движком. Расход места возрастает примерно на половину веса картинок, но зато конвертация идёт «по требованию». Если какую-то картинку вдруг вздумалось поменять — кэш улетает по кнопке и конвертация сама пройдёт заново.
Огромный минус этой фичи — зачем людям сохранять картинку с котиком на свой телефон в формате webp? А ведь получив ссылку на такую картинку выбора у человека уже нет — его браузер сказал, что он поддерживает webp.
В итоге был выбор: или искать спеца под нужный фреймворк или немного допилить уже известный движок. Второе оказалось проще.
Любой сайт нужно обслуживать, если это не визитка на чистом HTML.
Из того, что падает и невозможно использовать:
1. mSearch2 — первый камень в огород Наумкина. Но и его понять можно — предусмотреть идеальный вариант для всех сайтов задача непосильная.
2. pdoPage — катастрофа астрономических масштабов. Постраничная навигация тоже делается своими силами. Всему виной передача всех id в дочерний сниппет.
3. Стандартная постраничная навигация в товарной админке сжирает RAM. но частично работоспособна.
Из серьёзных ограничений:
1. msProducts нужно запускать аккуратно, хорошо подбирая для него параметры.
2. Максимум 1 TV, максимум 1 свойство у товаров miniShop2 (если оно есть у всех товаров). Всё из-за особенностей таблиц БД.
3. Успех запуска pdoMenu сильно зависит от дерева категорий.
Очевидно, что регулярный импорт такой кучи товаров тоже нужно продумывать своими силами, чтобы избежать дублей, особенно если поставщиков тоара много, обновляются они когда попало и как попало.
Время генерации страницы каталога в среднем около 3 секунд, что для автомобилистов вполне терпимо.
Тот самый пример.