We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 20892
    • 20 Posts
    Здравствуйте. Нужно чтобы при загрузке формы 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);
    }
    }

    но чет ниче не выходит.
    Подскажите пожалуйста в чем косяк??
      • 20892
      • 20 Posts
      В общем решение нашел сам. Поместил эту функцию в сниппет. Поставил этот сниппет в качестве шаблона eForm и все получилось