Aborrol

Aborrol

Был в сети 27 декабря 2023, 09:44
Заказы принимаю
Можно написать modx плагин на onhandlerwebrequest, где проверять что это аяксзапрос с ключом, и отдавать только контент и нужные твполя по полученному id, форматируя через чанк.
При клике на ссылку открытия модального окна, получаем параметр id, отправляем через аякс пост запрос, подставить полученные данные в модалку и отобразить её. Но вариант выше с селектором гораздо проще
Ему можно не трогать свои шаблоны, ему в них нужно прописать расширение шаблона. А может удалить и перенасназначить батчером, как ему удобнее.

Для меня ситуация с сотнями тв гораздо более частая чем с сотней шаблонов. Если сотня шаблонов, значит что-то организовано неправильно.
Ну вот и получается, что пользователю надо проставить галочки, понимая где какое тв надо использовать, не запутаться в фильтрации при установке шаблона через батчер, но запутается с выбором нужных ему страниц по типу сайта.

А так пользователь может менять темы в один клик, не перенастраивая тв, и не трогая ресурсы вообще
Ладно, ты вообще не понял что я имею ввиду.
1-2 Как отделять шаблоны? По категории.
по остальному, оно вообще по другому
Условно говоря. например отдельно пакет, отдельно темы. Тема это папка с tpl-ками,
Пакет включает настройку темы.
шаблоны модекса расширяются этими tpl
пользователь может сам назначить в шаблонах вывод или установить стандартные при установке пакета, если например это чистая установка.
Темы опять же это файлы, они никак не трогают пользовательские шаблоны, хочет подключает в свои, просто прописав в них строку, хочет использует стандартные.
Гибкость!

И ещё ведь если ты устанавливаешь шаблоны модекса, получается проблема с тв которые привязываются к шаблону. А так, подобной проблемы нет.
Ещё это дает легкую кастомизируемость тем через {block}

Но видимо то как я представляю себе будет удобно, абсолютно не стыкуется с твоим представлением, проехали
Ну в таком же случае полюбому приходим к тому что нужно добавлять в новую тему шаблоны, и установка их для ресурсов через батчер ничего не дает. Все тоже самое.
У тебя в любом случае будут заведены все нужные шаблоны уже в бд.
Да и через плагин можно выставлять шаблон по умолчанию если не найден.
Я же подразумеваю что шаблоны заведены в админке, которые расширяются файловыми шаблонами темы.
Ну и как это сделано в том же wp для тем, там же в темах есть все основные страницы, и если нужна другая то уже допиливаешь, тут так же
Но так я и имею в виду, что шаблоны файловые и рулятся через точку входа из шаблона из бд
А вообще, темы в идеале нужно унифицировать, ты же сам про это пишешь, и при наличии особых случаев, добавить шаблон в админке с одной строчкой кода. Или плагин на динамическую подмену шаблона по определенной логике.
И переключать да, имелось ввиду, одной настройкой, которая получает на вход например список папок с темами.
Сделай снипет
<?php
$miniShop2 = $modx->getService('miniShop2');
$miniShop2->initialize($modx->context->key);
$tpl = $modx->getOption('tpl', $scriptProperties, 'tpl.msMiniCart');
$products =  $miniShop2->cart->get();
$cart = $miniShop2->cart->status();
$cart['total_products'] = count($products);
$cart['total_cost'] = $miniShop2->formatPrice($cart['total_cost']);
$cart['total_weight'] = $miniShop2->formatWeight($cart['total_weight']);
return $miniShop2->pdoTools->getChunk($tpl, $cart);
и в шаблоне для этого сниппета выводи количество уникальных позиций через [[+total_products]]

Но что бы корзина обновлялась без перезагрузки, нужно повесить обновление значения на каллбек добавления в корзину
modx.pro/howto/16490 — migx
habr.com/ru/post/325760/ — grid
Для вывода нужных ресурсов, как написано в соседней ветке комментариев, используй pdotools.
Хотя если не использовал migx, может быть сложно реализовать, и если лень заморачиваться, тогда делай 4 тв-поля, с чанками с вызовами того же pdotools в них
Попробуй
Сделать 301 редирект с https на http
Проверить настройки хостинга, нет ли у него принудительного редиректа, так же посмотреть, нигде ли сайт не прописан с https, внутренние и внешние ссылки, встречал ситуацию где была подобная проблема, в меню были ссылки с https прописанные вручную
сделать сниппет с $_SERVER['HTTP_HOST'] и вызывать его некэшируемым
Насколько этот вариант быстрее чем DOMDocument
case 'OnWebPagePrerender':
    $content = &$modx->resource->_output;
    $html = $modx->resource->_output;
    $dom = new DOMDocument();
    $dom->encoding = "utf-8";
    @$dom->loadHTML($content);
А то я делал подобное через него, но мне не понравилась производительность