theme template suggestions for create bootstrap drupal drupal-7 drupal-theming

template - theme suggestions drupal 7



hook_preprocess_page() no parece usar el archivo de plantilla sugerido (2)

hook_preprocess_page() un archivo de plantilla en la implementación hook_preprocess_page() hecho desde un módulo, pero el archivo de plantilla sugerido no parece ser utilizado.

El archivo de plantilla es page - terminal-template.tpl.php, que está en el directorio que contiene el módulo, y esta es la implementación de hook_preprocess_page() .

function terminal_preprocess_page(&$variables) { if (arg(0) == "terminal") { $variables[''theme_hook_suggestions''][] = "page__terminal_template"; } }

¿Podría alguien ayudarme por favor?


En realidad, este gancho también se puede invocar desde el archivo template.php del tema junto con el gancho del módulo.

Consulte la documentación de Drupal 7 aquí .

Di si tu tema activo es MY_THEME, entonces el código debería ser:

function MY_THEME_preprocess_page(&$variables) { if (arg(0) == "terminal") { $variables[''theme_hook_suggestions''][] = "page__terminal_template"; } }

Y las sugerencias de plantilla funcionarán.

Editar: Esta funcionalidad también se puede implementar con módulos que usan ganchos.


Las funciones de preproceso y proceso pueden implementarse por módulos. De hecho, la documentación para theme () los enumera cuando muestra en qué orden se llaman esas funciones.

El hecho es que Drupal busca los archivos de plantilla sugeridos en el directorio de temas. Tienes estas alternativas:

  1. Coloque los archivos de plantilla que su módulo sugiere en el directorio que contiene el tema actualmente utilizado
  2. Siga lo que se informó en la plantilla de vista de carga en la activación del módulo para cargar los archivos de plantilla desde el directorio del módulo
  3. Sugerir los archivos de plantilla que desea utilizar en una función de preproceso implementada por un tema

Después de lo que se informó en la otra pregunta, podrá usar el archivo de plantilla que se encuentra en el directorio del módulo. El único problema es que utilizaría una plantilla genérica que podría ser diferente de la plantilla de página predeterminada utilizada desde el tema habilitado actualmente.

Si está agregando archivos de plantilla para el tema actualmente habilitado, debe llamar a drupal_theme_rebuild () para hacer que Drupal vuelva a explorar el directorio que contiene los archivos de plantilla, después de que haya agregado el nuevo archivo de plantilla al tema.