wfoojjaec
С нами с 31 июля 2019; Место в рейтинге пользователей: #1125 часов назад
Для второго (и последующих) контекста, то есть того, который имеет имя (key), отличное от web. Где там какой домен или поддомен, разницы нет. Как надо...
Как объединить два modx? 8
8 часов назад
Понятно, изучать вкладки в migx…
Так то я пока освоил: создаем и заполняем таблицу с данными… Потом ее выводим…
Битый день гадаю: как сделать в migx-структуру с плавающими колонками.... 7
8 часов назад
Сегодня узнавала в СДЭК, что при наличии договора есть самый дешевый тариф посылка склад-склад — это для юр лиц в договором. И такой же по срокам, но ...
[msCdekWidget] Альтернативный калькулятор доставки СДЭК 18
Вчера в 10:30
Вывожу файл на странице через посредника
8kbit.ru/assets/components/webdav/index.php?action=proxy&source=2&ctx=mgr&src=files/personal/nes/videos/Zoid...
[WebDAV] Медиа источник для облачных хранилищ 22
Вчера в 00:59
Будет обновление АПИ до 3 версии или нет????
[ms_CDEK2] Вывод информации в виджете на других языках 10
25 апреля 2024, 14:36
Насколько я помню, не во всех последних релизах была проблема со старой версией PHP (с 7й), а в 2.8.6 и 3.0.4 (предыдущих на текущий момент релизах из...
Вышел MODX 2.8.7 - починили превью, можно обновляться! 11
25 апреля 2024, 00:32
Демо вроде автор закрыл, а ссылка из поста на компонент вполне рабочая, или о чем речь?
Quiz или как не потерять клиента. 86
24 апреля 2024, 14:54
Давай попробуем вот так — youtu.be/BbyfFDARgZU
mmxApp - разработка новых composer дополнений 4
На счёт дизайна — нет смысла тратить на это столько усилий. Это админка, а не свистопердящий фронтенд. Достаточно какого-нибудь шаблона за 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 секунд, что для автомобилистов вполне терпимо.
Тот самый пример.