Вопросы

Как получить значения TV-полей и других полей сохраняемого ресурса - в плагине с событиями OnBeforeDocFormSave или OnDocFormSave

Зделал создание тикета без регистрации, альтернативным способом, указанном в заметке: modx.pro/solutions/5288

Что-то типа вопрос-ответ, но каждый вопрос-ответ отдельный ресурс.

Однако уведомление администратору не приходит.

Сделал TV-поля с Именем и Еmail

Сделал 2 плагина, один для администратора, в котором прописал email администратора — уведомления идут.

Второй плагин для незарегистрированного пользователя, однако TV-параметры получить не могу.

Пробовал так:
$modx->resource($email_author_vo);
Ничего не выходит...

Вот плагин, который сохраняет тикет неопубликованным и должен отсылать сообщение на email пользователю:
<?php
	switch ($modx->event->name) {
		case 'OnBeforeDocFormSave':
			
			if ($mode == 'new' && $resource->class_key == "Ticket") {  
             	  		 $resource->set('published', 0);
            	
             	
/*Активируем почтовый сервис MODX*/
$modx->getService('mail', 'mail.modPHPMailer');
$modx->mail->set(modMail::MAIL_FROM, $modx->getOption('emailsender'));
$modx->mail->set(modMail::MAIL_FROM_NAME, $modx->getOption('site_name'));

/*Адрес получателя нашего письма... <strong>КАК СЮДА ПОЛУЧИТЬ TV-ПОЛЕ С EMAIL?</strong>... 
Если прописать реальный email, то на него письма идут*/
$modx->mail->address('to', $resource->getTVValue('email_author_vo'));


/*Заголовок сообщения*/
$modx->mail->set(modMail::MAIL_SUBJECT, 'Вы задали новый вопрос');


/*Подставляем чанк с телом письма (предварительно его нужно создать)*/
$modx->mail->set(modMail::MAIL_BODY, 'Вы задали вопрос на сайте');

/*Отправляем*/
$modx->mail->setHTML(true);
if (!$modx->mail->send()) {
    $modx->log(modX::LOG_LEVEL_ERROR,'Произошла ошибка при попытке отправить письмо: '.$modx->mail->mailer->ErrorInfo);
}
$modx->mail->reset();     		 
             	  		 
			}
			
			$resource->save();
 
		break;
	}
Как получить значения TV-полей в такой плагин — с событиями "OnBeforeDocFormSave" или "OnDocFormSave"?

Думаю и с получением и других полей сохраняемого ресурса также имеет место проблема.

Хотелось бы еще сделать, чтобы при публикации тикета из админки приходило уведомление создателю тикета на email из TV-поля $email_author_vo

Может есть иной способ сделать уведомления при создании тикета администратору и пользователю, создвшему тикет (задавшему вопрос), лучше даже при сохранении в черновики, а после ответа на вопрос и публикации этого тикета, отсылать уведомление задавшему вопрос о публикации ответа (то есть этого тикета)?
Дмитрий
08 апреля 2019, 22:53
modx.pro
1 906
0

Не работает кнопка Удалить на странице сравнения Comparison

Если не работает кнопка Удалить на странице сравнения Comparison.
Преходим assets/components/comparison/js/default.js и вносим изменения
Абакар
08 апреля 2019, 21:41
modx.pro
885
0

Размеры картинки в CompareList

Как изменить размеры миниатюры товара на странице сравнения товаров?
Абакар
08 апреля 2019, 20:47
modx.pro
785
0

Вывод и оформление каждого выбранного варианта TV-поля в html-теги

Здравствуйте. Возможно, это какой то лёгкий вопрос, но в интернете я не нашёл на него ответа помимо php-кода разных сниппетов. А может я плохо читаю документацию. В общем, есть тв-поле, имеющее параметр ввода Список, множественный выбор. Есть раздел тикетов с ними. В каждом тикете находится это тв-поле, где выбираются нужные варианты и выводятся через код:

<div class="about">
<p>здесь могла бы быть ваша реклама</p>
<hr>
<h3>Наша команда</h3>
[[!pdoPage?
	&parents=`24`
	&tpl=`team-item`
	&sortdir=`ASC`
	&includeTVs=`team-image, team-speciality`
]]
</div>
al1ve
08 апреля 2019, 17:30
modx.pro
950
0

При правках ресурса он снимается с публикации

При любых правках ресурса он снимается с публикации. Помогает только руками в базе поменять published на 1. Кажется появилось после обновления MODX до последней версии. Кто-нибудь сталкивался с подобным?
Михаил
08 апреля 2019, 16:47
modx.pro
1 003
0

