Creé un módulo de características que contiene solo una vista y un tipo de contenido.
En este momento, mis page-node-x.tpl.php
y mis views-view-y.tpl.php
archivos se encuentran en mi directorio de temas.
¿Es posible moverlos a mi módulo de características?
Para las vistas, en teoría existe un mecanismo para las plantillas de vistas (tal vez funcione para todas las plantillas).
Puede establecer la clave "ruta de la plantilla" en su implementación hook_views_api de su módulo personalizado.
Una vez que tenga estas vistas, escaneará el directorio especificado para buscar archivos de plantilla. Lamentablemente, el más simple falla actualmente, por lo que esta característica probablemente aún no se ha portado a drupal7, pero si alguien quiere ingresar, consulte _views_find_module_templates () en views.module.
fuente
La forma más fácil es usar
hook_theme_registry_alter()
y simplemente agregar la ruta de su módulo a las rutas de tema:fuente
theme()
implementación, no parece quetheme path
pueda ser una matriz. ¿Estás seguro de que esto funciona? Ver api.drupal.org/api/drupal/includes%21theme.inc/function/theme/7theme paths
solía funcionar en Drupal 6, pero Drupal 7 cambió ese comportamiento en drupal.org/node/678714 Parece, de los comentarios # 29 y # 31 en el tema mencionado, que las sugerencias de temas de los módulos deben declararse en el hook_theme de ese módulo, pero cómo hacerlo se deja como ejercicio para el lector: /¿Qué tal un enfoque ligeramente abstracto con Context Reaction Theme?
http://drupal.org/project/context_reaction_theme
Termine su contexto en Características e incluso es exportable. Pero tal vez esta es realmente una pregunta del gurú de Drupal que busca crear algo más profundo y conocer la ruta.
fuente
Comencé con la respuesta de googletorp y construí una función genérica:
Permite no solo sobrescribir la posición y el nombre del nodo y ver los archivos tpl, sino también proporcionar una función de preproceso para las vistas.
Entonces, si llama a su propio módulo
mymodule
con un archivo de plantilla, por ejemplosites/all/modules/mymodule/templates/foo--variant.tpl.php
, ahora puede modificar fácilmente el registro de temas para usar su propio directorio de plantillas:fuente
Como dijo @jcsio, la respuesta aceptada en esta página funciona, pero la plantilla no puede ser anulada por un tema.
http://www.metachunk.com/blog/adding-module-path-drupal-7-theme-registry ofrece una solución que le permite agregar la ruta de su módulo (y subcarpetas) para escanear todo tipo de archivos .tpl.php.
Lo cambié ligeramente, ya que contenía una variable de 'rutas de tema' que parece no ser utilizada por Drupal 7.
Intenté tanto la respuesta aceptada como esta solución, ¡esta última me funciona hasta ahora!
fuente