Вопросы

Событие "Публикация документа"

Требуется выполнить какое-то действие по наступлении события «Публикация документа».

В стандартном перечне событий MODx есть только:
— OnDocPublished — при публикации через контекстное меню в дереве;
— OnResourceAutoPublish — описания в документации нет, когда срабатывает непонятно…

как отловить событие публикации документа в случае «стандартной» публикации (когда ставим флажок «опубликовать» и сохраняем форму)?
Bert
19 марта 2019, 23:27
modx.pro
981
0

показать еще

как сделать кнопку показать еще, чтобы при клике на нее и менялась страница стандартной пагинации?

{'!pdoPage' | snippet : [
            'element' => 'msProducts',
            'tpl' => '@FILE chunks/product.tpl', 
            'parents' => $_modx->resource.id,
            'limit' => $limit,
            'depth' => 4,
            'includeTVs' => 'views',
            'includeContent' => 1,
            'processTVs' => 1,
            'tvPrefix' => '',
            'sortby' => $sortby,
            'sortdir' => $direction,

        ]}
<div class="pagination-box">
    <p class="info">Показаны товары с 1 по 12 из {$_modx->getPlaceholder('page.total')} (всего страниц: {$_modx->getPlaceholder('pageCount')})</p>
    <div class="pagination">
        {$_modx->getPlaceholder('page.nav')}
    </div>
</div>
Aslero
19 марта 2019, 16:59
modx.pro
747
0

Изменение кол-ва товаров в корзине при помощи кнопок "+", "-"

Всем, привет!

Кто нибудь мог бы скинуть рабочий код для реализации такой фичи в корзине miniShop2?
Я пробовал писать на jQuery, добился чтобы в корзине менялось значение но только когда нажимаю на кнопку "+" или "-" он у всех товаров в таблице меняет количество…
Абдулсалам
19 марта 2019, 14:59
modx.pro
1
1 602
0

Настройка форм в Tickets

При редактировании/создании любого ресурса имеется вкладка «Настройки».
При редактировании/создании Тикета такой вкладки нет, но часть настроек из этой вкладки перенесены на вкладку документ.

Вопрос: как вернуть вкладку настройки и вынести в нее все что по дефолту там имеется при работе с ресурсами?

Настройка форм -> Создание профиля, привязка в группе Admin -> Создание набора правил не помогает решить данную задачу, в этом случае я могу только скрывать что-то из стандартного набора.
Ruslan Butakov
19 марта 2019, 14:20
modx.pro
1 138
0

Formit + Ajaxform валидация кастомного элемента select

Добрый день, встала задача сделать форму на сайте с отправкой нескольким адресатам на основе выбранных пунктов элемента select. Все отлично, но есть пару проблем:
1. Не выбирает несколько получателей, вернее выбирает несколько а письмо шлет только 1му получателю. Выборка осуществляется через самописный сниппет который сопоставляет выбранные значения из подготовленного массива с email-ами.
<?php
$group = array(
    '[ [++email3-footer] ]',
    '[ [++email3-footer] ]',
    '[ [++email3-footer] ]',
    '[ [++email2-footer] ]',
    '[ [++email2-footer] ]',
    '[ [++email2-footer] ]',
);

// массив $group содержит email`ы в том же порядке,
// в котором объявлены options в html форме обратной связи.

$userChoice = $hook->getValue('service');
$hook->setValue('emailAddresses',$group[$userChoice]);
return true;
Код самой формы:
<div class="contact-form">
                        <form action="" method="POST" enctype="multipart/form-data">
                            <div class="row">
                                <div class="col-md-12 col-12">
                                    <input type="text" placeholder="Ваше имя" id="fname" name="fname" value="[ [!+fi.fname] ]">
                                </div>
                                <div class="col-12">
                                    <input type="text" placeholder="Ваш телефон" id="fphone" name="fphone" value="[ [!+fi.fphone] ]">
                                </div>
                                <div class="col-12">
                                    <div id="addressTo">
                                        <select class="selectpicker form-control" data-title="Тема расчета" name="service" multiple>
                                                <option value="0" [ [!+fi.service:FormItIsSelected=`0`] ]>Торговое оборудование</option>
                                                <option value="1" [ [!+fi.service:FormItIsSelected=`1`] ]>Стеновые панели</option>
                                                <option value="2" [ [!+fi.service:FormItIsSelected=`2`] ]>Индивидуальные стойки ресепшн</option>
                                                <option value="3" [ [!+fi.service:FormItIsSelected=`3`] ]>Гнутоклееные изделия</option>
                                                <option value="4" [ [!+fi.service:FormItIsSelected=`4`] ]>Модульные стойки ресепшн</option>
                                                <option value="5" [ [!+fi.service:FormItIsSelected=`5`] ]>Покраска МДФ/Шпон</option>
                                        </select>
                                    </div>
                                </div>
                                <div class="col-12">
                                    <textarea class="contact-textarea" placeholder="Текст сообщения" id="msg" name="msg" value="[ [!+fi.msg] ]"></textarea>
                                </div>
                                <div class="col-12">
                                    <div class="file_upload">
                                        <span class="button">Обзор</span>
                                        <mark>Файл не выбран</mark>
                                        <input type="file" name="file">
                                      </div>
                                </div>
                                <div class="col-12" style="font-size: 13px;margin-bottom: 20px;">Разрешенные форматы файлов(макс. размер-5МБ): .jpg, .png, .pdf, .doc, .docx</div>
                                <div class="col-12">
                                    [ [!recaptchav2_render] ]
                                    <span class="error_g-recaptcha-response error">[ [!+fi.error.recaptchav2_error] ]</span>
                                </div>
                                <div class="col-12">
                                    <button id="submit" class="cont-submit btn-contact btn-style" name="submit">Отправить сообщение</button>
                                </div>
                            </div>
                            [ [!+fi.validation_error_message:!empty=`
                                 <div class="alert">
                                   <p>Пожалуйста, исправьте следующие ошибки:</p>
                                       <ul>
                                           [ [!+fi.error.fname:!empty=`<li><a href="[ [*uri] ]#fname">Поле «Ваше имя» не заполнено</a></li>`] ]
                                           [ [!+fi.error.fphone:!empty=`<li><a href="[ [*uri] ]#fphone">Поле «Ваш телефон» не заполнено</a></li>`] ]
                                           [ [!+fi.error.msg:!empty=`<li><li><a href="[ [*uri] ]#msg">Поле «Текст сообщения» не заполнено</a></li>`] ]
                                       </ul>
                                 </div>`] ]
                        </form>
                    </div>
