Form taxonomy érték

Sir_Csavar képe

Submit előtt szeretnék egy értéket módosítani, konkrétan egy taxonomy értékét, a $form tömb melyik részét kellene módosítani submit előtt?

eddig a submit handlerben így próbálkoztam

$form['nid']['#post']['taxonomy'] = $form_state['storage']['taxonomy'];
$form['vid']['#post']['taxonomy'] = $form_state['storage']['taxonomy'];
$form['uid']['#post']['taxonomy'] = $form_state['storage']['taxonomy'];
$form['created']['#post']['taxonomy'] = $form_state['storage']['taxonomy'];
$form['type']['#post']['taxonomy'] = $form_state['storage']['taxonomy'];
$form['#parameters'][1]['values']['taxonomy'] = $form_state['storage']['taxonomy'];

előre is köszi

Drupal verzió: 
Bálint képe

Ha ezt egy node beküldésénél szeretnéd, akkor a hook_nodeapi nevű hurkot kell megvalósítanod, és annak is a presave opcióját. Írasd ki a $node objektumot, nézd meg, hogy egyébként hogy van benne a taxonómia eltárolva, és módosítsd!

0
0
Sir_Csavar képe

hogy, ez túl hamar megvalósítja, a form egy multisteppes változat és nekem a 2. lépésben kéne megvalósítani a taxonomy vissza írását ami az 1. lépésben került kiválasztásra

0
0

--
A jó ember az ő szívének jó kincséből hoz elő jót; és a gonosz ember az ő szívének gonosz kincséből hoz elő gonoszt: mert a szívnek teljességéből szól az ő szája. (Lukács 6:45)

Bálint képe

Akkor gondolom a hook_form_alter-t valósítottad meg.

Itt a $form_state tömbben tárolódnak a bevitt értékek, és valahogy az is, hogy multistep-es form esetén éppen melyik lépésnél tartasz. A bevitt értékek a $form_state['values'] tömbben lesznek.
Ki tudod tehát olvasni, hogy az első lépésben mit adott meg a user, a második lépésben pedig ennek mintájára te magad adhatsz neki értéket.

Szerintem írasd ki mindig ezt a tömböt így:

print_r($form_state);

Ebből többminden kiderül.
0
0
Sir_Csavar képe

rájöttünk a dolog nyitjára! :)

0
0

--
A jó ember az ő szívének jó kincséből hoz elő jót; és a gonosz ember az ő szívének gonosz kincséből hoz elő gonoszt: mert a szívnek teljességéből szól az ő szája. (Lukács 6:45)