Баха Волков · 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
YaSmartCaptcha - защитите ваши формы от спама умной капчей от Яндекс Вообще не понял о чем речь) В системной настройке service_js сейчас указана ссылка smartcaptcha.cloud.yandex.ru/captcha.js Я предложил очистить эту настройку, тогда компонент н...
mxBackup — обезличенные копии MODX в пару кликов Ещё нет, я там разом почти полтора десятка пакетов выложил модератор, вероятно, а шоке.
Gallery3x 3.4.0 - вставка галерей прямо из визуального редактора (CKEditor и TinyMCE RTE) Здравствуйте. Есть консольный скрипт Вот почитайте: docs.ivan345.com/books/gallery3x/page/import-ms2galleryphp
[mSync] Новая версия синхронизации с 1С Всем привет. В какой то момент начали сыпаться ошибки: Error 23000 executing statement: INSERT INTO `modx_msync_products` (`product_id`, `uuid_1c`) VALUES ...
Checkbox для модального окна Они не отключены, они платные, чтобы писали только те, кому действительно очень надо. Когда бесплатно люди начинают думать, что я им должен.
[SendIt 2.6.0] Анализ поведения пользователя для защиты от спама (невидимая капча)... Здравствуйте. Делаю личный кабинет на Sendit и со сбросом пароля возникли проблемы. Можете подсказать, в чем ошибка? Список вопросов в одноименном разделе на modx.pro пока пуст, и,...
Minishop + честный знак (продажа маркированной продукции) В нашем случае мы решили убрать всю логику по маркировке сайта.
Если уж button-ами хотите
1. Выносите в ClientConfig поля для внешних скриптов (метрика, ets). например: ExtJSHead, ExtJSBody, ExtJSFooter
2. Выводите эти поля, где надо через сниппет:
Сниппет:
Как получить родителя по id?
Для корректности, вашем случае нужно поступить вот так:
UPD
Забыл совсем про uri
Если, что в поле uri хранится ссылка на страницу, но никак не в alias
— вызванное в нужном ресурсе вернет прямой урл аватара автора. Вам должна помочь следующая конструкция:
Upd: если же аватар нужно вернуть внутри возвращаемых результатов какого-нибудь сниппета, то замените "*" на "+".
Вот так это выглядит во фронте:
Создаем сниппет CountComments
Вызываем его перед местом использования (если вывод через плейсхолдер) или сразу в нужное место (если вывод напрямую).
Теперь вставляем плейсхолдер [[+countComments]] куда нужно.
Сниппет adsense
Вызов (в шаблоне вместо [[*content]])
Схема:
Создаём плагин setNameForUserFromHybridAuth с кодом:
На события: OnBeforeUserFormSave, OnUserBeforeSave, OnUserFormSave, OnUserSave.