Comment créer un bloc statique par programme?


8

Je veux créer un bloc statique à l'aide d'un module. Je ne veux pas utiliser le module Vues pour créer un bloc. Quelqu'un pourrait-il m'expliquer comment créer un bloc statique par programme?

J'ai déjà vérifié les exemples de modules dans Drupal, mais cela ne m'a pas beaucoup aidé. J'ai commencé le développement du module Drupal récemment et j'ai du mal à le faire.

Réponses:


21

Les crochets importants dans le module d'exemple de bloc sont hook_block_info()et hook_block_view(). Le crochet info définit votre bloc dans le système et le crochet vue crée la sortie (html) de votre bloc.

Chaque module, y compris le vôtre, aura au moins un fichier .info et un fichier .module. Drupal.org a plus de documentation sur les fichiers .info qui peuvent vous être utiles lors de la mise en route des modules. Le vôtre n'a vraiment besoin que des entrées nameet core.

Le fichier .module est l'endroit où vous implémenterez vos hooks. Tout d'abord, implémentez hook_block_info(), en remplaçant «hook» dans le nom de la fonction par le nom de votre module, par exemple my_module_block_info(). Il devrait ressembler à ce qui suit.

function my_module_block_info() {    
  $blocks['your_block'] = array(
    // info: The name of the block.
    'info' => t('Your Block Name'),
  );

  return $blocks;
}

Ensuite, implémentez votre hook_block_view()hook pour définir le contenu statique.

function my_module_block_view($delta = '') {
  // The $delta parameter tells us which block is being requested.
  switch ($delta) {
    case 'your_block':
      // Create your block content here
      $block['subject'] = t('Title of first block (example_configurable_text)');
      $block['content'] = 'Your block content, or the result of a function that returns the content';
      break;
  }

  return $block;
}

Une fois que vous avez cela en place, vous pouvez placer votre bloc dans n'importe quelle région comme vous le feriez pour n'importe quel autre bloc de Drupal.

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.