Значение по умолчанию checkbox

Добрый день. Есть checkbox, выбирается цвет. В поле возможные значения я написал @SELECT `pagetitle`,`id` FROM modx_site_content WHERE parent = 172 ORDER BY `pagetitle`. Все выводит корректно и выбирается. А что вписать в поле значения по умолчанию. Ну чтобы при создании товара допустим 4 цвета были отмечены по умолчанию, если пользователь не выбрал другие значения?
Вадим
08 апреля 2019, 11:54
modx.pro
871
0

AjaxForm не отправляет письма

Oleg
07 апреля 2019, 20:54
modx.pro
2 471
0

getResourcess внутри getResourcess

И так дано:
Структура сайта
  • Главная
  • Авто
    • Японские
      • Марка-1
      • Марка-2

      • Марка-3
      • Марка-4

Юрий
07 апреля 2019, 17:27
modx.pro
801
-2

Запрос цены в Telegram-сообщения (modTelegram)

Здравствуйте, подскажите пожалуйста.
Как можно реализовать такую функцию?

Есть категория товаров, у которых не указывается цена. Как можно сделать, чтоб при нажатии на кнопку Запросить цену, выводилось модальное окно, где нужно гостю ввести номер имя и e-mail, нажать на кнопку Запросить и запрос шел в чат Telegram-сообщения на самом сайте вместе с его данными и Данными о товаре?
Абакар
07 апреля 2019, 16:30
modx.pro
1 032
0

[Решено] Как вывести в mfilter

Как в фильтре mfilter вывести из поля ms|platforms с типом список с автодополнением где данные в виде [«val1»,«val2»,«val3»]?

Нужно в фильтре только по одному типу указать. И чтобы искал в поле только по одному значению, а не полностью всю простыню выводил?

Сейчас выглядит фильтр следующим образом:

{'!mFilter2' | snippet : [
        'parents' => $_modx->resource.id,
        'limit' => 12,
        'class' => 'msProduct',
        'element' => 'msProducts',
        'tpl' => '@FILE components/msearch2/mfilter/row.tpl',
        'tplOuter' => '@FILE components/msearch2/mfilter/outer.tpl',
        'tplPageWrapper' => '@INLINE <ul class="pagination justify-content-md-end mt-2">{$pages}</ul>',
        'tplPage' => '@INLINE <li class="page-item"><a class="page-link" href="{$href}">{$pageNo}</a></li>',
        'tplPageActive' => '@INLINE <li class="page-item active"><a class="page-link" href="{$href}">{$pageNo}</a></li>',
        'tplPageSkip' => '@INLINE <li class="page-item gap"><span class="page-link">...</span></li>',
        'tplPageFirst' => '@INLINE <li class="page-item"><a class="page-link" href="{$href}">[[%pdopage_first]]</a></li>',
        'tplPageLast' => '@INLINE <li class="page-item"><a class="page-link" href="{$href}">[[%pdopage_last]]</a></li>',
        'tplPagePrev' => '@INLINE <li class="page-item"><a class="page-link" href="{$href}">«</a></li>',
        'tplPageNext' => '@INLINE <li class="page-item"><a class="page-link" href="{$href}">»</a></li>',
        'tplPageFirstEmpty' => '@INLINE <li class="page-item disabled"><a class="page-link" href="{$href}">[[%pdopage_first]]</a></li>',
        'tplPageLastEmpty' => '@INLINE <li class="page-item disabled"><a class="page-link" href="{$href}">[[%pdopage_last]]</a></li>',
        'tplPagePrevEmpty' => '@INLINE <li class="page-item disabled"><a class="page-link" href="{$href}">«</a></li>',
        'tplPageNextEmpty' => '@INLINE <li class="page-item disabled"><a class="page-link" href="{$href}">»</a></li>',
        'where' => '{"class_key":"msProduct"}',
        'suggestions' => 'true',
        'filters' => '
                        ms|price:number,
                        ms|platforms:checkbox
                    ',
        'sort' => '
                        ms|price:desc
                    ',
        'tplFilter.outer.ms|price' => '@FILE components/msearch2/mfilter/filters/slider-outer.tpl',
        'tplFilter.row.ms|price' => '@FILE components/msearch2/mfilter/filters/slider-row.tpl'
    ]}
SEQUEL.ONE
07 апреля 2019, 15:10
modx.pro
1 896
0