Андрей Шевяков

Андрей Шевяков

С нами с 28 сентября 2016; Место в рейтинге пользователей: #62

Отдаем модные форматы картинок в webp и avif напрямую через nginx и apache в обход разметки



Всем привет!
Я тут работал над одним проектом, в котором очень много контентной и интерфейсной графики, десятки тысяч изображений и, конечно, возник вопрос оптимизации сайта, чтобы удовлетворить требования поисковых систем.
Энтузиазма добавили, появившиеся относительно недавно у гугла, так называемые Core Web Vitals.
Кто не в курсе это пачка технических показателей качества сайта, которые скоро будут включены в алгоритм ранжирования и все тормознутые сайты из-за них, типа, покатятся вниз.
Ну в общем, встала задача оптимизировать картинки, а также сделать так, чтобы не пришлось переписывать кучу html кода, чтобы эти картинки туда вставить.
Семён Кудрявцев
26 апреля 2021, 23:44
modx.pro
19
8 251
+21

Генерируем аватар с первой буквой пользователя

Данную задачу я встречаю впервые, поэтому возможно упускаю какую-то инструкцию.
Используется библиотека Letter Avatar



Эту библиотеку можно скачать с гитхаба и подключить, либо через composer
Я использовал composer

Необходимо создать плагин setUserAvatar на событие OnUserSave
Евгений Webinmd
26 апреля 2021, 02:28
modx.pro
3
2 199
+6

Делаем стоимость доставки у заказа в админке редактируемым полем

Всем привет!
Возникла задача, сделать поле стоимости доставки у заказа в админке редактируемым вручную.
Я, честно говоря, до сих пор не понимаю почему это не сделано из коробки — просто нет никакой возможности поменять стоимость доставки уже сделанного заказа из админки. Я не говорю про авто-пересчет через все нужные классы доставки, понятно, что трудно повторить их логику в рамках админки, но просто сделать поле вручную редактируемым не такая уж сложная задача.
Проблема следующая: если клиент при согласовании заказа решил сменить способ доставки, например с «Курьером» на «Самовывоз», как выставить стоимость доставки в 0 и пересчитать стоимость заказа? Вот и начинаются танцы с бубном, менеджеру надо пойти сделать ещё один заказ через фронт сайта, ну в общем, думаю, знакомая тема многим.
Семён Кудрявцев
31 марта 2021, 17:38
modx.pro
4
1 565
+10

[СДЕЛАЙ САМ] mFilter2 фильтрация по диапазону дат.

Приветствую, к сожалению не нашёл приемлемого для себя решения данной задачи поэтому «написал» своё, в кавычках потому что немного подправил. На мой взгляд очевидно, что дата это число, а в mFilter2 есть фильтрация по диапазону чисел, значит нужно превратить дату в число. Чтобы при обновлении компонента ничего не сломалось, создадим свой класс фильтрации customfilter.class.php в папке core/components/msearch2/custom/filters/, потом прописываем в системную настройку mse2_filters_handler_class = CustomFiltersHandler
Артур Шевченко
29 марта 2021, 00:14
modx.pro
9
1 529
+8

Обновление автоустановщика шаблонов BELISSIMO 0.3

Вот и я наконец сделал ещё одно обновление BELISSIMO 0.3.
Что было сделано:

Добавлен сайт шаблонов themewagon.com
Теперь в «модуле» 3 сайта с шаблонами, суммарно более 4 000 шаблонов);
Добавлена хоть какая-то безопасность
  • Сделан .htaccess для папки libs
  • Все «активные файлы» (те что принимают POST/GET параметры) будут 301 редиректом отправлять на страницу доступ запрещён если нет авторизации
  • В скрипте загрузки файлов тоже есть проверка на админа)
  • Пользователь будет авторизован в BELISSIMO если он авторизован в админ панели MODX
Это не панацея но хоть что то.
Илья
23 марта 2021, 17:16
modx.pro
1
1 208
+3

Массовое редактирование товаров minishop (отредактировать опцию у товара)

Подскажите как можно отредактировать опцию у товара, через консоль? minishop2
Товаров свыше 2000, нужно массово изменить везде одну опцию (у всех будет одно значение)
Илья Александрович
04 марта 2021, 14:56
modx.pro
1
1 245
0

[Мультиязычность] Скрипт массовой связки разных языковых версий (в разных контекстах) по URI [Babel]

Надо добавить мультиязычность на сайт через Babel. Для этого была сделана русская версия (в контексте web) и затем сделаны ее копии (en и de).

Далее нужно было связать все версии языков ресурсов между собой.
Fullstack
27 февраля 2021, 23:04
modx.pro
7
1 742
+9

Отложенная отправка писем из minishop2 клиенту

Стояла задача ускорить формирование заказа. Слабым звеном на сайте оказалась отправка почты. Было решено ее отправлять после формирования заказа.

Для этого возникла идея сделать следующее:
1. Отключаем оповещение у новых заказов
2. Создаем новый статус заказа Оповещение с идентичными чанками.
3. Пишем сниппет и вызываем его из CronManager:
<?php
// смотрим последний заказ
$c = $modx->newQuery('msOrder');
$c->where(array('type' => 0));
$c->limit(1);
$c->sortby('id', DESC);

$miniShop2 = $modx->getService('miniShop2');
$results = $modx->getIterator('msOrder', $c);

foreach ($results as $result) {
         $order_id = $result->get('id');
         $status = $result->get('status');\
		 // если статус заказа Новый
         if ($status == '1') {
             $miniShop2->changeOrderStatus($order_id, 25);
             $output = $order_id.' - '.$status;
         }
     }

//Пишем результат в лог по адресу: core/cache/logs/order.new.log
$modx->log(modX::LOG_LEVEL_ERROR,$order_id, array(
    'target' => 'FILE',
    'options' => array(
        'filename' => 'order.new.log'
    )
));

return $output;
Вроде все работает.

Вопрос: все ли сделано верно и есть ли более правильное решение?
Валентина Павлова
17 февраля 2021, 18:32
modx.pro
2
904
+1

Сниппет цифры вместо текста в ссылке

Здравствуйте!
Есть ли сниппет, который бы создавал в новости ссылку не текст, а цифры?
Например: site.ru/novosti/025456/
На сайте много новостей и хотелось бы, что бы новости автоматом создавались именно цифрами. (Только раздел новости, а остальные как положено транслитом).
Aleksanders
11 февраля 2021, 20:46
modx.pro
1
787
0