wiki

Práca s dátami vo Webforme

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.