A feladatom az lenne, hogy egy kibővített regisztrációs űrlapot (a bővítést a profile modullal végeztem), el kellene küldeni egyrészt a regisztrált kliensnek, másrészt egy belső emailre.
Azonban az emailben benne kéne hogy legyen minden új profil_* változó is.
Azonban a fent említett fügvény ezket sehogy sem kezeli le. Az egyik megoldás persze az lenne ha átírnám ezt a függvényt a core-ban, de azt nem szívesen tenném, mivel ez egy multi-site instaláció.
Meg tudom ezt írni modulként vagy hackeljek?
5.0 stabil drupalt használok.
Fórum:
form_alter()
A hook_form_alter()-t használva felvehetsz egy új #submit kezelőfüggvényt, ami ugyanúgy megkapja az űrlap adatait, és azt csinál vele, amit akar. A form_alter-ről van egy tipp itt a kézikönyvben.
hook_form_alter()
Úgy mint itt?
Ha már itt tartunk lehet én vagyok a béna de hol lehet tisztába jönni pl a $user, $form, $config változók jelenlegi és lehetséges felépítéséről?
function ldapauth_form_alter($form_id, &$form) {
if (isset($form['#validate']['user_login_validate'])) {
$form['#validate'] = array('ldapauth_login_validate' => array());
}
else if (isset($form['#submit']['user_pass_submit'])) {
$form['#submit'] = array('ldapauth_pass_submit' => array());
}
}
nem átírni
Nem átírni kellene azokat a tömböket, hanem hozzáadni egy új elemet. Ha átírod, akkor a rendes user submit kezelés nem fog lefutni.
A kért változókat bármikor var_dump()-olhatod, ezek felépítése az aktuálisan használt moduloktól, a bekapcsolt profil mezőktől stb jelentősen függ.
fügvény darabkák
Én most konkrétan ezt csinálom
Nekem nincs bajom az eredeti függvénnyel csak hiányos, ugyanis nem tudom használni a profile_változóat ezért az eredeti fügvényt lemásolom, kicsit módosítom és ezzel felül vezérlem az eredetit.
Szerintem pont ezt tanácsoltad te is.
nem
Én azt tanácsoltam, hogy végy fel még egy bejegyzést a #submit (és/vagy #validate) tömbbe, nem pedig azt, hogy helyettesítsd az alapértelmezett működést. Persze ha neked gond az, hogy mindkettő lefut, mert feltétlenül helyettesíteni és nem kiegészíteni akarod, akkor kénytelen vagy helyettesíteni, valóban.
Köszönöm
Köszönöm a tippet, sikerült megoldanom.
Ám bátor az utóbbi hozzászólásod kicsit elgondolkodtatott és csak most esett le hogy miért tömb a #validate :-) Tehát nekem elég lett volna csak a plusz fügvényeket esetleg változtatásokat eszközőlnöm a változókon, én nem kell az egész validate folyamatot lemásolnom és módosítanom.
Ügye jól értelmezem?
így van
Pontosan így van, akárhány validate és submit függvény lehet egy űrlapra kötve. Ez például a (biztonsági) frissítésnél nagyon jó, mert nem kell újra megnézned, hogy az újabb Drupal verzióban változott-e az adott függvény, hiszen az úgyis meghívódik.