Дмитрий

Дмитрий

Был в сети 16 сентября 2021, 01:30
Заказы не принимаю
Все дело было в одной настройки smtp, а именно вот в этой:
SMTP посылать по одному — mail_smtp_single_toНет

У меня стояло — "Да"

То есть скрывались получатели, для нераскрытия в письме email-адресов при отправке нескольким получателям.

Эта статья натолкнула на мысль отключить эту настройку.

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

Поэтому вопрос в следующем.
Как при включенной настройке (mail_smtp_single_to — Да) в плагине, в котором отправляю письма отключить ее?
Сергей, а не подскажешь, возможно ли вывести значения плейсхолдеров без регистрации кода, прописав их в главном шаблоне?
Может не так выражусь, типа сделать их глобальными или хотя бы чтобы они работали не только в чанке, но и в главном шаблоне.
Плейсхолдеры рабочие, в чанке они работают.

Есть чанк — my_chank.tpl, в нем прописываю:
<b>{$placeholder}</b> // выводит значение плейсхолдера

{$_modx->regClientHTMLBlock('
<b>{$placeholder}</b> // тег плейсхолдера  выводится в неизменном виде - {$placeholder}
')}
или так:
{'<b>{$placeholder}</b>' | htmlToBottom : true} // тоже в неизменном виде
{'<b>{$placeholder}</b>' | htmlToBottom} // тоже в неизменном виде
Значения TV и других полей получил так:
// Получаем значения нужных полей
$resource = $modx->getObject('modResource', $id);
$author_vo = $resource->getTVValue('author_vo');
$email_author_vo = $resource->getTVValue('email_author_vo');
$theme_vo = $resource->get('pagetitle');
$text_vo = $resource->get('content');

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

Однако чтобы приходило только один раз, в дальнейшем, при редактировании/снятии с публикации и последующей публикации и др., сообщение больше не отправлялось.

Подскажите в какую сторону копать, какое событие применить? Может уже есть готовое решение, но я его пока не нашел.
Я же не писал, что файлы регистрирую. В файлах мне не нужно чтобы работало. Интересует в самом зарегистрированном коде.

Регистрирую так:
{$_modx->regClientHTMLBlock('
<script>
здесь js-код с плейсхолдерами
</script>
......
здесь html код с плейсхолдерами
'}

Однако плейсхолдеры не работают.
Вроде описал, что плейсхолдеры отображаются в неизменном виде.

Например, если прописывать регистрацию кода в чанке, который относится к сниппету.

Есть вызов сниппета, там прописано:
'tplForm' => '@FILE chunks/my_chank.tpl'
В этом чанке все нужные плейсхолдеры работают.

Регистрирую в этом чанке код html и js, указанными выше способами. Прописываю в нем (регистрируемом коде) в нужных местах плэйсхолдеры. Код регистрируется там где мне нужно, однако плэйсхолдеры не работают — остаются в неизменном виде.
Заинтересовал компонент.

Алексей, подскажи, можно ли реализовать дополнительный вопрос к уже имеющемуся?
Например, как здесь:


Если можно, то подскажи реализацию. Интересует в основном для НЕавторизованных пользователей.

Заранее, благодарю.
На счет свойства outputSeparator — согласен — для гибкости, в вызове сниппета можно менять разделитель.

Сделал так:
<?php
//..........
foreach($tags as $tag) {				
	$tagLink[] = '<a href="' . $tags_page . $tag['value'] . '/">' . $tag['value'] . '</a>';
	}

$outputSeparator = (isset($outputSeparator)) ? $outputSeparator : '';
	
    return implode($outputSeparator, $tagLink);

А свойство tpl — для чего, не пойму?
Объясни, пожалуйста на примере (как бы сам сделал), так как не особо силен в php, тем более в MODX варианте. Но хочу разобраться как в MODX все это работает.

Заранее, благодарю.
Не знаю на сколько это правильно, но сделал так и все работает.

<?php
//..........
foreach($tags as $tag) {
		array(			
			'tags_link' => $tagLink[] = '<a href="' . $tags_page . $tag['value'] . '/">' . $tag['value'] . '</a>'
		);
	}
	
return implode(', ', $tagLink);

и удалил в выводе сниппета
'tpl' => '@FILE chunks/tags/tags_list_item.tpl',


Правильно я сделал, или есть более оптимальный вариант?