Всем привет!
Вот описание хука для работы модуля webform
<?php /**
* Respond to the loading of Webform submissions.
*
* @param $submissions
* An array of Webform submissions that are being loaded, keyed by the
* submission ID. Modifications to the submissions are done by reference.
*/
function hook_webform_submission_load(&$submissions) {
foreach ($submissions as $sid => $submission) {
$submissions[$sid]->new_property = 'foo';
}
} ?>
пишу следующий код
<?php
function mymodule_webform_submission_load(&$submissions) {
dpm ($submissions);
} ?>
Отправляю свою форму, хук срабатывает и dpm почему-то ДВАЖДЫ выводит массив. Почему дважды?
Эксперимент с выводом глобального массива $_POST['submitted'] внутри хука заканчивается тем, что сначала выводится массив с данными, а под ним сразу же сообщение об ошибке неизвестного ключа 'submitted'.
Попытка программно записать файл внутри хука file_save($file) приводит к ошибке Duplicat entry для поля uri таблицы file_managed. Очевидно, что файл пытается записаться ДВАЖДЫ.
Какая логика у этого хука?
Также вызывает вопросы пример из описания хука. Там предлагается перебор массива отправлений.
<?php foreach ($submissions as $sid => $submission) ?>
то есть допускается, что $sid (идентификатор конкретного отправления формы) может быть больше одного. Ну а как такое возможно, если хук, как я понимаю, вызывается после загрузки конкретной (одной) формы?