Вопросы
[РЕШЕНО]Как сортировать данную конструкцию?
Добрый день как сортировать вывод полей слайдера?
{set $rows = json_decode( 3 | resource: 'item', true)}
{foreach $rows as $idx => $item}
{if $idx == '0'}
<div class="item active">
Содержимое
</div>
{else}
<div class="item">
Содержимое
</div>
{/if}
{/foreach}
Каталог из migx поля [[Решено]]
Всем доброго времени суток. У меня очередное затруднение.
Есть, допустим, магазин, или другой сайт с каталогом. Для создания элемента каталога используется migx поле. Мне надо на отдельной странице выводить данные отдельного элемента. Для элементов каталога не хочу создавать отдельный документ. Это будет неудобно банально, когда слишком много ресурсов в списке. Нужен ресурс только для разделов и подразделов.
До этого реализованные мной проекты проще были. А сейчас пока не нашел решения моей проблемы.
Есть, допустим, магазин, или другой сайт с каталогом. Для создания элемента каталога используется migx поле. Мне надо на отдельной странице выводить данные отдельного элемента. Для элементов каталога не хочу создавать отдельный документ. Это будет неудобно банально, когда слишком много ресурсов в списке. Нужен ресурс только для разделов и подразделов.
До этого реализованные мной проекты проще были. А сейчас пока не нашел решения моей проблемы.
[[РЕШЕНО]]Tickets не отправляются комментарии
Перестали работать отзывы на сайте — не отправляются, в админке в поле комментарий стоит 0

Вызов на странице формы отзыва и вывод комментариев:
UPD: Проблема решена понижением версии PHP c 7.2 до 7

Вызов на странице формы отзыва и вывод комментариев:
[[!TicketComments? &allowGuest=`1` &autoPublishGuest=`0` ]] [[!pdoPage? &element=`getTickets` ]][[!+page.nav]]При добавления коммента в логах пусто…
UPD: Проблема решена понижением версии PHP c 7.2 до 7
Как формируется menuindex?
Приветствую
Не до конца понимаю алгоритм работы menuindex ресурса в MODX. Как я понял, menuindex отображает порядок следования материалов в меню или в его ветках, но есть одна вещь, в которой прошу вашего совета.
Итак, имеем, к примеру, вложенное меню. По логике, да и по факту тоже, первый пункт меню или подменю должен быть обозначен нулем — так оно и есть, но дальше начинаются непонятные мне вещи.
Второй пункт меню в админке может быть обозначен 1, 2 или 3 (на скриншоте),

а в базе данных может отличаться на одну цифру от той, что указана в админке. Ну ладно, значение в админку подставляется из БД, значит, дело в кеше. Предположим, что мы его почистили и в админке стали отображаться фактические данные из админки, но и тут есть странность. В БД могут быть два одинаковых menuindex или пропуски между ними (все на втором скриншоте).

Почему так происходит, поясните пожалуйста такое поседение?
Не до конца понимаю алгоритм работы menuindex ресурса в MODX. Как я понял, menuindex отображает порядок следования материалов в меню или в его ветках, но есть одна вещь, в которой прошу вашего совета.
Итак, имеем, к примеру, вложенное меню. По логике, да и по факту тоже, первый пункт меню или подменю должен быть обозначен нулем — так оно и есть, но дальше начинаются непонятные мне вещи.
Второй пункт меню в админке может быть обозначен 1, 2 или 3 (на скриншоте),

а в базе данных может отличаться на одну цифру от той, что указана в админке. Ну ладно, значение в админку подставляется из БД, значит, дело в кеше. Предположим, что мы его почистили и в админке стали отображаться фактические данные из админки, но и тут есть странность. В БД могут быть два одинаковых menuindex или пропуски между ними (все на втором скриншоте).

