custom.module vs template.php

9

Esta es una pregunta no tan específica pero no puedo encontrar ninguna buena información al respecto.

¿Cuándo se considera una práctica correcta poner código dentro de su archivo template.php y cuándo implementarlo en un módulo?

Quiero decir, en mi ejemplo actual, necesito llamar a hook_preprocess_node y realizar un drupal_get_form y renderizar ese formulario. He puesto mi lógica dentro de template.php.

¿Es eso correcto? Si no es así, ¿puede darme una breve lista de DOS y DONTS con respecto al problema?

magtak
fuente
1
si es demasiado complejo, lo pongo en un módulo, si tiene pocas líneas de código, lo pongo en template.php. Entonces también depende del uso, si es para un tema (template.php) o para diferentes temas (módulo). Tu decides.
Tyler Durden

Respuestas:

9

Hay dos cosas que trato de tener en cuenta al tomar esta decisión.

¿Es esta una característica funcional o puramente visual? Los componentes funcionales van en módulos. Los puramente visuales van en el tema.

¿Qué sucede si modifico o cambio radicalmente el tema en el futuro y / o permito múltiples temas para mi sitio? Si no desea replicar la función, debería ir en un módulo.

Drupal hace que sea fácil entrelazar contenido, lógica de negocios y presentación. Para la mantenibilidad a largo plazo de un sitio, realmente debe tener cuidado al implementar las cosas.

Una regla de buena práctica es que un tema no debería necesitar saber acerca de los identificadores ( $nid, $uid, $tid, etc.) para nada, y sólo se necesita saber los nombres de máquina para alterar la apariencia visual.

En su caso, agregar un formulario a un nodo es un cambio funcional, y realmente lo pondría en un módulo.

mpdonadio
fuente