Ответы пользователя по тегу MODX
  • Как подтянуть фотографию товара в YML файл?

    DanArst
    @DanArst
    Гриффиндор в моде при любой погоде!
    Если это товары minishop2, то зачем использовать pdoResources, если есть msProducts.
    И тогда не надо будет запускать сниппет msGallery в чанке, а у вас будет доступен плейсхолдер [[+image]] - основное изображение товара.
    Ответ написан
    2 комментария
  • Как настроить логирование MODX в соответствии с требованием ЦБ?

    DanArst
    @DanArst
    Гриффиндор в моде при любой погоде!
    А что не так в Журнале системы управления? Все это там ведь указывается.
    Ответ написан
  • Как создать robots на Modx Rev?

    DanArst
    @DanArst
    Гриффиндор в моде при любой погоде!
    Это могу быть ресурсы. Зайдите в админку и в правой панели сайта увидите три вкладки: Ресурсы, Элементы, Файлы.
    Ресурсы - это все страницы сайта, вот среди них и найдите страницу robots.
    Ответ написан
  • Как минифицировать код MODx?

    DanArst
    @DanArst
    Гриффиндор в моде при любой погоде!
    Че это за чушь? Выключите этот плагин, он никоим образом не ускорит загрузку страницы.
    Есть HTML2Minify, если хотите средствами Modx
    Ответ написан
  • Как отправить на почту JS данные Modx?

    DanArst
    @DanArst Куратор тега JavaScript
    Гриффиндор в моде при любой погоде!
    Не понял, вы в форму модального окна вставляете картинку и заголовок, но не знаете как их отправить?
    Ну так вставляйте их в скрытые поля. И чанке письма, если такой есть, отобразите имя поля, в которое будет вставляться заголовок. Картинка будет во вложении. Чтобы вложение отправить добавьте форме атрибут enctype="multipart/form-data"
    Ответ написан
    Комментировать
  • Как можно выполнить PHP-скрипт в файле перед всем в MODX?

    DanArst
    @DanArst
    Гриффиндор в моде при любой погоде!
    OnInitCulture - самое первое событие, если вы имеете в виду фронтенд-события. Только вот не понял связь между PHP-файлом и событиями Modx.
    Ответ написан
  • Как добавить у каждого товара цену в телеграмм отправке?

    DanArst
    @DanArst
    Гриффиндор в моде при любой погоде!
    foreach ($_products as $product) {
        $i++;
        $products .= "{$i}. {$product->name} ({$product->count} шт.) ({$product->price}) \n";
    }
    Ответ написан
  • Калькулятор для MODX как реализовать?

    DanArst
    @DanArst
    Гриффиндор в моде при любой погоде!
    А причем тут Modx? Ваш калькулятор - это HTML разметка с функционалом на JS.
    Modx вам разве что понадобится только для отправки формы, и то можно не использовать компоненты, или для управления параметрами калькулятора, и то не факт что это тоже понадобится.
    Хочу научиться писать самостоятельно, скажите в какую сторону копать? Какие книги или может видеоуроки.

    Честно говоря, учитывая что вы задали такой вопрос, то вам бы хоть что-то научится делать для начала - верстать, подучить базу JS, чтобы было логическое понимание как это работает. А там по ходу разработки будут появляться нужные вопросы, ответы на большинство из которых можно без проблем найти в гугле.
    Если делать на фрилансе, сколько стоит подобная услуга. За сколько бы сделали ВЫ?

    Зависит от количества параметров, их зависимостей. У каждого своя вилка цен, я бы взял диапазон 3500-5000р.
    Ответ написан
    Комментировать
  • Как в ModX + ms2Gallery как вывести alt у изображений?

    DanArst
    @DanArst
    Гриффиндор в моде при любой погоде!
    А в вызове msGallery на странице товара случайно не другой чанк указан?
    Ответ написан
  • Как скрывать блок в msFavorites если count меньше 0?

    DanArst
    @DanArst
    Гриффиндор в моде при любой погоде!
    Скопировать скрипт msFavorites, указать новый в системных настройках по ключу msfavorites_front_js
    В скопированном скрипте править метод updateFavorites, а именно строчки под комментом //set total.
    Там проверяешь условие, если total < 1, то скрываешь блок, если нет, то показываешь. Все.
    Ответ написан
  • Не работает плагин cityselect?

    DanArst
    @DanArst
    Гриффиндор в моде при любой погоде!
    По моему компонент уже давно не актуален, 5 лет с выпуска последней версии прошло. Как минимум у него какая-то проблема с kladr api начала возникать, ибо они со своей стороны что-то меняли. Вариант - либо написать свое решение, либо взять платное, например UserLocation и включить в нем DaData.
    Ответ написан
    2 комментария
  • Как в modx очистить кеш?

    DanArst
    @DanArst
    Гриффиндор в моде при любой погоде!
    Потому что кнопка "Очистить кэш" чистит кэш не браузера, а самой CMS, это ведь логично.
    Для сброса кэша CSS добавьте подключаемым в head стилям версию, например
    <link rel="stylesheet" href="/assets/template/css/styles.css?v=1.1">
    Ответ написан
    Комментировать
  • Как в modx настроить Mobile Detection?

    DanArst
    @DanArst
    Гриффиндор в моде при любой погоде!
    Тот компонент уже лет 10 как заброшен, используйте лучше компонент от Ильт Уткина MobileDetect
    Ответ написан
    2 комментария
  • Как вывести дополнительное текстовое поле в админке Gallery?

    DanArst
    @DanArst
    Гриффиндор в моде при любой погоде!
    Расширять, как и любую другую модель в Modx.
    1) Создаете js-скрипт, в котором наследуете GAL.panel.Album, код которого находится в assets/components/gallery/js/mgr/widgets/album/album.panel.js, добавив туда свое поле в items.
    2) Добавляете поле в таблицу modx_gallery_albums (префикс modx_ может отличаться) с именем, которое указали в атрибуте name у поля из предыдущего пункта.
    3) Создаете плагин на событие OnManagerPageBeforeRender, который будет регистрировать созданный ранее js-скрипт на странице админки.

    Это правильный путь к решению, так как его не затрут обновления компонента Gallery.
    Есть путь проще, но тогда компонент нельзя будет обновлять - вместо наследования в 1-ом пункте и создания плагина из 3-го пункта, просто добавляете поле в код в album.panel.js и добавляете его в таблицу modx_gallery_albums. Все.

    Либо можно сделать без расширения полей, но костылем. Можно использовать поле Описание альбома, как контейнер для всех языковых версий, просто нужно определить синтаксис для указания ключа контекста (если делали с помощью Babel) и перевода. Грубо говоря ru=текст|en=текст|de=текст, только надо определиться с разделителями.
    Не знаю, что вы там указываете, допустим название на разных языках. Получается в поле Описание просто указываете примерно так:
    ru>Дизайн буклетов для свадьбы|en>Wedding brochure design|de>Gestaltung einer Hochzeitsbroschüre


    > - разделитель ключа контекста от перевода
    | - разделитель языковых переводов

    Если у вас сделано с помощью Babel и в месте вывода идет проверка ключа контекста, то теперь достаточно написать простой сниппет с одним входным параметром - ID альбома, который разобьет содержимое поля Описание на массив (язык-перевод) и исходя из ключа текущего контекста, выведет нужный перевод.
    Ответ написан
    Комментировать
  • Как выполнить валидацию radio button в formit?

    DanArst
    @DanArst
    Гриффиндор в моде при любой погоде!
    Основы HTML. У вас ни один флажок по умолчанию не отмечен, а форма в таком случае не будет отправлять значение при сабмите. Поэтому помимо всего прочего вам нужно добавить в форму скрытое поле, т.е. типа hidden с таким же именем:
    <input type="hidden" name="way[]" value="">
    Ответ написан
    Комментировать
  • Как сделать ссылку на товар в msMiniCart?

    DanArst
    @DanArst
    Гриффиндор в моде при любой погоде!
    1) Вы используете разметку сниппета msMCD, а не msMiniCart. Это разные сниппеты разных компонентов.
    2) Чуть чуть внимательности
    {foreach $cart as $k => $item} //Вы запускаете цикл foreach
    <a href="{$id | url}" class="cart__title" > //а тут почему-то плейсхолдер $id вместо $item.id
       {$item.pagetitle}  //тут у вас верно используется $item
    </a>
    Ответ написан
  • Почему не редактируются хлебные крошки?

    DanArst
    @DanArst
    Гриффиндор в моде при любой погоде!
    Если почитать документацию, то думаю этот вопрос сразу отпадет, ибо достаточно указать
    <div class="bread-crumb">
        [[pdoCrumbs? &showHome=`1`
        &tplWrapper=`@INLINE <div class="bread-crumb__container container" itemscope itemtype="http://schema.org/BreadcrumbList">[[+output]]</div>`
        &tpl=`@INLINE <div itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a href="[[+link]]" itemprop="item" class="bread-crumb__item"><span itemprop="name">[[+menutitle]]</span><meta itemprop="position" content="[[+idx]]"></a></div>`
        &tplCurrent=`@INLINE <span  class="bread-crumb__item">[[+menutitle]]</span>`
        &tplHome=`@INLINE <div itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a href="[[+link]]" itemprop="item" class="bread-crumb__item"><span itemprop="name">Купить мотоцикл</span><meta itemprop="position" content="[[+idx]]"></a></div>`
        ]]
    </div>
    Ответ написан
    Комментировать
  • Как сделать что бы mSearchForm открывал модульное окно с товаром а не переходил на страницу?

    DanArst
    @DanArst
    Гриффиндор в моде при любой погоде!
    Придется наверное писать ajax-запрос и его обработчик. Так как в ui передаются только следующие параметры: id-товара, label для autocomplete, url-товара и его название.
    Тебе нужно в методе select, который на последнем скрине, написать ajax-post запрос, в котором ты будешь передавать id товара. Далее этот запрос обрабатывай плагином или сниппетом и возвращай готовую обертку модалки и выводи ее.
    Как работать с Ajax, есть старая добрая статья от Василия по ссылке.
    Ответ написан
    Комментировать
  • Как менять цену в msOptionsPrice2 исходя из size?

    DanArst
    @DanArst
    Гриффиндор в моде при любой погоде!
    Ну дык у вас это не вес же, а размеры, то бишь size, а у обертки вы указываете класс msoptionsprice-weight.
    Вообще в доке все более, чем понятно расписано. Не поленитесь, почитайте и все получится.
    По поводу radio-кнопок: вы же явно умеете в HTML? Откройте tpl, указанный в сниппете msOptions и переделайте его под radio-кнопки. Плейсхолдеры то те же самые остаются, тут дело лишь в HTML-разметке.

    p.s возможно не вызван msOptionsPrice.initialize на странице
    Ответ написан
    21 комментарий
  • Почему не исключается категория из цикла?

    DanArst
    @DanArst
    Гриффиндор в моде при любой погоде!
    Во первых, у вас неверный синтаксис where, нужно указывать в форме JSON, то бишь:
    &where=`{"id:!=":"190","class_key":"msCategory"}`

    Во вторых, вы таким образом хотите исключить ресурс из выборки или родителя? Зачем использовать where, если можно сделать проще:
    &parents=`15, -190` //если нужно исключить ресурс с ID 190 и его дочерние
    &resources=`-190` //если нужно исключить ресурс с ID 190
    Ответ написан
    2 комментария