[gelöst] Node Form/ Add -Theming
Eingetragen von Piet (500)
am 19.11.2010 - 10:52 Uhr in
am 19.11.2010 - 10:52 Uhr in
Hallo zusammen,
habe folgendes Node erstellt: http://www.autogas-umbau-kosten.de/node/add/angebotanlageesgi
Habe die Felder mit einer Template (angebotanlageesgi-node-form.tpl.php) ausgegeben.
Leider speichert der die Seite nicht, wenn man auf speichern drückt - woran liegt das, weiss das jemand?
Hier der Inhalt der angebotanlageesgi-node-form.tpl.php Datei:
<?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>
<?php // Alle anderen Felder und Ausgaben nicht anzeigen (setzt natürlich ein "display: none;" für die CSS-Klasse voraus). ?>
<div class="page_left">
<?php
print drupal_render($form['options']);
?>
<?php
print drupal_render($form['group_groessenordnung']);
?>
<?php
print drupal_render($form['group_besondere_merkmale_des_f']);
?>
<?php
print drupal_render($form['group_linke_region']);
?>
<?php
print drupal_render($form['group_rechte_region']);
?>
<?php
print drupal_render($form['field_ergebnis']);
?>
<?php
print drupal_render($form['buttons']);
?>
</div>
<div class="page_right">
</div>
wenn ich das gesamte Formular hiermit ausgeben lasse gehts:
<?php
print drupal_render($form);
?>
- Anmelden oder Registrieren um Kommentare zu schreiben
Trag mal vor dem
am 19.11.2010 - 12:22 Uhr
Trag mal vor dem $field_title; folgendes ein
<?php
print $form_ids;
?>
Wenn man die $standard-Variable aufsplittet um den Title etc. einzelnd auszugeben, muss die $form_ids immmer mit angegeben werden.
Dann nochmal das Speichern probieren!
Nachtrag: Ich wunder mich,
am 19.11.2010 - 12:30 Uhr
Nachtrag:
Ich wunder mich, dass Drupal diese Add-Form-Vorlage überhaupt einliest und verwendet.
angebotanlageesgi-node-form.tpl.php
Normalerweise muss das Add-Form-Template-File nach folgendem Muster benannt werden.
node-form-TYPE.tpl.php
Bei Dir wäre das dann ... node-form-angebotanlageesgi.tpl.php
wenn ich die von dir
am 19.11.2010 - 12:53 Uhr
wenn ich die von dir vorgeschlagene Schreibweise
node-form-TYPE.tpl.php
verwende,
greift das Template nicht.
Habe vor der
<?php print $field_title; ?>
<?php print $form_ids; ?>
eingefügt, leider klappt das immer noch nicht.
Wenn ich die "title" Zeile lösche ist das Titel auch komischerweise weiterhin zu sehen.
Bearbeiten kann ich das Template nur mit diesem Format: angebotanlageesgi-node-form.tpl.php
hiermit greifen Veränderungen aber leider das Speichern nicht.
Füge am Ende deines Formulars
am 19.11.2010 - 14:02 Uhr
Füge am Ende deines Formulars zusätzlich
<?php
print drupal_render($form);
?>
Dann sollte es klappen.
@Piet Entferne doch mal -
am 19.11.2010 - 16:13 Uhr
@Piet
Entferne doch mal - testweise - alle CCK-Felder aus dem Form-Type und nimm nur die Standardvariablen auf um die Speicher-Funktion zu testen.
Hier ein funktionierendes Beispiel von mir.
<?php print $form_ids; ?>
<?php print $title; ?>
<?php print $menu; ?>
<?php print $taxonomy; ?>
<?php print $revision_information; ?>
<?php print $path; ?>
<?php print $comment_settings; ?>
<?php print $image_uploads; ?>
<?php print $admin; ?>
<?php print $buttons; ?>
Kopiere das bitte komplett in die Form-Vorlage und speicher einmal testweise.
Nachtrag: Ich nutze übrigens folgendes Modul für die Forms http://drupal.org/project/node_form_template - dort ist auch eine Beispieldatei enthalten (node-form.tpl.php) - innerhalb der Datei findest Du auch die Erklärungen zur Schreibweise und zur Variablenangabe.
Danke an euch! <?phpprint
am 19.11.2010 - 16:22 Uhr
Danke an euch!
<?php
print drupal_render($form);
?>
in ein DIV eingesetzt, per css versteckt und
die Felder die ich benötige mit
<?php
print drupal_render($form['title']);
?>
.........nun klappts auch mit dem Nachb.... ehmm Speichern!