Баха Волков · 15 октября 2018, 04:58 Всё, всё сделали неправильно <form method="post" class="ms2_form"> <input type="hidden" name="key" value="{$product.key}"> <div class="qty"> <button class="btn btn-default minus_btn"></button> <input type="text" name="count" class="txtbox" value="{$product.count}" > <button class="btn btn-default plus_btn"></button> <button class="d-none" type="submit" name="ms2_action" value="cart/change"></button> </div> </form> Если уж button-ами хотите Вопросы / Своя кнопка изменения количества товара в корзине 10 -1 1
Алексей Шумаев · 24 сентября 2018, 00:13 Простой рецепт: 1. Выносите в ClientConfig поля для внешних скриптов (метрика, ets). например: ExtJSHead, ExtJSBody, ExtJSFooter 2. Выводите эти поля, где надо через сниппет: {'extScripts' | snippet : ['input'=>'head']}Сниппет: if(!isset($input)) return; $ext = array( 'head' => $modx->getOption('ExtJSHead') ,'body' => $modx->getOption('ExtJSBody') ,'footer' => $modx->getOption('ExtJSFooter') ); $search = array('{', '}'); $replace = array('{ ', ' }'); $out = str_replace($search,$replace,$ext[$input]); return $out; Вопросы / Кто сталкивался, из за чего ошибка? 3 +2 2
Баха Волков · 15 июля 2018, 09:01 Ссылку получать нужно так: [[~id ресурса]] {id ресурса | url} // Прямое указание id ресурса [[~2]] {2 | url} // Динамичное указание id ресурса [[~[[+id]]]] {$id | url} [[~[[*id]]]] // Вдруг нужна циклическая ссылка :) {$_modx->resource.id | url} // Вдруг нужна циклическая ссылка :) // ну а если ваш плейсхолдер [[!+gl.current.data.resource]] возвращает именно id, то [[~[[!+gl.current.data.resource]]]] {var $myplace = $_modx->getPlaceholder('gl.current.data.resource')} // Вдруг еще понадобится {$myplace | url} // Кстати, для получения полей есть еще FastField [[#id ресурса.поле или даже тв которое нужно вывести]] {id ресурса | resource : 'поле или даже тв которое нужно вывести'} // Пример [[#1.pagetitle]] // Получить pagetitle у ресурса с id = 1 {1 | resource : 'pagetitle'} Как получить родителя по id? [[*parent]] // На странице ресурса {$_modx->resource.parent} [[+parent]] // В чанках вывода {$parent} [[#[[!+gl.current.data.resource]].parent]] // Тот случай когда нужно получить id по плейсхолдеру {$_modx->getPlaceholder('gl.current.data.resource') | resource : 'parent'} [[pdoField? &id=`[[!+gl.current.data.resource]]` &field=`parent`]] // Ну или через pdoField {var $myplace = $_modx->getPlaceholder('gl.current.data.resource')} {$myplace | resource : 'parent'} Для корректности, вашем случае нужно поступить вот так: [[~[[#[[!+gl.current.data.resource]].parent]]]] {$_modx->getPlaceholder('gl.current.data.resource') | resource : 'parent' | url} // или [[~[[pdoField? &id=`[[!+gl.current.data.resource]]` &field=`parent`]]]] {var $myplace = $_modx->getPlaceholder('gl.current.data.resource')} {$myplace | resource : 'parent' | url} UPD Забыл совсем про uri Если, что в поле uri хранится ссылка на страницу, но никак не в alias Вопросы / Как получить родителя по id 6 0 4
Наумов Алексей · 07 апреля 2017, 15:01 Плагин на OnDocFormSave, возможно еще кеш нужно подчистить: <?php $eventName = $modx->event->name; $logged = $modx->user->hasSessionContext('web'); switch($eventName) { case "OnDocFormSave": $template = $resource->get('template'); // определяем тикет по шаблону или class_key if($template == 9) { // если редактирует его автор и контект - web, if($modx->user->get('id') == $resource->get('createdby') && $modx->context->get("key") == "web" ) { // снимаем тикет с публикации.. $resource->set('published', 0); } // .. сохраняем .. $resource->save(); } break; } Вопросы / Создание тикетов неопубликованными 5 +2 2
Максим Кузнецов · 01 ноября 2015, 22:49 [[*createdby:userinfo=`photo`]] — вызванное в нужном ресурсе вернет прямой урл аватара автора. Вам должна помочь следующая конструкция: <img src="[[*createdby:userinfo=`photo`]]" /> Upd: если же аватар нужно вернуть внутри возвращаемых результатов какого-нибудь сниппета, то замените "*" на "+". Вопросы / Хелп! аватар в админке modx 11 0 1
Павел Гвоздь · 15 октября 2015, 20:25 Вот так при помощи Fenom я вывожу данные для отладки только для админов, авторизованных в контексте mgr: {if $_modx->hasSessionContext('mgr')} <div style="position:fixed;right:0;bottom:0;background:#fff;border:1px solid #bbb;padding:4px 9px;"><small>[^t^], [^qt^], [^q^]</small></div> {/if}Вот так это выглядит во фронте: Вопросы / Пользователю показывать одно, а админу другое... а 6 +4 2
Сергей Шлоков · 14 сентября 2015, 11:37 Если на странице один thread, то проще простого. Создаем сниппет CountComments $thread = $modx->getObject('TicketThread', array('resource' => $modx->resource->get("id"))); if (empty($toPlaceholder)) { // или сразу выводим значение return $thread->get('comments'); } else { // или записываем его в плейсхолдер $modx->toPlaceholder($toPlaceholder,$thread->get('comments)); }Вызываем его перед местом использования (если вывод через плейсхолдер) или сразу в нужное место (если вывод напрямую). // Если вывод через плейсхолдер, то указываем его [[!CountComments? &toPlaceholder=`countComments`]]Теперь вставляем плейсхолдер [[+countComments]] куда нужно. Вопросы / Tickets кол-во комментарий 7 0 1
Николай · 29 августа 2015, 16:54 Делал очень давно, сейчас бы сделал по другому, но что есть, то есть ) Сниппет adsense <?php //спустя сколько символов искать перенос строки и вставлять рекламу? $nu = 3800; //Код рекламы $adsense = <<<HTML <div class="sense"> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:inline-block;width:728px;height:90px" data-ad-client="ca-pub-1233335915169539" data-ad-slot="2233378009"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script></div> HTML; $a = preg_replace('@([^^]{'.$nu.'}.*?)(\r?\n\r?\n|</p>)@', "\\1$adsense\\2", trim($content), 1); return $a;Вызов (в шаблоне вместо [[*content]])[[adsense? &content=`[[*content]]`]] Вопросы / Вставка рекламы после n-го абзаца 20 +1 5
Пашок · 15 ноября 2013, 10:20 Выкопал! Схема: Создаём плагин setNameForUserFromHybridAuth с кодом: if($data['provider']['provider'] == 'Mailru') { $data['username'] = $data['email']; $data['provider']['displayName'] = $data['email']; } if($user->_fields['provider']['provider'] == 'Mailru') { $user->_fields['username'] = $user->_fields['email']; $user->_fields['provider']['displayName'] = $user->_fields['email']; }На события: OnBeforeUserFormSave, OnUserBeforeSave, OnUserFormSave, OnUserSave. Вопросы / HybridAuth дописать: если mailru,то username=email 29 0 1
Возможно ли реализовать возможность предоплаты за доставку на сайте? Так ради этого мне и нужно это все, чтобы клиент платил сразу при оформлении заказа, чтобы избавить себя от мусорных заявок (когда человек оставляет заявку, а предоплату делать не ...
Редизайн сообщества На больших экранах основной текст статьи я бы сделал 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... Да, планируется. Даже чуть больше, чем просто бонусная система)
Если уж button-ами хотите
1. Выносите в ClientConfig поля для внешних скриптов (метрика, ets). например: ExtJSHead, ExtJSBody, ExtJSFooter
2. Выводите эти поля, где надо через сниппет:
Сниппет:
Как получить родителя по id?
Для корректности, вашем случае нужно поступить вот так:
UPD
Забыл совсем про uri
Если, что в поле uri хранится ссылка на страницу, но никак не в alias
— вызванное в нужном ресурсе вернет прямой урл аватара автора. Вам должна помочь следующая конструкция:
Upd: если же аватар нужно вернуть внутри возвращаемых результатов какого-нибудь сниппета, то замените "*" на "+".
Вот так это выглядит во фронте:
Создаем сниппет CountComments
Вызываем его перед местом использования (если вывод через плейсхолдер) или сразу в нужное место (если вывод напрямую).
Теперь вставляем плейсхолдер [[+countComments]] куда нужно.
Сниппет adsense
Вызов (в шаблоне вместо [[*content]])
Схема:
Создаём плагин setNameForUserFromHybridAuth с кодом:
На события: OnBeforeUserFormSave, OnUserBeforeSave, OnUserFormSave, OnUserSave.