Contrib modul form_submit kiterjesztés

feor58 képe

Sziasztok!

Kérdésem általánosan fogalmazva a következő:
Adott egy contrib modul, azon belül egy form, melynek a submit-ja elmenti az adott form tartalmát egy adott táblába. Ez ok. A táblába írást követően automatikusan szeretnék egy másik (core) táblába írni egyetlen rekordot. Hogyan tudom ezt megvalósítani?

Előre is köszönöm a segítséget

feor58

szantog képe

Saját modul hook_form_alterében saját submit függvény hozzáad, saját submit függvényben pedig: http://api.drupal.org/api/function/drupal_write_record/6

0
0

----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.

feor58 képe

Köszönöm gyors válaszod. A javasolt megoldás azt fogja eredményezni, hogy miután az eredeti formon lement az eredeti submit, utána lefut az én submittom is?

0
0
Boobaa képe

Igen.

0
0
feor58 képe

Köszi.

0
0
feor58 képe

Kipróbáltam a javaslatodat, de a saját submit handler hozzáadását nem jól csinálhattam, mert nem működik. Pontosan mit is kellene ehhez tennem?

0
0
feor58 képe

Bocsi, elfelejtettem leírni mit is csináltam: (6.x)

function domainplus_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == 'domain_form') {
$form['#submit'] = 'domainplus_submit_handler';
}

}

0
0
feor58 képe

Megint nem voltam igazán precíz! Szóval a saját modulomban pontosan a következőket csináltam:

function domainplus_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == 'domain_form') {
$form['#submit'] = 'domainplus_submit_handler';
}

}

function domainplus_submit_handler($form, &$form_state) {
...
}

0
0
aboros képe

a #submit egy tomb(!) ami a vegrehajtando sumbit fuggvenyek neveit tartalmazza.
http://api.drupal.org/api/drupal/developer--topics--forms_api_reference....

masik amit erdemes megfontolni, hogy nem a hook_form_alter -t hasznalod, az ugyanis minden formnal lefut (igen, csak odaaig, hogy if form id, de akkor is lefut:) hanem a hook_form_FORM_ID_alter -t, ami csak adott idju urlapnal fut majd.

tehat valahogy igy:

function mymodule_form_myformid_alter(&$form, &$form_state) {
  $form['#submit'][] = 'my_custom_submit';
}
 
function my_custom_submit() {
  # iten cinalod a dolgod
}
0
0

-
clear: both;

feor58 képe

Köszönöm, sokat segítettél!

0
0