Comment utiliser l'argument delta $?
Question
Comment puis-je utiliser l'argument $delta
dans hook_block
?
J'ai essayé une occasion, mais il n'y avait aucun effet.
Quelle est la bonne façon de le faire?
La solution
/**
* Implementation of hook_block().
*/
function YOURMODULE_block($op = 'list', $delta = 0, $edit = array()) {
switch ($op) {
case 'list':
$blocks[0]['info'] = t('Block #1 name');
$blocks[1]['info'] = t('Block #2 name');
return $blocks;
case 'view':
$block = array();
switch ($delta) {
case 0:
$block['content'] = t('Hello for block #1');
break;
case 1:
$block['content'] = t('Hello for block #2');
break;
}
return $block;
}
}
Autres conseils
Comme indiqué ailleurs, $ delta permet un module de retour de blocs. Il peut également être plus facile à comprendre si vous gardez à l'esprit que le delta $ ne doit pas être numérique. Il est tout simplement un identifiant.
Vous utilisez le delta $ d'abord pour répondre à l'$ op « liste ». Chaque clé du tableau de bloc $ vous revenez sera un delta $ qui peut être utilisé pour configurer ou rendre ce bloc spécifique.
switch ($op) {
case 'list':
$block['sidebar-links']['info'] = t('Sidebar Links');
$block['footer-links']['info'] = t('Footer Links');
return $block;
Ce que cela dit le système Drupal est que le module en question comporte deux blocs dont l'un est identifié par « liens de barre latérale », l'autre par « Pied de page des liens ».
Cela placera deux blocs sur l'admin / build / block page de configuration. Si vous permettre aux deux blocs, ils seront ensuite rendus par des appels à la « vue » $ op avec la clé identifiant comme le delta $:
case 'view':
switch ($delta) {
case 'sidebar-links':
$block['subject'] = t('Sidebar Links');
$block['content'] = "super weak";
break;
case 'footer-links':
$block['subject'] = t('Footer Links');
$block['content'] = "super weak";
break;
}
return $block;
}
En prime, à l'aide des clés sémantiques pour vos blocs entraînera plus facile à lire id en CSS. :)
Une mise en œuvre de HOOK_block () peut contenir plusieurs blocs. L'argument delta $ Précise à la fonction qui bloquent la sortie. Exemple:
/**
* Implementation of hook_block().
*/
function fightfi_block($op = 'list', $delta = 0) {
$block = array();
switch ($op) {
case 'list':
$block[0]['info'] = t('Sidebar Links');
$block[1]['info'] = t('Footer Links');
return $block;
case 'view':
switch ($delta) {
case 0:
$block['subject'] = t('Sidebar Links');
$block['content'] = "super weak";
break;
case 1:
$block['subject'] = t('Footer Links');
$block['content'] = "super weak";
break;
}
return $block;
}
} // end function fightfi_block
Il est préférable de voir le module exemple pour toutes sortes d'exemples drupal .. http://drupal.org/project/examples Vous trouverez par exemple bloc ici ....