- Заметки 11
- Комментарии 24
5 часов назад
самый просто вариант это хукЯ тоже так думаю
Этот хук обрабатывает форму "Купить в 1 клик", создает заказ в miniShop2 1
04 сентября 2025, 12:45
Нет, данную проблему не решил, потому как она мне и не мешала… Так как с сам minishop3 использовал на паре проектов где доставка и не требовалась. Буд...
[MiniShop3] - Новости, Планы 34
04 сентября 2025, 12:35
казалось бы чего, открой другой браузер, где не выполнен вход и заноси заказаМожно установить adminTools и запретить автоматическое залогинивание в ко...
Оформление заказа minishop2 1
04 сентября 2025, 12:27
modx.pro/help/12408#comment-81924
minishop2 отправить фотографию товара заказчику 11
03 сентября 2025, 19:36
Если ты просто скачал компонент из репозитория и не запускал composer install — запусти.
MiniShop3 - 1.0.0-alpha 20
31 августа 2025, 21:09
Экранировать, то есть так: $c->sortby($this->modx->escape('rank'), 'ASC');
Во всех файлах?
/core/components/pageblocks/processors/mgr/co...
PageBlocks. Удобное управление контентом сайта. 46
29 августа 2025, 18:05
Василий, здравствуйте! Очень интересное (и правильное) направление для развития modx экосистемы как мне кажется. В последнее время для разработки боль...
Новый тип дополнений: mmxDatabase и mmxForms 41
29 августа 2025, 17:29
Пересобрал шаблон для новостей которые через Collections.
В какой TV была ошибка так и не нашел (((
Мodx revo 3.1.2 при запросе страницы, связанной с Collections сервер возвращает ошибку 500 3
28 августа 2025, 21:34
Добро. Сейчас, сейчас… прольётся чья-то кровь )))
Доработки сайта сообщества modx.pro 11
Я действительно не понимаю, в чём может быть проблема вывести какие-то значения в чанке, а потом скопировать их через javascript.
Если это получается сделать с title и alt, что мешает это сделать с другими элементами? Очевидно, вы просто не знаете, как работать с jQuery.
В моём коде title и alt — это атрибуты тега img, поэтому и обращение к ним идёт через image[0].title и image[0].alt. Если рядом с картинкой будет элемент с классом, например, desc, то получить его можно так:
Это весь нужный javascript код. 80 lvl не требуется даже близко.
Чтобы всё работало, нужно не забыть вывести описание на страницу:
Я вывожу его в скрытом виде, чтобы не мешало.
А еще нужно предусмотреть блок для вывода текста в главной картинке
Как видно, речь исключительно о работе с javascript, никаких особенностей, связанных с ms2Gallery, здесь нет.
Все верно. Из-за этого и была проблема. Дело в том, что $modx->regClientStartupScript() и подобные методы работают со свойствами самого $modx, а вот при сохранении кеша используются свойства самого ресурса. А так, как в отработанных уже после процессинга тегах выполняется типа $modx->regClientStartupScript() (который устанавливает свойства для $modx, но не устанавливает их для $modx->resource), то при генерации кеша документа этих скриптов в кеше просто нет. joxi.ru/4Ak3wb9tMX8nGA
Решение: пишем плагин на событие OnBeforeSaveWebPageCache, простейший вид:
И тогда при генерации кеша документа будут сохранены все скрипты. joxi.ru/LmGVQx0uRJN1Xr
При чем это будет выполняться только при первом заходе на страницу. Когда документ уже закеширован будет, это не будет выполняться.
UPD: Может даже имеет смысл это в ядро запулить (то есть код кешманагера поправить), так как очень похоже на багу самого MODX-а. Какая-то глупость в двух отдельных сущностях хранить эти переменные и создавать/получать в разных местах на разных этапах.
Result:
Все ajax запросы eventsCalendar2 отправляются на текущую страницу, где сниппет должен их словить, обработать, выдать ответ и прервать работу парсера. В общем, как написано в этой статье.
И всё отлично работает, за исключение того, что при компиляции шаблона Fenom он прописывает вывод всех данных не в переменную, которую покажет в конце, а выводит их сразу через echo.
Соотвественно, в ответ ajax запроса попадают все сниппеты, обработанные до eventsCalendar2 — и ты видишь их на странице. Это косяк старой архитектуры eventsCalendar2, ведь по уму нужно бы отправлять все запросы на отдельный коннектор или плагин, как в mFilter2 и miniShop2.
Но можно выйти из ситуации и сейчас:
1. Нужно вызывать eventsCalendar2 в шаблоне, перед всеми другими сниппетами, и сохранять его вывод в переменную.
2. А переменную уже выводить на странице. Но не в контенте, а тоже в шаблоне или в чанке, потому что ресурс обрабатывается перед шаблоном и переменная там еще будет пуста.
Тогда при обычной загрузке страницы сниппет отработает, данные сохранятся в переменную и выведутся в нужном месте страницы. А при ajax запросе сниппет отреагирует первым и выдаст чистый ответ, без других сниппетов.
Примерно так:
Кстати говоря, можно так сохранять и вывод других сниппетов, чтобы вызывать их в одном месте, а показывать в другом.
Наверное, можно и как-то красивее написать, но я не придумал.
Теперь никто не откроет полноразмерные картинки, и ты можешь отдавать их через PHP покупателям.
1. естественно меняем класс обработчик фильтров. Идем в настройки системы и в настройках mSearch2 меняем параметр mse2_filters_handler_class на CustomFilter
2. теперь нам нужно создать сам класс. для этого создаем файл core/components/msearch2/custom/filters/custom.class.php с содержимым
осталось добавить в чанк вызова мфильтра строчку
вуаля — фильтр работает как нужно ;)
Файл нужно сделать исполняемым, проверить наличие Python3 и путь к нему на сервере, а затем вызывать с указанием имени файла или путём к директории.
Скрипт переименует все файлы так, что останутся только символы 0-9- и _.
Если файл с новым именем уже есть в директории, то ему (имени) будет добавлена цифра на конце. Во время работы скрипта выводятся имена всех обработанных файлов.
Благодарность можно перечислять вот здесь.
Скрипт поставляется «как есть» — вы используете его на свой страх и риск. Претензии по работе скрипта не принимаются.
1. Я не смог найти способ проверить наличие дублей, вообще. Все статьи в интернете больше походят на набор бабушкиных сплетен «зайдите в гугл, поищите так, а потом на яндекс, поищите эдак — видите, у вас разные результаты, значит у вас там где-то дубли!».
2. Если на сайте есть страницы, которые Яндекс исключил из поиска, наверное — он должен где-то их показывать? Не вижу
3. Откуда вообще могут взяться дубли по url, если этих url нигде нет? Ссылки на сайте выводятся как надо, в sitemap.xml — тоже. Яндекс сам при индексировании будет убирать слэш у контейнеров, что ли?
Ну а теперь ответы.
Friendly urls — это команды движку открыть какую-то страницу не по номеру, а по имени. Имя отправляется на запрос в index.php и он уже думает, какую страницу отдать. Так что, Apache2 и Nginx здесь сразу не при чём, работать нужно с движком сайта.
Для примера я набросал простой плагин, который сравнивает запрошенный адрес с каноническим для страницы, и если они не совпадают — делает 301 редирект.
Конечно, его нужно внимательно тестировать, но общее направление работ понятно.
2. Вызови mFilter2
3. Допиши javascript для скрытия кнопки на странице, когда больше нечего показывать:
4. По желанию можно добавить функцию setMore, которая будет писать сколько загрузится результатов на кнопке:
Вызов этой функции нужно раскомментировать в конце первой функции и добавить при загрузке страницы:
Вот так у меня на тесте всё работает, даже пагинация кнопками. Вот вся тестовая страница.
Вызывать как-то так: