Здравствуйте. Нужно чтобы при загрузке формы eForm в определенные поля автоматически заполнялись данными получаемыми из функции.
Делаю так:
На странице вызываю сниппет со своими функциями
Создаю в параметрах вызова eForm событие &eFormOnBeforeFormParse=`parseEditCar`
В функции parseEditCar заменяю плейсхолдеры на данные полученные в результате работы функции. Выглядит это примерно так
function parseEditCar(&$templates) {
global $modx;
$docid = $_GET['docid'];
if (isset($docid))
{
$tpl = $templates['tpl'];
//Плейсхолдеры шаблона формы для парсинга
$placeholders = array(
'[+img+]',
'[+name+]',
'[+cena+]',
);
$d = $modx->getDocument($docid);
$arr = array(
'c-img',
'c-summ',
);
$tv = $modx->getTemplateVarOutput($arr, $docid);
$place = array(
$tv['c-img'],
$d['pagetitle'],
$tv['c-summ'],
);
return str_replace($placeholders, $place, $tpl);
}
}
но чет ниче не выходит.
Подскажите пожалуйста в чем косяк??
В общем решение нашел сам. Поместил эту функцию в сниппет. Поставил этот сниппет в качестве шаблона eForm и все получилось