Вызов формы в шаблоне:
[ [!AjaxForm? 
                          &snippet=`FormIt` 
                          &form=`@FILE chunks/forms/ajaxform_3.tpl`
                          &hooks=`groupSelector,recaptchav2,email,FormItSaveForm`
                          &formName=`Форма Заказать расчет`
                          &formFields=`fname,fphone,msg,service,file,service`
                          &fieldNames=`fname==Имя,msg==Сообщение,file==Файл,fphone==Телефон`
                          &emailSubject=`Сообщение с формы Заказать расчет`
                          &emailTo=`[ [+emailAddresses] ]`
                          &emailFrom=`site@masmebid.ru`
                          &emailTpl=`@FILE chunks/forms/email_tpl_form3.tpl`
                          &customValidators=`formit2checkfile`
                          &validate=`fname:required:minLength=^2^,msg:required,fphone:required,service:required,file:formit2checkfile,g-recaptcha-response:required`
                          &vTextRequired=`Обязательное поле`
                          &vTextMinLength=`Не менее 2 букв`
                          &validationErrorMessage=`В форме содержатся ошибки!`
                          &successMessage=`Сообщение успешно отправлено`
                          &clearFieldsOnSuccess=`1`
                        ] ]
2. Проблема не выводятся сообщения об ошибках через плейсхолдеры [ [+fi.] ]
Прошу помочь Вас уважаемое сообщество!
Woxis
19 марта 2019, 11:58
modx.pro
1 308
0

miniShop2 - как реализовать выбор размера/цвета с изменением артикула?

Добрый день!
У клиента ведется база товаров, где все товары разбиты по размерам/цвету и каждый размер/цвет имеет уникальный артикул.

Очень не нравиться, то что, например, одни и те же перчатки размера S, M, L и т.п. забивают весь каталог. Можно ли как-то объединить один и тот же товар в одну карточку, чтобы можно было выбирать размер?

Как пример, то, что нужно получить по итогу — chistovie.ru/catalog/perchatki/perchatki-nitrilovye-safe-care/

На странице перчатка и возможность выбрать размер/цвет и т.п. А у меня сейчас это около 40 перчаток в каталоге!
Сергей
19 марта 2019, 11:56
modx.pro
882
0

miniShop2 - не присваивается опция для категории после обновления до 2.4.18

Вот такая трабла. Если делать опцию заново, то ее можно присвоить всем желаемым категориям. А вот имеющиеся опции при создании новой категории или уже имеющейся категории — не получается. Не сохраняется присвоение. Проверил на другом сайте на версии 2.4.14 — Все ОК. Что делать?
Михаил
19 марта 2019, 11:13
modx.pro
931
0

Всплывающее окно после добавления товара в корзину

Всем привет!

Хотел обратиться за помощью по miniShop2.
Как вывести хотя бы
alert()
после того как товар успешно добавляется в корзину?

Нашел в интернате вот эту функцию
miniShop2.Callbacks.Cart.add.response.success = function() {}
Вешаю ее на странице карточки товара. Но в консоль выводится это:
Uncaught ReferenceError: miniShop2 is not defined

Делаю для себя интернет магазин.

Буду благодарен за любую помощь :)
Абдулсалам
19 марта 2019, 06:56
modx.pro
1
1 730
0

Вопрос по шаблонизации

Здравствуйте. Как я понял в чанках нельзя выполнять код. Но оказалось, что можно в чанк вписать не html а именно php-код и выполнить его из сниппета с помощью функции php
eval('текст чанка')
Сначала чанк можно выполнитьб как обычно, а потом уже сам результат
eval('результат обработки чанка')
Вопрос — это как-то повлияет на безопасность?
Хотелось использовать стандартную шаблонизацию modx, но ее несколько не хватает. А использовать fenom — не хотелось бы.
И какие еще шаблонизаторы можно использовать в modx? (fenom, smarty, twig, blitz — уже смотрел, не совсем подходят, по скорости наверное только fenom подойдет и то...)
Денис
18 марта 2019, 21:34
modx.pro
939
0

Настройка Apache и php

Зжравствуйте. Может кто то сможет помочь. На хостинге, на open server и denver сайт работает корректно, а на своем сервере нет главной страницы админки(левое боковое меню есть), и TV поля отображаются некклректно, а некоторые и вовсе исчезли во вкладке дополнительные поля у ресурса. Сервер apache и php, как настроить правильно под mod x. Заранее спасибо
Вадим
18 марта 2019, 18:27
modx.pro
2 732
0