Submitted by Kimoja_san on
Bonjours.
Je butte sur un problème, qui me parait pourtant être une des bases de l'api de drupal dans la conception de module.
Je cherche simplement à avoir des suffixes aux noms de fichier template associé aux clés des blocks de mon module.
En d'autre terme, pouvoir créer un modèle de nom de fichier comme ceci
-> (clé_du_module)-(clé_du_block).tpl.php
Et que drupal cherche d'abord l’existence de ce fichier dans le dossier du thème, puis l’existence d'un fichier générique sans le préfixe de la clé du block, et si il ne trouve rien appliquer une fonction par défaut.
J'ai fait des testes sur une base de module sans résultat
voici cette bases ->
function test_block($op = 'list', $delta = 0, $edit = array()) {
switch($op) {
case 'list' : {
$blocks = array();
$blocks["a"] = array(
'info' => 'block test a',
'cache' => BLOCK_NO_CACHE
);
$blocks["b"] = array(
'info' => 'block test b',
'cache' => BLOCK_NO_CACHE
);
return $blocks;
}
case 'view' : {
$block = array();
$block['subject'] = $delta;
//je passe un tableau contenant la liste des possibilitées de thème à appliquer
$block['content'] = theme(array('test__'. $delta, 'test'), 'block content '.$delta);
return $block;
}
case 'configure' : {
$bloks = array();
return $bloks;
}
case 'save' : {
$bloks = array();
return $bloks;
}
}
}
function test_theme($existing, $type, $theme, $path) {
$themes = array();
//ici comme l'api l'indique j'enregistre un modèle de nom de fichier via les deux underscore
//mais seule le template générique est pris en compte (test.tpl.php)
$themes['test'] = array(
'pattern' => 'test__',
'arguments' => array('content' => 'default content'),
'template' => 'test',
);
return $themes;
}
J'espère que quelqu'un aura une solution à me proposer, merci !