PHP Code(s) aus Nodes auslagern möglich?
![](http://www.drupalcenter.de/files/noavatar_mini.gif)
am 06.04.2011 - 18:18 Uhr in
Hey Leute,
ich habe jetzt 2 Stunden auf de und en nach einer Antwort gesucht und keine gefunden. Daher bitte ich euch um Hilfe und Nachsicht, falls es doch irgendwo schon eine Lösung zu meiner Frage gibt:
Ich finde es sehr nervig und unsauber, PHP-Code direkt in Nodes zu schreiben. Es geht hier auch nicht um Code im übertriebenen Maße, aber ab und zu braucht man ja doch mal den ein oder anderen Schnippsel.
Dann wäre es schön, den Code direkt in der IDE zu verwalten.
Frage: Ist es möglich (via Modul oder ähnliches) den PHP-Code in einzelne PHP-Dateien des Dateisystems auszulagern und irgendwie zu laden?
Möglichkeiten / Ideen die ich sehe aber nicht immer passend finde:
- Die node_[xyz].tpl nutzen (finde ich aber eigentlich nach MVC sehr sauig, gerade wenn ich vllt mal auf die Daten zugreifen muss und es nicht nur um Darstellung geht)
- Eigenes Modul schreiben (finde ich je nach Anwendungsfall eig. etwas übertrieben?)
- Hooks nutzen (bei sehr vielen einzelnen Hooks wird dadurch aber die template.php sehr voll und unübersichtlich!)
Als konkreten Anwendungsfall nehmen wir mal einen Passwortgenerator, der (z.B. aufgrund von Konfigurationsdaten aus der DB) ein Passwort generieren und ausgeben soll. Das soll nur unter einer Node-URL als Inhalt eines Beitrags passieren.
Gibt es für sowas schon eine eingebaute Lösung oder Module, die das einfach und sicher ermöglichen?
Sonst sehe ich wirklich als einigermaßen akzeptable Lösung nur ein "Mini Module".
Vielen Dank für eure Tipps :)
p.S. via "require" ein PHP-Script aus einer Datei einzubinden ist evtl. auch eine Möglichkeit, die zur Diskussion stände, aber aus meiner Sicht auch etwas "riecht".
- Anmelden oder Registrieren um Kommentare zu schreiben
Interessant übrigens zu dem
am 06.04.2011 - 19:31 Uhr
Interessant übrigens zu dem Thema:
http://drupal.org/node/1052556
http://www.drupalcenter.de/inhalt_und_code_in_dateien_auslagern
Hat evtl. jemand Erfahrung, ob das hier die Lösung zu meiner Frage sein könnte: http://drupal.org/project/custompage
Prinzipiell sollte man
am 06.04.2011 - 20:08 Uhr
Prinzipiell sollte man PHPCode im Node-Body soweit es geht vermeiden und wirklich nur im äußersten "Notfall" verwenden. Da wäre ein Mini-Modul die bessere Lösung. Man muss ja nicht für jeden Anwendungsfall ein neues Modul schreiben, sondern könnte sich ein kleines Helper-Modul anlegen, welches man immer für solche Fälle verwendet und darin die einzelnen Codes sammeln.
Interessant wären für dich
am 07.04.2011 - 21:16 Uhr
Interessant wären für dich dann vlt. auch noch die _preprocess Funktionen, mit denen du die Ausgabe der Variablen in deinen Templates steuern kannst. Die _preprocess Funktionen werden in der template.php deines Scripts angelegt und sorgen hier noch einmal für eine Seperation von PHP / HTML - hier kann man dann einiges an benötigter Logik einfach auslagern..
Mehr dazu findest du hier im Drupalcenter (Suche benutzen) oder direkt auf Drupal.org:
http://drupal.org/node/223430
SteffenR