[gelöst] Problem mit eigener Form-tpl.php-Datei!
am 07.04.2010 - 00:50 Uhr in
Hallo,
um ein eigenes Theme für mein Inhaltstypen-Formular erstellen zu können, habe ich das Beispiel von http://www.drupalcenter.de/handbuch/20522 nachgemacht!
Bis auf die "preprocess Funktion" habe ich alles übernommen und es funktioniert - die neu angelegte tpl-Datei wird nun als Theme verwendet!
Ich habe jetzt allerdings das Problem, dass der "Speichern" und der "Vorschau"-Button nicht mehr (wie vorher im Standard-tpl) ganz unten angezeigt wird sondern auf einmal ganz oben - halb verdeckt vom "fieldset"!
In der tpl-Datei werden alle Ausgaben nur mit
<?php print drupal_render($form); ?>
zusammen gefasst - sprich - ich komme nicht an den "Speichern"-Button ran um ihn z.B. per CSS und clear-left nach unten zu schieben! An die anderen "Eingabefelder" komme ich auch nicht heran!
Gibt es eine Möglichkeit die ganzen "Variablen/Werte" heraus zubekommen die sich hinter "drupal_render($form);" verbergen um sie einzelnd per CSS themen/anpassen zu können?
Für mich als PHP-Noob sind das leider alles böhmische Wälder!
Besten Dank schonmal
Gruß Matthias
- Anmelden oder Registrieren um Kommentare zu schreiben
Also irgendwie mache ich hier
am 07.04.2010 - 01:31 Uhr
Also irgendwie mache ich hier Blödsinn bzw. verstehe es nicht!
Wie unter http://www.drupalcenter.de/handbuch/20522 beschrieben, habe ich die template.php angepasst!
Statt
/**
* Implements HOOK_theme().
*/
function zen_theme(&$existing, $type, $theme, $path) {
include_once './' . _zen_path() . '/template.theme-registry.inc';
return _zen_theme($existing, $type, $theme, $path);
}
verwende ich (wie im Handbuch beschrieben)
/**
* Implements HOOK_theme().
*/
function zen_theme($existing, $type, $theme, $path) {
return array(
'mein_name_node_form' => array(
'arguments' => array('form' => NULL),
'template' => 'mein_name_node_form',
),
);
}
Dann habe ich die tpl-php angelegt und den Code eingefügt .... als Test habe ich einige Wörter reingeschrieben und diese werden mir nun im Formular (oben) ausgegeben - darunter sind meine ganzen Formularfelder zu sehen!
Ich habe jetzt testweise sämtlichen Code aus der "mein_name_node_form.tpl.php" raus gelöscht aber trotzdem werden mir die ganzen Formluarfelder ausgegeben (Cache ist gelöscht)!
Von wo zieht sich Drupal denn diese Daten? Ich denke Drupal verwendet nun mein neu angelegtes Form-Theme?
Ich hab echt kein Plan im Moment!
Kann da jemand helfen?
Gruß Matthias
Ich bin wirklich am
am 07.04.2010 - 15:09 Uhr
Ich bin wirklich am verzweifeln!
Ich möchte im node-template das Feld "Augenfarbe" ausgeben!
das nennt sich bei mir "field_dienstleister_augenfarbe"
Ich gebe folgenden PHP-Code in "mein_name_node_form.tpl.php" ein!
<?php print drupal_render($form['field_dienstleister_augenfarbe']); ?>
Es erfolgt aber keine Ausgabe!
Alle Formular-Elemente werden mit
<?php print drupal_render($form); ?>
ausgegeben aber sobald ich versuche nur einen einzelnen Formular-Element anzeigen zulassen, erscheint nichts!Was mache ich falsch?
Gruß Matthias
Der Array gibt folgendes
am 07.04.2010 - 15:24 Uhr
Der Array gibt folgendes aus!
[field_dienstleister_augenfarbe] => Array
(
[field_name] => field_dienstleister_augenfarbe
[type_name] => dienstleister
[display_settings] => Array
(
[weight] => 4
[parent] => group_dienstleister_daten
[label] => Array
(
[format] => inline
)
[teaser] => Array
(
[format] => default
[exclude] => 0
)
[full] => Array
(
[format] => default
[exclude] => 0
)
[4] => Array
(
[format] => default
[exclude] => 0
)
)
[widget_active] => 1
[type] => text
[required] => 1
[multiple] => 0
[db_storage] => 1
[module] => text
[active] => 1
[locked] => 0
[columns] => Array
(
[value] => Array
(
[type] => text
[size] => big
[not null] =>
[sortable] => 1
[views] => 1
)
)
[text_processing] => 0
[max_length] =>
[allowed_values] =>
[allowed_values_php] =>
[widget] => Array
(
[rows] => 5
[size] => 60
[default_value] => Array
(
[0] => Array
(
[value] =>
[_error_element] => default_value_widget][field_dienstleister_augenfarbe][0][value
)
)
[default_value_php] =>
[label] => Augenfarbe
[weight] => 4
[description] =>
[type] => text_textfield
[module] => text
)
)
Da müsste doch der Aufruf mit
<?php print drupal_render($form['field_dienstleister_augenfarbe']); ?>
richtig sein oder irre ich mich?Gruß Matthias
OMG - man musste auch noch
am 07.04.2010 - 15:34 Uhr
OMG - man musste auch noch die "group" mit angeben!
Richtig ist also
<?php print drupal_render($form['group_dienstleister_daten']['field_dienstleister_augenfarbe']); ?>
Jetzt erfolgt die korrekte Ausgabe und jedes Feld kann mit CSS formartiert werden!
Aufwand um die Einzelausgabe der Form-Felder heraus zu bekommen = 7 Stunden!
Ich muss erstmal Pause machen weil ich mit den Nerven echt am Ende bin! Das macht im Moment alles kein Spaß mehr!