Nom de fichier template dynamique

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

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 !

Forum :