Дмитрий · 26 февраля 2018, 17:23 Спасибо за подсказку. {$_pls['tv.event_data']|strtotime|date_format:"%d %m %Y" <= ($date|date:"d/m/Y") ? ($_pls['tv.event_data']|date_format:"%d/%m/%Y") : 'Завершено'} Вопросы / Как проверить в fenom истекла ли текущая дата или нет 3 0 1
Евгений Шеронов · 16 декабря 2017, 21:17 Поставьте хук FormitSaveForm перед email. &hooks=`spam,FormItSaveForm,email` И будут доступны в чанке на почту такие плейсхолдеры: savedForm.id: 1 savedForm.form: Заказать звонок savedForm.context_key: web savedForm.ip: 95.81...... и т.д. Вопросы / Номер заказа в Formit 5 +2 1
Олег Захаров · 01 декабря 2017, 01:38 в приложенной картинке пользователь с замазанными данными — реальный пользователь. Остальные боты :( Вопросы / Автореги как защититься от ботов 12 0 1
Александр · 21 сентября 2017, 16:01 Добрый день. Напишите пожалуйста в скайп, контакты в профиле Объявления о работе / Прикрутить фильтры к страницам каталога 7 0 1
Игорь Терентьев · 08 сентября 2017, 01:01 DynamicDropdownTV modcasts.video/videos/dependents-drop-down-lists Вопросы / Изменение содержимого TV в документе 4 0 1
DOM · 12 июля 2017, 15:11 Для вообще ленивых :), авторизация Login по ajax: Вызов: [[!Login? &loginTpl=`lgnLoginTpl` &logoutTpl=`lgnLogoutTpl` &errTpl=`lgnErrTpl` &loginResourceId=`52` &logoutResourceId=`[[*id]]`]] Форма: <div class="loginForm"> <div class="loginLogin"> <div class="loginMessage">[[!+errors]]</div> <form class="loginLoginForm auth" action="[[~[[*id]]]]" method="post"> <fieldset class="loginLoginFieldset"> <label class="loginUsernameLabel" for="login">[[%login.username]]</label> <input class="loginUsername put-focus" type="text" name="username" id="login"> <span class="error error-login"></span> <label class="loginPasswordLabel" for="pass">[[%login.password]]</label> <input class="loginPassword" type="password" name="password" id="pass"> <span class="error error-password"></span> <input class="loginRememberme" type="checkbox" name="rememberme" id="checkbox-1" checked> <label class="loginRemembermeLabel new-check" for="checkbox-1">Запомнить меня</label> <input class="loginLoginValue" type="hidden" name="service" value="login"> <input type="submit" name="Login" value="[[+actionMsg]]"> <input class="returnUrl" type="hidden" name="returnUrl" value="[[+request_uri]]"> </fieldset> <div class="text-center"> <a class="forgot-login" href="[[~45]]">Забыли логин или пароль?</a> </div> </form> </div> </div> Скрипт: <script> $(document).ready(function(){ $(".auth").bind("submit", function() { $("span.error, .loginMessage").text(""); $("input.error, textarea.error").removeClass('error'); if ($(".loginUsername").val().length < 1 && $(".loginPassword").val().length < 1) { $(".error-login").text("Для входа введите Ваш логин"); $(".error-password").text("Для входа введите Ваш пароль"); $('.loginUsername, .loginPassword').addClass('error'); return false; } if ($(".loginUsername").val().length < 1) { $(".error-login").text("Для входа введите Ваш логин"); $('.loginUsername').addClass('error'); return false; } if ($(".loginPassword").val().length < 1) { $(".error-password").text("Для входа введите Ваш пароль"); $('.loginPassword').addClass('error'); return false; } $.ajax({ type : "POST", cache : false, url : "[[~[[*id]]]]", data : $(this).serializeArray(), success: function(data) { var errMessage = $(data).find(".loginMessage").text(); if(errMessage == ""){ window.location = "[[~[[*id]]]]"; }else{ $(".error-login").text('Неправильный логин или пароль'); $('.loginUsername, .loginPassword').addClass('error'); } } }); return false; }); }); </script> Вопросы / AjaxForm и Login 13 0 3
Владимир · 22 июня 2017, 14:24 И еще, раз у вас будут языки (наверно вида site.ru/en/ ), что бы не париться с картинками и путями, сразу указывайте домен в настройке phpthumbof.cache_url https://site.ru/(должен быть установлен pThumb ) PS https или http — в зависимости от вашего случая Вопросы / ссылки в контексте 16 +1 1
Роман · 22 июня 2017, 11:52 Сделал как написал, просто думал про более элегантное выражение или/или/или = одно выражение! Спасибо за помощь! Вопросы / Как написать условия с тремя значениями? 6 0 1
Володя · 31 мая 2017, 11:05 судя по этому github.com/modxcms/revolution/blob/3d6df46fe244897948e95f31604b5225e2571785/manager/assets/modext/sections/security/profile/update.js#L126 нужно создать настройку photo_profile_source и указать там источник медиа Вопросы / Как в админке сменить источник файлов на свой 3 +5 1
Василий Наумкин · 29 мая 2017, 08:56 В modstore.pro всё как раз сделано через теги miniShop2. Вывод тегов товара в чанке: {if count($product.tags)} <div class="tags"> {foreach $product.tags as $tag} <a href="{$packages_url}/tag/{$tag}">{$tag}</a> {/foreach} </div> {/if} При клике юзер переходит по ссылке /packages/tag/любойтег, для которой должен сработать плагин OnPageNotFound, проверяющий наличие секции tag в адресе: $uri = trim(urldecode($_SERVER['REQUEST_URI']), '/'); $tmp = explode('/', preg_replace('#\?.*#', '', $uri)); if (count($tmp) == 3 && $tmp[1] == 'tag') { $value = preg_replace('#[^\w\s\.-]#u', '', $this->modx->stripTags(urldecode($tmp[2]))); if (!empty($value)) { $this->modx->setPlaceholder('extras_tag', $value); $this->modx->resource = $this->modx->request->getResource('id', $this->modx->config['packages_id']); if ($this->modx->resource) { $this->modx->resource->set('longtitle', $this->modx->resource->longtitle . " ($value)"); $this->modx->resource->set('pagetitle', $this->modx->resource->pagetitle . " ($value)"); } $this->modx->sendForward($this->modx->config['packages_id'], ['merge' => true]); } } Дальше идёт загрузка страницы с выводом каталога, на которой вызывается mFilter2, где в &element указан не msProducts, а специальный сниппет-обёртка extraProducts. Он смотрит наличие выставленного плейсхолдера extras_tag, и вызывает уже msProducts: if ($tag = $modx->getPlaceholder('extras_tag')) { $table = $modx->getTableName('msProductOption'); $c = $modx->prepare("SELECT COUNT(product_id) FROM {$table} WHERE `key` = 'tags' AND `value` = '{$tag}'"); if ($c->execute() && !$c->fetchColumn()) { $modx->sendRedirect($modx->makeUrl($modx->resource->id)); } $scriptProperties['innerJoin']['Tag'] = [ 'alias' => 'Tag', 'class' => 'msProductOption', 'on' => 'Tag.key="tags" AND Tag.product_id = msProduct.id AND Tag.value = "' . $tag . '"', ]; } return $modx->runSnippet('msProducts', $scriptProperties); Так что да, теги в miniShop2 есть, но реализацию работы с ними на сайте я оставляю на совести разработчика. Вопросы / Как реализован функционал тэгов на modstore? 3 +3 4
[Решено] Обновление MODX 3.2.2 компонент FetchIt ломает сайт PHP 8.3 FetchIt пока не адаптирован к MODX 3
Плагин 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, сервис-ориентированная архит...
mxBoard: канбан-доска для команд, людей и ИИ-агентов в MODX 3 Для начала перейдем на Markdown, а дальше будет видно
MaxNotify3 Вышло обновление 1.3.0-pl (20.07.2026) — добавлены уведомления о заявках FormIt через hook-сниппет maxNotify3FormIt; — добавлены уведомления о заявках SendIt через hook-с...
И будут доступны в чанке на почту такие плейсхолдеры:
modcasts.video/videos/dependents-drop-down-lists
PS https или http — в зависимости от вашего случая
Спасибо за помощь!
нужно создать настройку photo_profile_source и указать там источник медиа
Вывод тегов товара в чанке:
При клике юзер переходит по ссылке /packages/tag/любойтег, для которой должен сработать плагин OnPageNotFound, проверяющий наличие секции tag в адресе:
Дальше идёт загрузка страницы с выводом каталога, на которой вызывается mFilter2, где в &element указан не msProducts, а специальный сниппет-обёртка extraProducts. Он смотрит наличие выставленного плейсхолдера extras_tag, и вызывает уже msProducts:
Так что да, теги в miniShop2 есть, но реализацию работы с ними на сайте я оставляю на совести разработчика.