Kto pozná webformy, vie, že je to veľmi použiteľný modul, ale práca s ním má úskalia.
Ak potrebujete zistiť alebo upraviť konkrétnu hodnotu poľa z konkrétnej submission, môže to byť problém.
Tieto dve funkcie vám problém vyriešia.
/* $nid - node Id
* $sid - submission Id
* $field_key - field name
* $value - new value
*/
function MY_MODULE_webform_submission_update($nid, $sid , $field_key, $value) {
$cid = db_query("select cid from {webform_component} where nid = :nid and form_key = :key ", array(':nid' => $nid, ':key' => $field_key))->fetchField();
db_query("update {webform_submitted_data} SET data=:data where sid = :sid AND cid = :cid", array(':data' => $value, ':sid' => $sid, ':cid' => $cid));
}
function MY_MODULE_webform_submission_load_data($nid, $sid , $field_key) {
$cid = db_query("select cid from {webform_component} where nid = :nid and form_key= :key", array(':nid' => $nid, ':key' => $field_key))->fetchField();
$value = db_query("select data from {webform_submitted_data} where sid = :sid AND cid = :cid", array(':sid' => $sid, ':cid' => $cid))->fetchField();
return $value;
}
Prípadne môžete použiť modul Webform Entity, ktorý urobí z webformu entitu.