hook_form_alter, submit

fifty képe

sziasztok,

a hook_alter_webform -ot használva hozzá adok egy új 'radios' típusú mezőt a formomhoz. A mező frankón megjelenik, de nem mentődik el a mező értéke DB-be, az eredmények (submissions) oldalon ez a mező aktív és nincs kiválasztott értéke.

hozzá adok egy saját submit-ot:

$form['#submit'][] = 'mymodule_myform_submit';

eddig rendben, de mit írjak ebbe, hogy elmentse a saját fieldemet?

köszi!

Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
eMeLA képe

Példul azt, hogy elmentse a saját field-edet :))

Bár nem használtam a hook_alter_webform()-ot, de abban biztos vagyok, hogy az még kevés, hogy hozzáadsz egy gombot. Szegény Drupál honnét tudja, hogy hova kell elmentenie. Vagyis vagy kutakodsz a webform-ban és találsz egy neked megfelelő függvényt ami megfelelő paraméterezéssel elmenti, vagy írsz saját magad egyet...

Az nem teljesen világos, mért a hook_alter_webform()-ban adsz hozzá valamit, amikor a webform direkt arra van kitalálva, hogy a szép felhasználóbarát felületen adj hozzá elemeket... de biztos megvan az oka

0
0

...mit tudok: http://web.termuves.hu

fifty képe

miért ne mentené el "szegény Drupal"?

akkor kutakodok a webform-ban ő hogy csinálja, nekem pont csak az kell, amit ő csinál. A webform_get_submission-t használtam már, nem tudom ennek a save-je jó-e nekem, illetve ilyenkor van-e már submission, ...

0
0
aries képe

Mert a Drupal azt csinálja, amit mondasz neki. :) Ne a Webform modult nézd, hanem vmi kisebbet, ami nem akkora bloatware. Itt találsz példát is a submit opra: http://drupal.org/node/751826

0
0
aries képe

Vissza az egész, a címben hook_form_alter() szerepelt, te pedig vmi hook_alter_webform()-mal kavarsz. A kettő nem u.az, azt tudod, ugye?

0
0
fifty képe

bocs, elírtam hook_form_alter-t használok egy webform módosítására.

azt várnám el, hogy ha hozzá adok egy mezőt akár UI-ról, akár hook_form_alter-ből azt ugyanúgy kezelje, azaz mentse el, a submission-be kerüljön be.

Van egy "teszt" nevű fieldset, és abba rakok bele egy radios típusú elemet:

$form['submitted']['teszt']['q1'] = array(
  '#type' => 'radios',
  '#title' => t('1) Ez az elso kerdes'),
  '#options' => $optionsArray,
  '#prefix' => '<div class="webform-component-select" id="webform-component-q1">',
  '#suffix' => '</div>',
  '#description' => t('Desc!'),
);
		$form['#validate'][] = 
			  'mymodule_mytestform_validate'; 
		$form['#submit'][] = 'mymodule_mytestform_submit';  
0
0
pp képe

Akkor neked nem form_alter kell, hanem egy webform elemet lenne érdemes gyártanod.

A form_alterrel csak beleraksz egy újabb elemet az űrlapba, ezzel az erővel akár egy kis képecskét is belerakhatnál, vagy egy szöveget. Azzal se csinál semmit se a webform.

(persze vannak olyan speciális formok, ilyen pl. minden olyan amihez a system_settings_form függvénnyel adod hozzá a mentés/visszaállítás gombokat. Ez ugyanis az összes elemet elmenti a variables táblába. Ez azonban nem jellemző, sőt.)

Node-nál is úgy működik a történet, hogy form_alterrel hozzáadsz egy elemet és utána hook_nodapi-nál meg ügyeskedsz.

pp

0
0
fifty képe

Mi az a webform elem?

Úgy gondoltam, a form_alter-rel belerakom a form-ba a saját field-em, ami és a drupal majd kezeli a többivel. Ez nem így megy, ezért a saját submit metódusomban kellene lekezelnem, és nekem betenni a submission táblába, vagy megnézni hogyan csinálja a webform modul, és a submit során abba a tömbbe beállítani amiből ő majd elmenti a többivel együtt.

Szóval nekem jó a webform elem, ha azt csinálja amire nekem szükségem van. Úgy hozzáadni api-ból egy field-et, hogy úgy viselkedjen, mintha UI-ról adtam volna hozzá.

0
0
aries képe

Van olyan modul, hogy Webform, amivel tudsz a webform típusú tartalmakhoz űrlapelemeket adni. Az is jó megoldás, amit Te javasolsz, de a webform tartalmat „a hozzá adott” modullal érdemes módosítanod, ha már egyszer feltelepítetted. :)

0
0
fifty képe

Egyetértek, de sehol nem találok erre példát, csak az form_alter-t látom. Nézem a webform hook-okat, de egyenlőre semmi.

Tudnátok egy példát, linket, ... vmit küldeni?

0
0
aries képe

Amit küldtem webcímet, azt megnézted? A submitra (is) van benne példa.

0
0
fifty képe

próbálkoztam hook_nodeapi-ban webform['components']-hez hozzáadni, működött is, de az eredmény oldalon volt valami gebasz vele - már nem is emlékszem

a vége az lett, hogy saját submit metódusban webform_submission_update -et használva tolom be a saját dolgaimat.

köszi!

0
0