Je sais que cette question a déjà été posée, mais je voulais ajouter ma propre solution qui utilise des éléments de Philadelphie Web Design (PWD) réponse et utilise hook_theme_registry_alter, comme suggéré par Owen. Grâce à cette solution, vous pouvez charger le modèle directement à partir d'un module personnalisé.
Tout d'abord, j'ai ajouté raw.tpl.php vers un nouveau "templates" dossier à l'intérieur de mon module. Le contenu de raw.tpl.php sont identiques à la DDT de l'page-ajax.tpl.php:
<?php print $content; ?>
Ensuite, j'ai mis en place hook_preprocess_page dans mon module de la même manière que PWD (sauf que j'ai modifié le $_GET paramètre et mis à jour le fichier de modèle de référence:
function MY_MODULE_NAME_preprocess_page(&$vars) {
if ( isset($_GET['raw']) && $_GET['raw'] == 1 ) {
$vars['template_file'] = 'raw';
}
}
Enfin, j'ai mis en place hook_theme_registry_alter pour ajouter mon module de "templates" annuaire sur le thème de registre (basé sur http://drupal.org/node/1105922#comment-4265700):
function MY_MODULE_NAME_theme_registry_alter(&$theme_registry) {
$modulepath = drupal_get_path('module','MY_MODULE_NAME');
array_unshift($theme_registry['page']['theme paths'], $modulepath.'/templates');
}
Maintenant, quand je l'ajouter ?raw=1 à l'affichage du chemin d'accès d'URL, il utilisera le modèle spécifié à l'intérieur de mon module.