Предложение нового механизма closure и слушателей событий в bootstrap неймспейсов MODX с приоритетами и именами
Хочу поделиться идеей/потенциальным изменением ядра MODX 3, которое даст возможность создавать пакеты без плагинов, да и в целом расширить функционал управления слушателями событий, и попросить вас посмотреть, что думаете.
Началось с того, что я пытаюсь продумать для себя максимально простой способ разработки и сборки пакетов под MODX, и параллельно внедрения архитектурных решений по стилю Laravel.
Началось с того, что я пытаюсь продумать для себя максимально простой способ разработки и сборки пакетов под MODX, и параллельно внедрения архитектурных решений по стилю Laravel.
Переход с неудачного решения по смене контекста И по определению версии (моб/десктоп.) на ModHelpers
Добрый день.
Хотела бы попросить помощи еще раз.
Преамбула
1я проблема-MobileDetect
Установлена стороннаяя библиотека через композер. Шаблоны разбиты на пары для Мобильной и Десктопной версии (разный набор чанков). «Моб»- дефолт (прикреплен к ресурсу), «десктоп» получаем плагином в случае is_Desktop=1.
Такая конструкция вполне себе работает. Но когда я стала добавлять возможность ручного переключения версии по кнопке, у меня ничего не получилось.
2я проблема-BABEL
Уже пройдены варианты отдельной папки, обмусоливания htaccess'a, перебор нескольких версий плагинов для контекста, отключения вообще всех плагинов, попытки написания плагина самостоятельно. Одно время я добилась работы- по крайней мере, могла хотя бы страницу др. контекста открыть. Сейчас идет зацикливание.
ИТОГО
В итоге нашла здесь на сайте, что сейчас проще всего решить это с пом. модуля Сергея Шлокова (modHelpers).
.
Я нашла там не только swich_context для варианта поддиректории, но также сессии и Mob.Det. Поэтому и описала эти проблемы вместе.
Суть вопроса
Мне нужно добиться функционирования смены версии (мобильный/десктоп) и смены языков, через Babel и Mob.Detect. С сохранением результата в сессии, чтобы не определять это для каждой страницы, а также с возможностью выбрать правильный вариант вручную (переключатель), если автоматически определится неверно.
Пожалуйста, посмотрите, правильно ли я представляю саму логику. Пока даже код писать не стала, потому что сильно не уверена насчёт своего видения процесса.
Если всё не так, хотя бы скажите, про какой объект подробнее почитать.
Хотела бы попросить помощи еще раз.
Преамбула
1я проблема-MobileDetect
Установлена стороннаяя библиотека через композер. Шаблоны разбиты на пары для Мобильной и Десктопной версии (разный набор чанков). «Моб»- дефолт (прикреплен к ресурсу), «десктоп» получаем плагином в случае is_Desktop=1.
Такая конструкция вполне себе работает. Но когда я стала добавлять возможность ручного переключения версии по кнопке, у меня ничего не получилось.
2я проблема-BABEL
Уже пройдены варианты отдельной папки, обмусоливания htaccess'a, перебор нескольких версий плагинов для контекста, отключения вообще всех плагинов, попытки написания плагина самостоятельно. Одно время я добилась работы- по крайней мере, могла хотя бы страницу др. контекста открыть. Сейчас идет зацикливание.
ИТОГО
В итоге нашла здесь на сайте, что сейчас проще всего решить это с пом. модуля Сергея Шлокова (modHelpers).
.
Я нашла там не только swich_context для варианта поддиректории, но также сессии и Mob.Det. Поэтому и описала эти проблемы вместе.
Суть вопроса
Мне нужно добиться функционирования смены версии (мобильный/десктоп) и смены языков, через Babel и Mob.Detect. С сохранением результата в сессии, чтобы не определять это для каждой страницы, а также с возможностью выбрать правильный вариант вручную (переключатель), если автоматически определится неверно.
Пожалуйста, посмотрите, правильно ли я представляю саму логику. Пока даже код писать не стала, потому что сильно не уверена насчёт своего видения процесса.
Если всё не так, хотя бы скажите, про какой объект подробнее почитать.
PVAdmin мини-админка для MODX 2.8
Наконец я добрался до создания админки для MODX. Реализовал только необходимый нам функционал, но при необходимости всё можно доработать — это не очень сложно. В gtsAPI теперь есть все необходимые модули. Также можно использовать эти модули для других проектов.


