Bender · 04 февраля 2018, 21:42 Благодаря Василию, вопрос был разрешен. 'class' => 'modResource', 'loadModels' => 'ms2gallery', 'leftJoin' => [ 'Image' => [ 'class' => 'msResourceFile', 'on' => 'modResource.id = Image.resource_id AND Image.parent = 0', ], 'Thumb' => [ 'class' => 'msResourceFile', 'on' => 'Image.id = Thumb.parent AND Thumb.path LIKE "%medium%"', ] ], 'select' => [ 'modResource' => '*', 'Image' => 'Image.url as image', 'Thumb' => 'Thumb.url as thumb', ], Вопросы / Вывод меню с картинками из ms2gallery 1 +2 3
Володя · 03 февраля 2018, 19:14 {foreach $product.options as $key => $option} {if $key in ['modification','modifications','msal']}{continue}{/if} {set $caption = isset($product[$key~'.caption'])?$product[$key~'.caption']:('ms2_product_'~$key)|lexicon} {set $value = is_array($option)?($option|join:'; '):$option} {$caption} - {$value} {/foreach} Вопросы / Как выводить значения опций в корзине по имени? 10 +1 1
Андрей · 03 февраля 2018, 17:19 Возможно кто-то сможет подсказать как правильно решать такие задачи или же мой вариант вполне нормальный и так делать и нужно?Как уже подсказали выше, используйте MIGX. Приведённый код это жесть конечно :)) Конкретно по вашему примеру, можно сделать так: 1. Ставим MIGX 2. Создаём тв с типом MIGX, далее настройки: Вкладки формы: [ { "caption": "Заголовок", "fields": [ { "field": "title", "caption": "Описание", "inputTVtype": "text" }, { "field": "img", "caption": "Картинка", "inputTVtype": "image", "sourceFrom": "migx" } ] } ] Разметка колонок: [{ "header": "Описание", "dataIndex": "title" },{ "renderer": "this.renderImage", "sourceFrom": "migx", "header": "Картинка", "dataIndex": "img" }] Вывод на странице (1 — id страницы, paramName — имя ТВшки): {set $rows = 1 | resource : 'paramName' | fromJSON} {if $rows?} <div class="dignity"> <div class="dignity__inner"> {foreach $rows as $idx => $row} <div class="dignity__item"> <img src="{$row.img}" alt="" class="dignity__img"> <div class="dignity__title">{$row.title}</div> </div> {/foreach} </div> </div> {/if} Вывод сделан на Fenom (должен быть установлен pdoTools, и включена системная настройка — Использовать Fenom на страницах). Если есть желание использовать стандартный парсер, то можно выводить стандартным сниппетом getImageList из комплекта MIGX. Вопросы / Парные TV, динамическое добавление и вывод 3 +1 1
Наумов Алексей · 01 февраля 2018, 16:46 hook для Formit, отсылает сообщения через sms.ru, вызываем перед хуком email: Предварительно создаем настройки sms_ru_api_id — api ключ, который дадут при регистрации на сайте manager_phone — номер телефона получателя <?php // API id $api_id = $modx->getOption('sms_ru_api_id', null, null); if(empty($api_id)) { $modx->log(xPDO::LOG_LEVEL_ERROR,'SMS.RU hook: empty API ID!.'); // так как это hook, то даже в случае неудачи возвращаем true return true; } // Support phone number $phone = $modx->getOption('manager_phone', null, null); if(empty($phone)) { // так как это hook, то даже в случае неудачи возвращаем true return true; } $ch = curl_init("https://sms.ru/sms/send"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 30); curl_setopt($ch, CURLOPT_POSTFIELDS, array( "api_id" => $api_id, "to" => $phone, "text" => "ТЕКСТ СООБЩЕНИЯ", )); $body = curl_exec($ch); curl_close($ch); return true; Вопросы / SMS с формы 5 +4 4
Андрей · 16 января 2018, 11:41 У simpleSearch есть параметр ids, можете вызвать 3 сниппета и указать в нем разные категории. Можно с помощью pdoPage сделать. Форма с поиском <form action="/search/" mathod="get"> <input name="search" value="{$.get.search | escape}"> <button>Найти</button> </form> Результаты {set $category1 = '!pdoPage' | snippet : [ 'parents' => 0 //тут нужная категория 'includeContent' => 1, 'tpl' => '@INLINE {$pagetitle}', 'where' => [ 'pagetitle:LIKE' => '%'~ $.get.search | escape ~'%', 'OR:introtext:LIKE' => '%'~ $.get.search | escape ~'%', 'OR:content:LIKE' => '%'~ $.get.search | escape ~'%' ] | toJSON ]} {if $category1?} <div>В каткгории 1 найдено:</div> {$category1} {/if} Вопросы / Умный поиск в simplesearch 10 +2 1
Дмитрий Кондаков · 29 ноября 2017, 10:33 Вот таким плагином при открытии страницы товара добавляю его в корзину предварительно очистив её: <?php switch ($modx->event->name) { case 'OnLoadWebDocument': $class = $modx->resource->get('class_key'); $resourceId = $modx->resource->get('id'); if ($class == 'msProduct') { $miniShop2 = $modx->getService('minishop2','miniShop2', MODX_CORE_PATH . 'components/minishop2/model/minishop2/', $scriptProperties); if (!($miniShop2 instanceof miniShop2)) return ''; $miniShop2->initialize($modx->context->key, $scriptProperties); $miniShop2->cart->clean(); $miniShop2->cart->add($resourceId); } break; }далее на странице самого товара вывожу форму заказа без корзины. Вопросы / miniShop2 без корзины 3 +1 1
Василий Столейков · 09 октября 2017, 21:31 Интересная идея! И за какой период ты считаешь просмотры? 10, 20, 30 минут? Готовые решения / Как в 14 раз снизить нагрузку на базу данных MySQL 28 0 2
Евгений · 07 июля 2017, 10:14 У ресурсов поставить галки «Не показывать в меню», или в шаблоне вывода подпунктов меню innerRowTpl проверять на «parent» типа: [[+parent:ne=`2`:then=`код пункта меню`:else=``]]Буквально недавно такое решал… но мне не пригодилось. Вопросы / pdoMenu: убрать вложенность определённых пунктов 1 +1 1
Семён Кудрявцев · 06 июля 2017, 17:45 Вот видео, там рассказано и показано как это сделать через настройку форм — www.youtube.com/watch?v=G7N-Ku5GpsI Вопросы / Как установить шаблон для дочерних ресурсов? 5 +1 1
Stan Ezersky · 01 июля 2017, 12:12 Рабочий код с работающего сайта. При клике на кнопку «Нет email» поле для ввода почты прячется, в инпут подставляется фейковый емейл в формате датасегодня@fakemail.com <div class="form-group"> <label for="email"> <span class="required">*</span> Email </label> <input type="email" id="email" placeholder="Email" name="email" value="" class="form-control{('email' in list $errors) ? ' error' : ''}"> <span id="noemail" type="button">Нет email</span> </div>И js //Fake Email generate $('#noemail').click(function(){ var time = Date.now(); var fakeemail = time + "@fakemail.com"; $('#email').val(fakeemail).hide(); $('#noemail').hide(); });Дальше сами, думаю, ничего разжёвывать не надо Вопросы / Обязательные поля для заполнения в msOrder 15 +2 1
[videoGallery] Видео галерея YouTube, Vimeo Невозможно установить пакет с подписью: videogallery-1.4.0-beta Ошибка установки Error в /core/packages/videogallery-1.4.0-beta/modCategory/7fc931a7772edc9752c16e9c41eb5e52.reso...
mxBoard: канбан-доска для команд, людей и ИИ-агентов в MODX 3 Привет, добавил пользователя в группу mxBoard(4), создал токен. Добавляю все в postman пишет: rest: { «success»: false, «message»: «Недействительный токен.», «data...
Релиз miniShop2 ver. 4.4.1 & 4.4.2 Подскажите пожалуйста, может я что-то не знаю или упустил. Но есть ли решение по глюку с radio? Указываешь свое radio c одинаковым name и в результате при переключении получаешь вс...
Плагин EnvBadge: визуальный индикатор окружения в админке MODX3 Расскажите пожалуйста как вы настраиваете сайт на MODX 3 чтобы был dev, prod, stage. Можете описать workflow? Допустим у меня 80% — это магазины, там клиенты, продажи, все онлай...
MaxNotify Обновление компонента 1.3.0-pl (22.07.2026) — добавлено автоматическое получение полей через msOrder->toArray(); — массивы и объекты безопасно пропускаются; — стандартные...
MyFavorites MyFavorites — 3.0.0-beta Первая версия для MODX Revolution 3.x — компонент полностью переписан с нуля (PHP >= 8.4, namespaced-ядро MODX 3, PSR-4, сервис-ориентированная архит...
Конкретно по вашему примеру, можно сделать так:
1. Ставим MIGX
2. Создаём тв с типом MIGX, далее настройки:
Вкладки формы:
Разметка колонок:
Вывод на странице (1 — id страницы, paramName — имя ТВшки):
Вывод сделан на Fenom (должен быть установлен pdoTools, и включена системная настройка — Использовать Fenom на страницах). Если есть желание использовать стандартный парсер, то можно выводить стандартным сниппетом getImageList из комплекта MIGX.
Предварительно создаем настройки
sms_ru_api_id — api ключ, который дадут при регистрации на сайте
manager_phone — номер телефона получателя
Можно с помощью pdoPage сделать.
Форма с поиском
Результаты
далее на странице самого товара вывожу форму заказа без корзины.
И за какой период ты считаешь просмотры? 10, 20, 30 минут?
типа:
Буквально недавно такое решал… но мне не пригодилось.
При клике на кнопку «Нет email» поле для ввода почты прячется, в инпут подставляется фейковый емейл в формате датасегодня@fakemail.com
И js
Дальше сами, думаю, ничего разжёвывать не надо