web-dev-qa-db-fra.com

Comment créer un bloc statique par programme?

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é Drupal développement de modules chaque récemment et j'ai du mal à le faire.

8
Divya Choudhary

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 en a encore plus documentation sur les fichiers .info que vous trouverez peut-être utile lors du démarrage des modules. Le vôtre a vraiment besoin des entrées name et 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 hook_block_view() 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.

21
Chaulky