To nie jest zbyt ukierunkowane pytanie, ale nie mogę znaleźć żadnych dobrych informacji na ten temat.
Kiedy uważa się za prawidłową praktykę umieszczanie kodu w pliku template.php, a kiedy zaimplementować go w module?
Mam na myśli w moim obecnym przykładzie, że muszę wywołać hook_preprocess_node i wewnątrz wykonać drupal_get_form i renderować ten formularz. Umieściłem moją logikę w pliku template.php.
Czy to jest poprawne? Jeśli nie, czy możesz podać mi krótką listę DOS i DONTS dotyczących problemu?
Odpowiedzi:
Przy podejmowaniu tej decyzji staram się pamiętać o dwóch rzeczach.
Czy jest to funkcja funkcjonalna czy czysto wizualna? Komponenty funkcjonalne wchodzą w moduły. Te czysto wizualne są tematem.
Co się stanie, jeśli zmienię lub radykalnie zmienię motyw w dalszej części drogi i / lub zezwolę na wiele motywów dla mojej witryny? Jeśli nie chcesz replikować funkcji, powinna ona przejść do modułu.
Drupal ułatwia przeplatanie treści, logiki biznesowej i prezentacji. Aby zapewnić długoterminową łatwość konserwacji witryny, naprawdę musisz zachować ostrożność podczas implementacji.
Dobrą zasadą jest, że motyw nie powinien wiedzieć o identyfikatorach (
$nid
,$uid
,$tid
, etc) do niczego, a powinno jedynie znać nazwy komputerów, aby zmienić wygląd wizualny.W twoim przypadku dodanie formularza do węzła jest zmianą funkcjonalną i naprawdę umieściłbym to w module.
źródło