Drupal 7 - Personaliser le théme d'une page créer depuis un module

// Custom a template page from module //

le fichier template page--path-link.tpl.php est crée dans le même répertoire que notre module latrach_page
c'est une copie du fichier page.tpl.php à personnaliser

<?php
/**
 * Implements hook_menu().
 */
function latrach_page_menu() { 
   
$items['path-link/%'] = array(
       
'title' => 'My Page',
       
'description' => 'My Page',
       
'type' => MENU_CALLBACK,
       
'page callback' => 'drupal_get_form',
       
'page arguments' => array('latrach_page_form',1),
       
'access callback' => TRUE,
       
'file' => 'latrach_page_form.inc',
    );
    return
$items;
}
/**
 * Implements hook_theme().
 */

function latrach_page_theme($existing, $type, $theme, $path) {
 
$theme = array();
 
$theme['page_my_theme'] = array(
   
'render element' => 'page',
   
'base hook' => 'page',
   
'template' => 'page--path-link',
   
'path' => drupal_get_path('module', 'latrach_page'),
   );
  return
$theme;
}
/**
 * Implements hook_theme_registry_alter().
 */
function latrach_page_theme_registry_alter(&$theme_registry) {
     
$modulepath = drupal_get_path('module', 'latrach_page');
     
$theme_registry['page_my_theme']['theme paths']= $modulepath;
}

/**
 * Implements hook_preprocess_page().
 */
function latrach_page_preprocess_page(&$vars) {  
   
$current_path = explode('/', current_path());
   
$current_path = $current_path[0];
    if (
$current_path == 'path-link'){
     
$vars['theme_hook_suggestions'][] = 'page_my_theme';
    }
}
?>

Tags: 

Catégories: 

Share/Save