Wie zu überschreiben, form action in Drupal?
Ich begann ursprünglich dieser Frage in einem anderen thread, aber dieser thread war sorta, kinda beantwortet, und jetzt habe ich in Erster Linie wissen wollen, wie Sie angeben, eine andere form action... ich habe versucht mit dem code unten, aber die form action, wenn der Ausgang bleibt unverändert, obwohl der Blick auf die print_r($form)
es richtig geändert... Warum nicht aufnehmen?
function mytheme_user_profile_form($form) {
global $user;
$uid = $user->uid;
//print '<pre>'; print_r($form); print '</pre>';
$category = $form['_category']['#value'];
switch($category) {
case 'account':
$form['#action'] = '/user/'.$uid.'/edit?destination=user/'.$uid;
break;
case 'education':
$form['#action'] = '/user/'.$uid.'/edit/education?destination=user/'.$uid;
break;
case 'experience':
$form['#action'] = '/user/'.$uid.'/edit/experience?destination=user/'.$uid;
break;
case 'publications':
$form['#action'] = '/user/'.$uid.'/edit/publications?destination=user/'.$uid;
break;
case 'conflicts':
$form['#action'] = '/user/'.$uid.'/edit/conflicts?destination=user/'.$uid;
break;
}
//print '<pre>'; print_r($form); print '</pre>';
//print $form['#action'];
$output .= drupal_render($form);
return $output;
sorta / irgendwie? 😉 def. lassen Sie mich wissen, wenn Sie weitere Hilfe benötigen.
Wenn Sie möchten, Bearbeiten Sie die Aktion url, ich fand diesen Artikel, der mir geholfen hat: actionscript-flash-guru.com/blog/...
Wenn Sie möchten, Bearbeiten Sie die Aktion url, ich fand diesen Artikel, der mir geholfen hat: actionscript-flash-guru.com/blog/...
InformationsquelleAutor n00b0101 | 2009-10-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
hook_form_alter()
ist wahrscheinlich der Weg zu gehen.Hier sind einige hoffentlich hilfreiche links:
Form Theming: Wie kann ich festlegen $form['action']?
Ändern von Formularen in Drupal 5 und 6
hook_form_alter
EDIT: Antwort zu Kommentar #1 unten:
, Wie die Umsetzung hook_form_alter():
Müssen Sie ein Modul erstellen (Sie können nicht verwenden
template.php
). Es ist einfacher als es aussieht.Für ein Modul mit dem Namen "formstuff", erstellen Sie
formstuff.info
undformstuff.module
und setzen Sie Sie insites/all/modules
odersites/yoursitename/modules
. Einrichten der .info und .Modul-Dateien pro die Anweisungen, dann erstellen Sie einfach die folgende Funktion in Ihr .Modul-Datei:Diese Funktion ist ein Haken, weil es benannt ist, richtig (D. H. ersetzen Sie das Wort 'Haken' mit dem Namen Ihres Moduls), und es entspricht
hook_form_alter
's-Funktion Signatur (d.h. es nimmt die gleichen Parameter).Dann aktivieren Sie einfach Ihr Modul in Ihre Website ist admin und der Haken sollte es tun, ist Magie.
Beachten Sie, dass
hook_form_alter
nimmt einen Verweis auf das Formular, das Ihnen erlaubt, um es zu ändern.InformationsquelleAutor mikewaters
Müssen Sie legen Sie die
form_alter
Funktion in ein Modul, und verwenden Sie dann entwederif
oderswitch
überprüfen Sie die Formular-ID. Wenn Sie die Formular-ID ist, die Sie ändern wollen, dann geben Sie die form einer action-EigenschaftDer name der Funktion "my_module_form_alter". Um zu vermeiden, die switch-Anweisung, die Sie verwenden können, "my_module_form_user_profile_form_alter", vorausgesetzt, Sie haben die form id rechts.
InformationsquelleAutor user190907