Como crio um bloco estático programaticamente?

8

Eu quero criar um bloco estático usando um módulo. Não quero usar o módulo Views para criar um bloco. Alguém poderia me explicar como criar um bloco estático programaticamente?

Eu já verifiquei os módulos de exemplo no Drupal, mas isso não me ajudou muito. Comecei o desenvolvimento do módulo Drupal recentemente e estou lutando para fazer isso.

kiamlaluno
fonte

Respostas:

21

Os ganchos importantes no módulo de exemplo de bloco são hook_block_info()e hook_block_view(). O gancho de informação define seu bloco no sistema e o gancho de exibição cria a saída (html) para seu bloco.

Cada módulo, incluindo o seu, terá pelo menos um arquivo .info e um arquivo .module. O Drupal.org tem mais documentação sobre arquivos .info que você pode achar útil ao iniciar os módulos. O seu realmente precisa das entradas namee core.

O arquivo .module é onde você implementará seus ganchos. Primeiro, implemente hook_block_info(), substituindo 'hook' no nome da função pelo nome do seu módulo, por exemplo my_module_block_info(),. Deve ser algo como o seguinte.

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

  return $blocks;
}

Em seguida, implemente seu hook_block_view()gancho para definir o conteúdo estático.

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;
}

Depois de implementá-lo, você poderá colocar seu bloco em qualquer região, como faria com qualquer outro bloco no Drupal.

Chaulky
fonte