Іван Клімчук

Іван Клімчук

Был в сети 13 мая 2025, 17:35
Заказы не принимаю
В обновленном варианте тоже не идеально, так как при каждом запросе будет запрашиваться сайт погоды, чтобы может быть медленно. Такие вещи как правило или запрашивают скриптом по расписанию (cron) или кешируют результат на определенное время. Часа хватит. Можно класть в кеш самого MODX через
$modx->cacheManager->set('testdata', 'My cached data.', 3600);
Механика проста:
1. Проверяем, если ли значение к кеше.
2. Если нет, делаем запрос на сервер и сохраняем полученное значение к кеш
3. Выводим значение из кеша
в сендексе такого нет, но ничего не мешает же написать скрипт, который подписчиков добавит. Когда руками по одному добавляешь — всегда можно проверить. Когда сам юзер подписывается — хуже, но тоже валидация может помочь. А когда загружаешь из экселя 200+ адресов, можно и пропустить ошибку.
Для разработки компонента — PHPStorm. Лучше наверное и нет. Проект создается для компонента, рабочая папка с modx подключается как зависимость в настройках шторма. После индексации он умеет автодополнение и переходы вверх/вниз по наследуемым классам. Не все и не всегда работает идеально, так как в MODX нет автолоадинга и других удобных плюшек (код еще для версии 5.2 писался), но работать можно.
Что касается сниппетов — то писать их через IDE можно, но нужен еще доп. шаг, чтобы их синхронизировать. Так как элементы представлены как объекты xPDO, то они мапятся в БД, а значит нужно как-то связывать код в файле и поле в БД. В самой системе есть возможность указывать статический элемент или нет и указывать файл, где лежит содержимое. Работает нормально, но не для всех объектов. Я же использую Gitify, который умеет уже кучу всего. Но это к разработке компонента не относится.
Василий prev/next не писал, поэтому не 10-15 минут. Добавить cannonical не проблема, но мы тут не сниппет на коленке пишем, чтобы пихать все подряд и абы как.
Не исключено, что данная возможность в будущем появится, но пока не до конца понятно, как правильно должен работать cannonical. Даже в комментах (ваших и нет) к этоq заметке нет однозначного ответа.
делать самому не очень удобно, так как нужно вызывать 2 раза pdoPage, а это дублирование кода со всеми вытекающими, да и запросов больше в 2 раза (учитывая, что pdoPage нужно вызывать не кешированным). Была попытка использовать плейсхолдеры выше на странице, но это работает через раз, так что данное улучшение было оправданно. С prex/next все понятно, с cannonical, к сожалению нет.
По вашему же примеру, как быть с ссылками? /page.html?p=1&brand=LG и /page.html?p=1&brand=Sony
И таких примеров выше. Василий прав, с prex/next все однозначно, вперед и назад. Вариантов с cannonical в разы выше, а перебрать все комбинации, да еще чтобы и правильно, не реально.
Если готовы предложить рабочий реальный алгоритм 100% определения таких ссылок, ради бога, шлите пулреквест :) Вам только спасибо скажут.
я бы robots.txt клал отдельным файлом, так он быстрее отдается как файл те же nginx. Ну и в случае, если налажали с сайтом, то файл будет работать в любом случае. Это же касается и карты сайта и других важных файлов для сторонних сервисов.