Почему так происходит, поясните пожалуйста такое поседение?
Событие "Публикация документа"
Требуется выполнить какое-то действие по наступлении события «Публикация документа».
В стандартном перечне событий MODx есть только:
— OnDocPublished — при публикации через контекстное меню в дереве;
— OnResourceAutoPublish — описания в документации нет, когда срабатывает непонятно…
как отловить событие публикации документа в случае «стандартной» публикации (когда ставим флажок «опубликовать» и сохраняем форму)?
В стандартном перечне событий MODx есть только:
— OnDocPublished — при публикации через контекстное меню в дереве;
— OnResourceAutoPublish — описания в документации нет, когда срабатывает непонятно…
как отловить событие публикации документа в случае «стандартной» публикации (когда ставим флажок «опубликовать» и сохраняем форму)?
показать еще
как сделать кнопку показать еще, чтобы при клике на нее и менялась страница стандартной пагинации?
{'!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> Изменение кол-ва товаров в корзине при помощи кнопок "+", "-"
Всем, привет!
Кто нибудь мог бы скинуть рабочий код для реализации такой фичи в корзине miniShop2?
Я пробовал писать на jQuery, добился чтобы в корзине менялось значение но только когда нажимаю на кнопку "+" или "-" он у всех товаров в таблице меняет количество…
Кто нибудь мог бы скинуть рабочий код для реализации такой фичи в корзине miniShop2?
Я пробовал писать на jQuery, добился чтобы в корзине менялось значение но только когда нажимаю на кнопку "+" или "-" он у всех товаров в таблице меняет количество…
Настройка форм в Tickets
При редактировании/создании любого ресурса имеется вкладка «Настройки».
При редактировании/создании Тикета такой вкладки нет, но часть настроек из этой вкладки перенесены на вкладку документ.
Вопрос: как вернуть вкладку настройки и вынести в нее все что по дефолту там имеется при работе с ресурсами?
Настройка форм -> Создание профиля, привязка в группе Admin -> Создание набора правил не помогает решить данную задачу, в этом случае я могу только скрывать что-то из стандартного набора.
При редактировании/создании Тикета такой вкладки нет, но часть настроек из этой вкладки перенесены на вкладку документ.
Вопрос: как вернуть вкладку настройки и вынести в нее все что по дефолту там имеется при работе с ресурсами?
Настройка форм -> Создание профиля, привязка в группе Admin -> Создание набора правил не помогает решить данную задачу, в этом случае я могу только скрывать что-то из стандартного набора.
Formit + Ajaxform валидация кастомного элемента select
Добрый день, встала задача сделать форму на сайте с отправкой нескольким адресатам на основе выбранных пунктов элемента select. Все отлично, но есть пару проблем:
1. Не выбирает несколько получателей, вернее выбирает несколько а письмо шлет только 1му получателю. Выборка осуществляется через самописный сниппет который сопоставляет выбранные значения из подготовленного массива с email-ами.
Прошу помочь Вас уважаемое сообщество!
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.] ]Прошу помочь Вас уважаемое сообщество!
miniShop2 - как реализовать выбор размера/цвета с изменением артикула?
Добрый день!
У клиента ведется база товаров, где все товары разбиты по размерам/цвету и каждый размер/цвет имеет уникальный артикул.
Очень не нравиться, то что, например, одни и те же перчатки размера S, M, L и т.п. забивают весь каталог. Можно ли как-то объединить один и тот же товар в одну карточку, чтобы можно было выбирать размер?
Как пример, то, что нужно получить по итогу — chistovie.ru/catalog/perchatki/perchatki-nitrilovye-safe-care/
На странице перчатка и возможность выбрать размер/цвет и т.п. А у меня сейчас это около 40 перчаток в каталоге!
У клиента ведется база товаров, где все товары разбиты по размерам/цвету и каждый размер/цвет имеет уникальный артикул.
Очень не нравиться, то что, например, одни и те же перчатки размера S, M, L и т.п. забивают весь каталог. Можно ли как-то объединить один и тот же товар в одну карточку, чтобы можно было выбирать размер?
Как пример, то, что нужно получить по итогу — chistovie.ru/catalog/perchatki/perchatki-nitrilovye-safe-care/
На странице перчатка и возможность выбрать размер/цвет и т.п. А у меня сейчас это около 40 перчаток в каталоге!