custom.module vs template.php

9

Dies ist eine nicht so gezielte Frage, aber ich kann keine guten Informationen dazu finden.

Wann wird es als richtig angesehen, Code in Ihre template.php-Datei einzufügen und wann in einen Modul zu implementieren?

Ich meine, in meinem aktuellen Beispiel muss ich hook_preprocess_node aufrufen und drinnen ein drupal_get_form ausführen und dieses Formular rendern. Ich habe meine Logik in template.php eingefügt.

Ist das korrekt? Wenn nicht, können Sie mir eine kurze Liste von DOS und DONTS zu diesem Problem geben?

Magtak
quelle
1
Wenn es zu komplex ist, füge ich es in ein Modul ein. Wenn es nur wenige Codezeilen sind, füge ich es in template.php ein. Dann hängt es auch von der Verwendung ab, ob es sich um ein Thema (template.php) oder um verschiedene Themen (Modul) handelt. Es liegt an dir.
Tyler Durden

Antworten:

9

Es gibt zwei Dinge, die ich bei dieser Entscheidung zu beachten versuche.

Ist dies ein funktionales oder ein rein visuelles Merkmal? Funktionskomponenten gehen in Module. Rein visuelle gehen in das Thema.

Was passiert, wenn ich das Thema später ändere oder radikal ändere und / oder mehrere Themen für meine Website zulasse? Wenn Sie die Funktion nicht replizieren möchten, sollte sie in ein Modul integriert werden.

Drupal macht es einfach, Inhalte, Geschäftslogik und Präsentation miteinander zu verknüpfen. Für die langfristige Wartbarkeit einer Site müssen Sie bei der Implementierung wirklich vorsichtig sein.

Eine gute Faustregel ist , dass ein Thema nicht über IDs wissen muß , soll ( $nid, $uid, $tid, usw.) für etwas, und soll nur Computernamen müssen wissen , visuelle Erscheinungsbild zu verändern.

In Ihrem Fall ist das Hinzufügen eines Formulars zu einem Knoten eine funktionale Änderung, und ich würde das wirklich in ein Modul einfügen.

mpdonadio
quelle