[Gelöst] Themen eines Node-Formulars ohne Erfolg
Eingetragen von Svenswiss (218)
am 03.08.2012 - 14:24 Uhr in
am 03.08.2012 - 14:24 Uhr in
Hallo zusammen. Ich versuche mich seit Gestern mit http://www.drupalcenter.de/handbuch/20522 auseinanderzusetzen, ohne Erfolg.
Ist die Anleitung überhaupt für Drupal7? oder ist es ausschliesslich für Drupal6.
Die Anleitung ist sicher gut beschrieben nehme ich mal an, andere User behaupten da was anderes hier in Forum.
Wie ich sehe bin ich nicht der einzige der hier nicht weiterkommt... Mein Vorgehen.
template.php
function ioffer_theme($existing, $type, $theme, $path) {
return array(
'anzeige_aufgeben_node_form' => array(
'arguments' => array('form' => NULL),
'template' => 'anzeige_aufgeben-node-form',
),
);
}
function ioffer_preprocess_anzeige_aufgeben_node_form(&$vars) {
// drupal_set_message('<pre>'. print_r($vars['form'], 1) .'</pre>'); // Die Struktur des Formulars ansehen.
// Aus dem Submit-Button einen Image-Button machen.
$vars['form']['buttons']['submit']['#type'] = 'image_button';
$vars['form']['buttons']['submit']['#src'] = drupal_get_path('theme', 'garland') .'/images/submit.png';
// Länge des Titelfeldes ändern.
$vars['form']['title']['#size'] = 30;
// Beschreibung des Titelfeldes ändern.
$vars['form']['title']['#description'] = 'Der Titel des Artikels.';
// Das Titelfeld als einfache Variable ($field_title) im Template verfügbar machen.
$vars['field_title'] = drupal_render($vars['form']['title']);
// CCK Feld namens 'field_test' (eine einfache Checkbox).
// Titel verändern.
$vars['form']['field_test']['value']['#title'] = t('Happy?');
// Beschreibung verändern.
$vars['form']['field_test']['value']['#description'] = t('Click to select');
// Das Feld als einfache Variable ($field_check) im Template verfügbar machen.
$vars['field_check'] = drupal_render($vars['form']['field_test']);
// Body
// Anzahl der Zeilen im Body-Feld ändern.
$vars['form']['body_field']['body']['#rows'] = 10;
// Body-Feld als einfache Variable ($field_body) im Template verfügbar machen.
$vars['field_body'] = drupal_render($vars['form']['body_field']);
// Fieldsets als einfache Variablen im Template verfügbar machen.
$vars['field_menu'] = drupal_render($vars['form']['menu']);
$vars['field_revision'] = drupal_render($vars['form']['revision_information']);
$vars['field_author'] = drupal_render($vars['form']['author']);
$vars['field_options'] = drupal_render($vars['form']['options']);
$vars['field_comment_settings'] = drupal_render($vars['form']['comment_settings']);
// Schaltflächen.
$vars['buttons'] = drupal_render($vars['form']['buttons']);
}
anzeige_aufgeben-node-form.tpl
<?php
// Die Namen aller verfügbaren Variablen ausgeben.
// drupal_set_message('<pre>'. var_export(array_keys(get_defined_vars()), 1) .'</pre>');
?>
<?php // Felder ausgeben. ?>
<?php // Ohne die preprocess müsste man "print drupal_render($form['title']);" schreiben. ?>
<?php print $field_title; ?>
<?php print $field_body; ?>
<div class="my-check">
<?php print $field_check; ?>
</div>
<div class="extra-fields">
<?php print $field_author; ?>
<?php print $field_revision; ?>
<?php print $field_menu; ?>
<?php print $field_comment_settings; ?>
</div>
<div class="form-buttons">
<?php print $buttons; ?>
</div>
<?php // Alle anderen Felder und Ausgaben nicht anzeigen (setzt natürlich ein "display: none;" für die CSS-Klasse voraus). ?>
<div class="hidden">
<?php print drupal_render($form); ?>
</div>
Zeigt aber gar nichts an. Probiert habe ich auch folgendes in anzeige_aufgeben-node-form.tpl...
<?php print render($field['field_vorname']); ?>
<?php print render($fields['field_vorname']); ?>
<?php print render($field['field_vorname']); ?>
<?php print render($form['field_vorname']); ?>
Was mache ich falsch? Wie sollte ich richtig vorgehen :-)
LG
- Anmelden oder Registrieren um Kommentare zu schreiben
Node form
am 03.08.2012 - 15:37 Uhr
Ist die Anleitung überhaupt für Drupal7? oder ist es ausschliesslich für Drupal6.
Die Anleitung ist für Drupal 6 geschrieben (darum auch der Tag ;) ).
Installiere Dir mal das Modul [do:ds Display suite] und dort dann auch das Untermodul "DS Forms". Damit kannst Du dann eines der vorgefertigten Layouts für das Node-Formular wählen oder auch eigene Layouts basteln und die Felder dann dementsprechend anordnen.
Danke für die schnelle
am 03.08.2012 - 18:54 Uhr
Danke für die schnelle Antwort. Wie löse ich es ohne Display Suite?
Suche
am 04.08.2012 - 09:09 Uhr
Sorry, aber ich versteh es nicht ...
Ich hab jetzt einfach mal "Drupal 7 theme node form" bei google eingegeben und gleich der erste Treffer beschreibt exakt, wie man das bewerkstelligt. Es muss doch möglich sein, schnell mal zu suchen.
Ja da hast du rech :-) Nichts
am 04.08.2012 - 13:10 Uhr
Ja da hast du rech :-) Nichts für ungut, ich bedanke mich trotzdem... LG
Danke
am 18.08.2012 - 17:12 Uhr
Ich bedanke mich herzlich. Dein Link hat mich weiter gebracht und weitergeholfen...
LG
Sven