Création de plusieurs blocs par programmation


9

J'écris un module personnalisé pour Drupal 7. J'ai besoin de créer 5 blocs différents avec le module. Drupal a les crochets hook_block_infoet hook_block_viewqui créent des blocs. Comment puis-je ajouter plusieurs blocs puisque ces crochets n'autorisent qu'un seul bloc par module?

Réponses:


19

Le code suivant devrait vous aider. Vous devrez évidemment ajouter vos 5 blocs comme il convient, mais c'est juste pour montrer comment vous pouvez ajouter plusieurs blocs dans un module:

function MYMODULE_block_info() {
 $blocks = array();
 $blocks['myfirstblock'] = array(
   'info' => t('My block admin info'),
   'status' => 1,
 );
 $blocks['mysecondblock'] = array(
   'info' => t('My second block admin info'),
   'status' => 1,
 );

 return $blocks;
}

function MYMODULE_block_view($delta = '') {
  $block = array();

  switch ($delta) {
    case 'myfirstblock':
      $block = array(
        'subject' => t('My first block title'),
        'content' => t('My first block content'),
      );
      break;
    case 'mysecondblock':
      $block = array(
        'subject' => t('My second block title'),
        'content' => t('My second block content'),
      );
      break;
  }

  return $block;
}

Raison status => 1des hook_block_info()documents API:

état: (facultatif) Valeur initiale pour l'état activé par bloc. (1 = activé, 0 = désactivé). La plupart des modules ne fournissent pas de valeur initiale, et toute valeur fournie peut être modifiée par un utilisateur sur l'écran de configuration de bloc.

Je ne sais pas d'où vous tenez l'idée d'un bloc par module. Vous pouvez créer autant de blocs que vous le souhaitez dans un module.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.