FormIt сохранить поля которых нет в форме
Здравствуйте! Столкнулся с таким вопросом.
Есть формы которые отправляют определенные данные и сохраняют их в FormIt. Но мне нужно чтобы дополнительно FormIt сохранял определенные данные, которых нет в форме (по определенным причинам я не хочу их там указывать, даже скрывая эти поля).
И вот даже не могу понять в какую сторону копать. В идеале это было бы сделать Плагин, чтобы в каждую форму не писать новый Хук, но и с Хуком в целом подойдет.
В документации ничего такого не нашел. Посмотрел Сниппет FormItSaveForm там есть такое:
Предполагаю что можно как-то запихнуть их в 'values' => $dataArray но как это сделать отстраненно от этого Сниппета, чтобы потом все не перезатерлось после обновления не могу понять.
Буду признателен за помощь.
Спасибо.
Есть формы которые отправляют определенные данные и сохраняют их в FormIt. Но мне нужно чтобы дополнительно FormIt сохранял определенные данные, которых нет в форме (по определенным причинам я не хочу их там указывать, даже скрывая эти поля).
И вот даже не могу понять в какую сторону копать. В идеале это было бы сделать Плагин, чтобы в каждую форму не писать новый Хук, но и с Хуком в целом подойдет.
В документации ничего такого не нашел. Посмотрел Сниппет FormItSaveForm там есть такое:
$newFormArray = array(
'form' => $formName,
'date' => time(),
'values' => $dataArray,
'ip' => $modx->getOption('REMOTE_ADDR', $_SERVER, ''),
'context_key' => $modx->resource->get('context_key'),
'encrypted' => $formEncrypt,
'encryption_type' => $encryptionType,
'hash' => $formHashKey,
);
Буду признателен за помощь.
Спасибо.
Комментарии: 7
Вот здесь инструкция, как добавить информацию при помощи хука.
Спасибо, попробовал. Что-то не получается.
Добавил хук:
Добавил хук:
'hooks' => 'hook.utmsaveform,email,FormItSaveForm',
Создал сниппет hook.utmsaveform:$hook->setValue('utm_source', $_COOKIE['utm_source']);
$hook->setValue('utm_medium', $_COOKIE['utm_medium']);
$hook->setValue('utm_campaign', $_COOKIE['utm_campaign']);
$hook->setValue('utm_term', $_COOKIE['utm_term']);
$hook->setValue('utm_content', $_COOKIE['utm_souutm_contentrce']);
return true;
И в просмотре форм пусто, нет этих полей, в БД тоже их нет :( Что делаю не так?
А сниппет получает массив $_COOKIE? И немного резануло глаз наименование сниппета с точкой. Вдруг FormIt не поддерживает подобное наименование хуков.
Проверьте так:
$modx->log(xPDO::LOG_LEVEL_ERROR, $_COOKIE['utm_source']);
Спасибо, вы были правы, проблема с «точкой» в названии хука.
НО! Сейчас в лог я смог вывести куку, но в форму так ничего и не записалось.
Я просматриваю что записалось через плагин FormIt, где все сохраненные формы.
Стоит вызов хука вроде правильно, перед email и FormItSaveForm:
НО! Сейчас в лог я смог вывести куку, но в форму так ничего и не записалось.
Я просматриваю что записалось через плагин FormIt, где все сохраненные формы.
Стоит вызов хука вроде правильно, перед email и FormItSaveForm:
'hooks' => 'spam,hook.prepareForm,hookutmsaveform,email,FormItSaveForm',
В базе данных тоже нет записей, смотрел.
Если у FormIt есть параметр formFields, то записываются только те поля, которые указаны в этом параметре.
Да, вы правы, были обозначены поля, из-за этого эти не прописывались.
Спасибо, надо быть мне внимательнее.
Спасибо, надо быть мне внимательнее.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.