FormIt динамические поля в шаблоне письма
Здравствуйте. В форме есть динамически добавляемые поля с name=«example[]»
Если в теле письма вставить [[+example]] то все значения выводятся в этом месте через пробел. Как это вывести в массиве или еще как то, что оформить в несколько строк в теле пиьсма?
Если в теле письма вставить [[+example]] то все значения выводятся в этом месте через пробел. Как это вывести в массиве или еще как то, что оформить в несколько строк в теле пиьсма?
Комментарии: 8
1.Вы можете написать сниппет и вызывать в чанке письма, например, так: [[!exampleFormat? &example=`[[+example]]`]].
2.Никто не запрещает посмотреть $_POST['example'], там будет массив значений.
3.Можно написать hook для FormIt. $hook->getValues(), а дальше делайте, что хотите.
2.Никто не запрещает посмотреть $_POST['example'], там будет массив значений.
3.Можно написать hook для FormIt. $hook->getValues(), а дальше делайте, что хотите.
Спасибо! Подскажите, каким образом потом хук может выводить эти значения в тело письма?
Как обычно, плейсхолдерами: rtfm.modx.com/extras/revo/formit/formit.hooks#FormIt.Hooks-CustomHooks
сделал сниппет с именем dymanics:
в код шаблона письма вставил плейсхолдер [[+allFormFields]]
Но он так и выводится просто текстом [[+allFormFields]]
<?php
$allFormFields = $hook->getValues();
return true;
в код шаблона письма вставил плейсхолдер [[+allFormFields]]
Но он так и выводится просто текстом [[+allFormFields]]
Вы пытаетесь получить значение поля из формы, да еще и без указания самого поля)).
Вам же нужно записать значение в плейсхолдер:
Вам же нужно записать значение в плейсхолдер:
$hook->setValue('allFormFields','тут_то_что_нужно записать');
Все, понял, спасибо больше!
Еще несколько вопросов по поводу чистого PHP в этом вопросе:
выводит в письме в таком виде:
Как теперь разделить эти данные к такому виду:
Тип поддонов для грузов: EUR, 800x1200x150
Макс. вес груза на палете, кг: 1200
Тип поддонов для грузов: US, 800x1000x170
Макс. вес груза на палете, кг: 1300
<?php
$tip_poddonov = $hook->getValue('tip_poddonov');
$maxweight = $hook->getValue('maxweight');
$alldata = array ($tip_poddonov,$maxweight);
$string = print_r($alldata, true);
$modx->setPlaceholder('all', $string);
return true;
выводит в письме в таком виде:
Array ( [0] => Array ( [0] => EUR, 800x1200x150 [1] => US, 800x1000x170 ) [1] => Array ( [0] => 1200 [1] => 1300 ) )
Как теперь разделить эти данные к такому виду:
Тип поддонов для грузов: EUR, 800x1200x150
Макс. вес груза на палете, кг: 1200
Тип поддонов для грузов: US, 800x1000x170
Макс. вес груза на палете, кг: 1300
Попробуйте так:
<?php
$tip_poddonov = $hook->getValue('tip_poddonov');
$maxweight = $hook->getValue('maxweight');
$q = count($tip_poddonov);
$count = 0;
while($count < $q){
$string .= '<b>Тип поддонов для грузов:</b> '.$tip_poddonov[$count].'<br /><b>Макс. вес груза на палете, кг:</b> '.$maxweight[$count].'<br /><br />';
$count++;
}
$modx->setPlaceholder('all', $string);
return true;
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.