xyz_form_node_type_form_alter()

fox mulder képe

Üdv mindenkinek!

Régen drupaloztam, kicsit kiestem a dologból, ezért elnézést, ha ostobaságot kérdezek. Annyit szeretnék elérni, hogy egy tartalomtípus szerkesztő-űrlapján legyen egy hozzáadott checkbox, ami ha be van kapcsolva, a tartalomtípus bekerül egy saját tömbbe a variable táblába, ha ki van kapcsolva, akkor nem kerül bele, vagy kikerül belőle. Gondoltam:

// modulom.module
function modulom_form_node_type_form_alter(&$form, &$form_state) {
  $form['modulom'] = array(
    '#type'        => 'fieldset',
    ...
  );
  $form['modulom']['beallitasom'] = array(
    '#type'         => 'checkbox',
    '#title'        => t('...'),
    '#description'  => t('...')
  );
}

// modulom.install
function modulom.install() {
  variable_set('modulom_lista', array());
}

Itt el is akadtam. Azt látom, hogy a content_types.inc fájlban van a node_type_form_submit, amiben a 301. sortól kezdődik a hozzáadott input elemem értékeinek mentése a variable táblába. Ezt hol tudom felülírni? Van szebb megoldás annál, mint megváltoztatni a $form['#submit'] értékét, kimásolni egy saját függvénybe a node_type_form_submit kódját és átírni a szükségesre?
Drupal verzió: 
Bálint képe

A $form['#submit'] egy tömb, szóval ha hozzápush-olod a saját függvényed nevét, amit le akarsz futtatni, az is jó.

De itt inkább a hook_nodeapi()-val végezd a műveleteket: az insert, update és delete opciókat kell megvalósítanod.

0
0
fox mulder képe

A hook_nodeapi-ban node-okat kezelhetek, nem tartalomtípusokat nem?

A másik tippet köszi, kis szépséghiba, hogy a node_type_form_submit kreál egy saját 'name'-et a variable táblában a checkbox és a tartalomtípus nevéből, de ezt a rekordot nem törli, ha törlöm a tartalomtípust. Persze ez nem különösebb gond, de elég szemetelés jellege van.

Ja, és mik a hozzápush-olt függvényem paraméterei?

0
0

Fox Mulder

Bálint képe

Teljesen féreértettem az egészet tegnap este, most esik le, hogy mit szeretnél. Szóval a hook_nodeapi()-t tényleg felejtsd el, nem is mondtam ilyet. :)

A függvényednek ugyanolyan paraméterek kellenek, mint egy form submitnek, tehát:
function my_form_submit($form, &$form_state) {...}.

0
0