[gelöst] Variable an form übergeben
am 25.12.2011 - 01:35 Uhr in
Hallo,
ich möchte die invite funktion von Drupal etwas anpassen. Eigendlich übergebe ich nur eine Variable und diese soll dann automatisch in die mail form eingetragen werden. Normalerweise geschieht dies über value in html. Mit der "Array Struktur" der Drupal invite form bin ich nicht so vertraut.
<?php
$form['mails'] = array(
'#type' => 'textarea',
'#title' => t('Email addresses or usernames'),
'#description' => t('Enter up to %max email addresses or usernames. Separate multiple addresses by commas or new lines. Each person will receive an invitation message from you.', array('%max' => $max))
);
?>Wie kann ich dort eine Variable in die Form automatisch einfügen? Von der Logik her müsste es in etwa so aussehen -->
<?php
$form['mails'] = array(
'#type' => 'textarea',
'#value' => '$_request(username)',
'#title' => t('Email addresses or usernames'),
'#description' => t('Enter up to %max email addresses or usernames. Separate multiple addresses by commas or new lines. Each person will receive an invitation message from you.', array('%max' => $max))
);
?>Das dies so nicht funktioniert ist mir auch schon klar. Einfache Anführungszeichen = kein ausgeführter Programmcode. Hat jemand evt. die Logik der Drupal Forms verstanden und kann mir da weiterhelfen?
?>
- Anmelden oder Registrieren um Kommentare zu schreiben

Vom Prinzip her ist das schon
am 25.12.2011 - 13:32 Uhr
Vom Prinzip her ist das schon so richtig. Du solltest ein eigenes Minimodul schreiben, indem Du über die Funktion [api:hook_form_alter] das Form-Array änderst. Installiere Dir das Devel-Modul und gib in Deinem Modul die Struktur des Form-Arrays mittels
print dsm($form);Beste Grüße
Werner
Ich habe ersteinmal die Core
am 26.12.2011 - 14:47 Uhr
Ich habe ersteinmal die Core Datei verändert und dies dokumentiert. Ein Modul zu schreiben traue ich mir (mit meiner stark begrenzten Zeit) noch nicht zu. Es klappt auf jeden Fall so. Viele Dank für den Hinweis. Was soll ich sagen. Ich bin begeistert.
<?php
$form['mails'] = array(
'#type' => 'textarea',
'#title' => t('Email addresses or usernames'),
'#default_value' => $_REQUEST['username'],
'#description' => t('Enter up to %max email addresses or usernames. Separate multiple addresses by commas or new lines. Each person will receive an invitation message from you.', array('%max' => $max))
);
?>
So funktioniert es Ich lag wirklich nur sehr knapp daneben.