Наумов Алексей · 06 июля 2017, 14:50 О, это просто! 1. Делаем новый TV: changeTemplate, тип текст 2. Бацаем плагин на событие OnDocFormRender 3. Теперь открываем документ, допустим Новости, и в TV поле changeTemplate пишем 2, где 2 — это id шаблона Новость. Теперь у создаваемых новостей будет автоматом шаблон 2. Но еще круче. Допустим, у нас структура Каталог-Категория-Категория-Товар. Значит в TV у Каталога мы пишем: 3,3,4, где 3 — шаблон категории, а 4 — товара. Короче прям прописываем шаблоны внутрь структуры ) Код плагина <?php /** * ========================= * ChangeTemplate * ========================= * * Plugin for MODX Revolution * Set which template is inherited by children * documents of a certain parent document * * Author: * Marc Loehe (boundaryfunctions) * marcloehe.de * * Modified by: * Lorenzo Stanco <lorenzo.stanco@gmail.com> * Lorenzostanco.com * * Usage: * * 1. Paste this as new plugin and connect it to system event * 'OnDocFormRender'. * * 2. Assign a new TV 'changeTemplate' to each template * for which you want to define the default children template. * * 3. Set the newly created TV to input type "Text" * * 4. Open a document and in the 'changeTemplate' TV type a * comma separated list of template IDs. * * 5. Have fun! * */ // Check Event if ($modx->event->name == 'OnDocFormRender' && $mode == modSystemEvent::MODE_NEW) { $id = empty($_REQUEST['id']) ? false : $_REQUEST['id']; $id = empty($id) ? (empty($_REQUEST['parent']) ? false : $_REQUEST['parent']) : $_REQUEST['parent']; // Get current document ID if ($id) { // Document Chain $resources = array($id); // Get parent ID foreach ($modx->getParentIds($id, 10, array('context' => $_REQUEST['context_key'])) as $parentId) { if ($parentId) array_push($resources, $parentId); } // Search changeTemplate in the chain $level = 0; $childTemplates = array(); foreach ($resources as $resourceId) { $resource = $modx->getObject('modResource', $resourceId); if ($childTemplatesTV = $resource->getTVValue('changeTemplate')) { // Create template array for each tree level $childTemplates = @explode(',', $childTemplatesTV); if (empty($childTemplates)) break; foreach ($childTemplates as $k => $v) $childTemplates[$k] = intval(trim($v)); break; } $level++; } // Set template based on tree level if (!empty($childTemplates)) { $useTemplate = $childTemplates[$level]; if (!empty($useTemplate)) { // Set default template if (isset($modx->controller)) { $modx->controller->setProperty('template', $useTemplate); } else { // modX < 2.2.0 $_REQUEST['template'] = $useTemplate; } } } } } Вопросы / Как установить шаблон для дочерних ресурсов? 5 +1 1
Alexey T · 18 мая 2016, 14:40 Если fenom включен — то можно так {if $_modx->resource.price > '3499'}Бесплатно {else}Платно {/if} Вопросы / Фильтры ввода и вывода и price minishop2 10 +1 2
Павел Романов · 19 ноября 2015, 17:27 Делаете два сниппета. Первый sortLink: <?php if($_GET['sort'] == $field and $_GET['dir'] == 'ASC') {$arr='&_uarr;';} if($_GET['sort'] == $field and $_GET['dir'] == 'DESC') {$arr='&_darr;';} if(!$_GET[$field]){ if($_GET['dir'] == 'ASC'){ $output = '<a href="'.$url.'?'.$q.'sort='.$field.'&dir=DESC#prod">'.$name.''.$arr.'</a>'; } else { $output = '<a href="'.$url.'?'.$q.'sort='.$field.'&dir=ASC#prod">'.$name.''.$arr.'</a>'; } } else { $output = '<a href="'.$url.'?'.$q.'sort='.$field.'&dir=ASC#prod">'.$name.'</a>'; } return $output;(во второй и третьей строке только уберите нижнее подчеркивание в &_uarr; и &_darr;) Второй Sort: <?php $sort = $_GET['sort']; if($sort == '') { $output='&sortby=`{"menuindex":"ASC"}`'; } else { $output = '&sortby=`{"'.$sort.'":"'.$_GET['dir'].'"}`'; } return $output; Используете так: <div class="sort"> Сортировать: [[!sortLink? &url=`[[*uri]]` &field=`pagetitle` &name=`по названию`]] [[!sortLink? &url=`[[*uri]]` &field=`price` &name=`по цене`]] </div> <div class="results"> [[!pdoResources? &parents=`...` &tpl=`...` ......... [[!Sort]] ]] </div> Вопросы / Сортировка на сайте 7 +4 5
Сергей Шлоков · 13 октября 2015, 06:57 Теперь получается, что исчезает кусок формы (id=«cbf») и происходит это вне зависимости правильно заполнена форма или с ошибками. Как раз закрывается именно форма. А нужно закрывать окно. $(document).on('af_complete', function(event, response) { if (response.success) { // 1. Просто закрыть $('#callBack').hide(); // 2. Или с анимацией $('#callBack').fadeOut(); } }); Вопросы / Как закрыть модальное окно после отправки AjaxForm 36 +2 2
Возможно ли реализовать возможность предоплаты за доставку на сайте? Так ради этого мне и нужно это все, чтобы клиент платил сразу при оформлении заказа, чтобы избавить себя от мусорных заявок (когда человек оставляет заявку, а предоплату делать не ...
Редизайн сообщества На больших экранах основной текст статьи я бы сделал 18 px. Да и текст комментариев можно таким сделать. Для меня лично 16 — мелковато на больших экранах (в комментариях вообще 15 ...
MiniShop3 1.11.0 при клике на radio идет пересчет итоговой суммы в orderUI, в зависимости от способов(оплаты доставки) я так поняла. попробуй код запуска события поставить ниже чем orderUI, после
ImageOptimizer - WebP/AVIF и responsive <picture> для MODX 3 Дополнение доступно modstore.pro/packages/photos-and-files/imageoptimizer
Localizator3 для MODX 3: перевод полей и TV без отдельного context на язык, Vue 3 + PrimeV... Добавил localizator3_default_language
msInShopNotify Начиная с версии 3.0.0-beta добавлена поддержка MiniShop3 Минимальные требования: PHP 8.4 MODX 3.2 MiniShop3
MaxNotify Обновление 1.2.0-pl (03.07.2026) — добавлены уведомления о заявках FormIt через hook-сниппет `maxNotifyFormIt`; — добавлены уведомления о заявках SendIt через hook-...
[msBonus2] 1.3.0 Бонус-коды, уведомления о сгорании и совместимость с msMultiCurre... Да, планируется. Даже чуть больше, чем просто бонусная система)
1. Делаем новый TV: changeTemplate, тип текст
2. Бацаем плагин на событие OnDocFormRender
3. Теперь открываем документ, допустим Новости, и в TV поле changeTemplate пишем 2, где 2 — это id шаблона Новость. Теперь у создаваемых новостей будет автоматом шаблон 2.
Но еще круче. Допустим, у нас структура Каталог-Категория-Категория-Товар. Значит в TV у Каталога мы пишем: 3,3,4, где 3 — шаблон категории, а 4 — товара. Короче прям прописываем шаблоны внутрь структуры )
Код плагина
Первый sortLink:
(во второй и третьей строке только уберите нижнее подчеркивание в &_uarr; и &_darr;)
Второй Sort:
Используете так:
Как раз закрывается именно форма. А нужно закрывать окно.