Как добавить кастомный плейсхолдер в hook FormIt?

На сайте есть форма с заказом прайс-листов. Берутся они из директории в каталоге сайта. Перебираю и генерирую ссылки я так:

$dir = 'prices';
if ( $handle = opendir( $dir ) )
{
    while ( $file = readdir($handle) )
    {
     for ($i=0; $i<count($file); $i++)
        if(($file != '.') && ($file != '..') && ($file[0] != '.')) {
            $file = mb_convert_encoding($file, "utf-8", "windows-1251");
            $file = '<br /><a href="https://.../prices/'.$file.'">'.$file.'</a>';
            $fileOrder[] = $file;
        }
    };
    closedir( $handle );
};

Весь хук с отправкой письма выглядит так:

<?php
$fields = $hook->getValues();

$message = $modx->getChunk('tpl.mail.price', $fields);
 
$modx->getService('mail', 'mail.modPHPMailer');
$modx->mail->set(modMail::MAIL_BODY, $message);
$modx->mail->set(modMail::MAIL_FROM, $modx->getOption('emailsender'));
$modx->mail->set(modMail::MAIL_FROM_NAME, $modx->getOption('site_name'));
$modx->mail->set(modMail::MAIL_SUBJECT, 'Прайс-лист');
$modx->mail->address('to', $fields['email']);
$modx->mail->address('reply-to', $modx->getOption('emailsender'));
$modx->mail->setHTML(true);

$dir = 'prices';
if ( $handle = opendir( $dir ) )
{
    while ( $file = readdir($handle) )
    {
     for ($i=0; $i<count($file); $i++)
        if(($file != '.') && ($file != '..') && ($file[0] != '.')) {
            $file = mb_convert_encoding($file, "utf-8", "windows-1251");
            $file = '<br /><a href="https://.../prices/'.$file.'">'.$file.'</a>';
            $fileOrder[] = $file;
        }
    };
    closedir( $handle );
};

$hook->setValue('fileOrder', $fileOrder);

if (!$modx->mail->send()) {
  $modx->log(modX::LOG_LEVEL_ERROR,'An error occurred while trying to send the email: '.$modx->mail->mailer->ErrorInfo);
}

$modx->mail->reset();

return true;

В письме я вызываю плейсхолдер так: [[+fileOrder]]
В итоге на почту приходит письмо с текстом "[[+fileOrder]]", вместо массива.

Как заставить хук отправить плейсхолдер?


Ответы (0 шт):