[UniversalEventBus 1.2.1] Оптимизация при работе с несколькими вкладками
Всем здрасьте! Если коротко, то с версии 1.2.1 компонент держит только одно подключение вне зависимости от количества открытых вкладок браузера
[SendIt 2.5.0] Дополнительная защита от SQL-инъекций
Приветствую! Если коротко, то с версии 2.5.0 компонент принудительно прогоняет все поступающие с фронта данные через паттерн для очистки о возможных SQL-инъекций. Чуть подробнее под катом
Публикация отзывов с фото в карточках товара через модуль EasyComm
Добрый день. У меня на сайте установлен модуль EasyComm но через него как понимаю можно публиковать только текстовые отзывы. Есть ли возможность как то его доработать чтобы была возможность добавлять фото к отзыву?
Автоматическое переключение контекстов Babel по языку браузера
День добрый!
Есть сайт на два языка: ru (основной)/ en (дополнительный)
Ключи контекстов именно такие: ru, en
Задача такова:
Если человек заходит с браузером с английским языком на любую страницу, то автоматически переводить его на её копию в английском контексте.
Если он переключает язык — не мешать, переходить на основную, русскую версию.
Если с русского языка заходит — ничего автоматически не перенаправлять.
Есть вот такой код:
Но работает как-то криво, если в русском браузере тыкаться внутри английской версии, то часто выдает 404 — uri подставляет из английской, а в контекст отправляет русский.
Заранее сердешная благодарность и чем могу, тем смогу
Есть сайт на два языка: ru (основной)/ en (дополнительный)
Ключи контекстов именно такие: ru, en
Задача такова:
Если человек заходит с браузером с английским языком на любую страницу, то автоматически переводить его на её копию в английском контексте.
Если он переключает язык — не мешать, переходить на основную, русскую версию.
Если с русского языка заходит — ничего автоматически не перенаправлять.
Есть вот такой код:
Но работает как-то криво, если в русском браузере тыкаться внутри английской версии, то часто выдает 404 — uri подставляет из английской, а в контекст отправляет русский.
<?php
/* Запускаем плагин только на фронтенде и с включенными sef-url */
if ($modx->context->key == 'mgr' || !$modx->getOption('friendly_urls') || $modx->event->name != 'OnHandleRequest') {
return;
}
/* Проверяем GET-параметр cultureKey */
if (!empty($_GET['cultureKey'])) {
switch ($_GET['cultureKey']) {
case 'en':
$modx->switchContext('en');
break;
default:
$modx->switchContext('web');
break;
}
/* Очищаем GET-параметр, чтобы не появлялся в URL */
unset($_GET['cultureKey']);
} else {
/* Если cultureKey не указан, проверяем язык браузера */
$browserLang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
if ($browserLang === 'en') {
$modx->switchContext('en');
}
/* В остальных случаях оставляем текущий контекст (обычно web) */
}Реально ли как-то довести до ума, чтоб всё работало по-человечески?Заранее сердешная благодарность и чем могу, тем смогу
FileAttach (modx2) - возможность выбора файла из медиа-библиотеки (вкладка слева вверху Файлы)
Здравствуйте.
Есть вопрос по данному компоненту — есть ли возможность выбора уже ранее загруженного файла для нескольких ресурсов?
Например — есть 2 ресурса. У одного я загрузил документ пдф. Хочу этот же документ выбрать, когда редактирую другой ресурс, на его вкладке «Файлы». Сейчас у меня (по умолчанию) открывается попап, где я могу загрузить файлы только из внешних источников. Как использовать уже ранее загруженные файлы у нескольких ресурсов?
Есть ли такие настройки в админке?
с уважением,
Виталий
Есть вопрос по данному компоненту — есть ли возможность выбора уже ранее загруженного файла для нескольких ресурсов?
Например — есть 2 ресурса. У одного я загрузил документ пдф. Хочу этот же документ выбрать, когда редактирую другой ресурс, на его вкладке «Файлы». Сейчас у меня (по умолчанию) открывается попап, где я могу загрузить файлы только из внешних источников. Как использовать уже ранее загруженные файлы у нескольких ресурсов?
Есть ли такие настройки в админке?
с уважением,
Виталий
modx3 (modx2) + composer + ddev
Всем привет.
Modx только начал изучать, как легковесную альтернативу друпал для легких проектов.
Давно сижу на этой (ddev) надстройке над docker. Поэтому для меня логично было развернуть modx именно в этой среде.
Процесс довольно легок и прост:
Modx только начал изучать, как легковесную альтернативу друпал для легких проектов.
Давно сижу на этой (ddev) надстройке над docker. Поэтому для меня логично было развернуть modx именно в этой среде.
Процесс довольно легок и прост: