Inhalte aus Formularen in andere Formulare integrieren
am 17.03.2009 - 15:52 Uhr in
Hallo liebe Forumler, ich hoffe ich kann mich an diesem schönen fast Frühlingstag verständlich ausdrücken, denn wenn ich wüsste wonach ich suchen muss, würde ich es vllt sogar alleine finden : )
Zu meinem Problem:
Ich habe das Formular auf der Profileinstellungsseite eines Users angepasst:
function phptemplate_user_edit($form) {
$output .= '<style type="text/css">
.title {display:none;}
div.edit_user_div fieldset {border:0px;padding:0px;margin:0px;}
div.edit_user_div fieldset legend {display:none;}
div.edit_user_div input {font-size:16px !important;padding:3px !important;width:400px;}
div.edit_user_div input.form-submit {color:#fff;background-color:#379dc0;padding:5px;border:3px solid #318dad;margin-right:20px;width:150px;}
</style>';
$output .= '<div class="edit_user_div"><div style="width:440px;margin-right:30px;float:left;">';
$output .= drupal_render($form['account']);
$output .= drupal_render($form['gift_certificates']);
$output .= drupal_render($form['flickr']);
$output .= '</div>';
$output .= '<div style="width:400px;float:left;">';
$output .= drupal_render($form['picture']);
$output .= '';
$output .= drupal_render($form['submit']);
$output .= '<div style="display:none;">';
$output .= drupal_render($form['legal']);
$output .= drupal_render($form['comment_settings']);
$output .= drupal_render($form['mimemail']);
$output .= '</div>';
$output .= '</div><br style="clear:both;" /></div>';
$output .= drupal_render($form);
return $output;
} Das hat durch "print_r($form)" super geklappt. Ich habe alles integriert, was ausgegeben wird. Jetzt habe ich eine weitere Formularseite, die ich über einen Tab erreichen kann, auf der ich den Newsletter abbestelle oder bestelle. Auf dieser Seite kann ich die Checkbox über "$output .= drupal_render($form[''subscriptions]);" rendern lassen.
Wenn ich jetzt aber eben diese Checkbox zum bestellen/abbestellen des Newsletters auf der richtigen Usereinstellungsseite haben möchte, auf der ich auch das Bild ausstausche und so, und eben dieses "$output .= drupal_render($form[''subscriptions]);" dort mit angebe, gibt er mir selbstverständlich nichts aus.
Wie bekomme ich aber nun hin, dass auch diese Sache auf der von mir gewollten Seite ausgegeben wird. Gibt es da irgendwie eine Möglichkeit?
Es wäre ja interessant zu wissen, ob es dafür eine generelle Lösung gibt, von einem bestimmten Formular an irgendeiner Stelle etwas auf einem anderen Formular auszugeben.
Vielen lieben Dank
Sarah
- Anmelden oder Registrieren um Kommentare zu schreiben

Vorgehen
am 18.03.2009 - 12:10 Uhr
Beim Modul subscriptions kann ich Dir konkret momentan nicht helfen, da ich es nirgdwo installiert habe; aber generell gehe ich so vor, dass ich mir die URL des benötigten Formulars ansehe und dann im betreffenden Modul zu dieser URL den Namen der passenden Callback-Funktion (innerhalb der hook_menu()-Funktion definiert) suche. Diese Callback-Funktion lässt sich dann eben auch an anderer Stelle aufrufen und gibt das Formular dann eben an dieser anderen Stelle aus.
Schreibe ein Modul, das hook_user implementiert
am 18.03.2009 - 12:42 Uhr
Jetzt habe ich eine weitere Formularseite, die ich über einen Tab erreichen kann, auf der ich den Newsletter abbestelle oder bestelle. Auf dieser Seite kann ich die Checkbox über "$output .= drupal_render($form[''subscriptions]);" rendern lassen.
Schreibe ein Modul, das
hook_userimplementiert indem für$op = 'form'eine zusätzliche Checkbox angezeigt wird und für$op = 'update'der entsprechende Eintrag in der Datenbank vorgenommen wird.Das Problem mit "$output .= drupal_render($form[''subscriptions]);" ist die Verarbeitung von eingebenen Daten. Normalerweise passiert die in der Funktion
drupal_get_form, und wird auf Anweisung des Moduls vom Drupal-Kern aufgerufen.drupal_get_formliefert aber auch das komplette Formular als HTML, nicht nur einzelnen Teile. Und eindrupal_retrieve_form(was das bekannte Forms API Array liefern würde) bring dich nicht weiter, da dann die Verarbeitung von eingegebenen Daten fehlen würde.--

puh. könntet ihr mir das
am 05.05.2009 - 15:37 Uhr
puh.
könntet ihr mir das nochmal erklären unter dem gesichtspunkt, dass ich ein php laie bin?
vielen dank : )
sarah