• Share
  • ?
  • Profiles ▼
  • Communities ▼
  • Apps ▼

Blogs

  • My Blogs
  • Public Blogs
  • My Updates

This community can have members from outside your organization. iMasters

  • Log in to participate
fd26864d-cb41-49cf-b719-d89c6b072893 Blog

▼ Tags

▼ Similar Entries

Compile PHP, Informi...

Blog: developerWork...
Gadde_Radhika 50J9GYTSQP
Updated
0 people like thisLikes 0
No CommentsComments 0

All Application Lang...

Blog: DB2 Performan...
DaveBeulke 2700023WUN
Updated
0 people like thisLikes 0
No CommentsComments 0

Bluemix: Deploying J...

Blog: IBM Ecosystem...
Aiman Shaharuddin 270000VT8F
Updated
0 people like thisLikes 0
CommentsComments 3

Hack: Facebook's ver...

Blog: Bernie Michal...
bernie_michalik 1100004GGT
Updated
1 people likes thisLikes 1
No CommentsComments 0

New Additions to our...

Blog: Application P...
KimOConnor 270002PS4T
Updated
0 people like thisLikes 0
No CommentsComments 0

▼ Archive

  • January 2014
  • August 2013
  • July 2013
  • May 2013
  • April 2013
  • March 2013
  • February 2013
  • January 2013
  • December 2012
  • November 2012
  • October 2012
  • September 2012
  • August 2012
  • July 2012
  • June 2012
  • May 2012
  • April 2012
  • March 2012
  • February 2012
  • January 2012
  • December 2011
  • November 2011
  • October 2011
  • September 2011
  • August 2011
  • July 2011
  • June 2011
  • May 2011
  • April 2011
  • March 2011
  • February 2011
  • January 2011
  • December 2010
  • November 2010
  • October 2010
  • September 2010
  • August 2010
  • July 2010
  • April 2010

▼ Blog Authors

iMasters

View All Entries
Clicking the button causes a full page refresh. The user could go to the "Entry list" region to view the new content.) Entry list

Criando blocos programaticamente

iMasters 27000343BF | | Tags:  php ‎ | 4,456 Views

Tudo bem, galera? Em um projeto web, seja ele site, portal, intranet, rede social ou qualquer outro, é comum ter seções que precisam de destaque, tanto na home quanto em landing pages. Por exemplo, em um portal de notícias temos as seguintes seções: Esportes, Tempo e Empregos.

O diretor do portal quer dar destaque a essas informações na home. Então, como faremos para apresentar essas informações? Não podemos simplesmente jogá-la na tela. Para resolver essa situação, podemos separar essas seções em blocos de informação. Desta forma, facilitamos o acesso à informação dentro do portal.

Com isso em mente, a missão de hoje é criar um bloco programaticamente. Iremos implementar um bloco de links, coisa bem simples. Segue o passo a passo:

  • Implementação do hook_block_info()
  • Implementação do hook_block_view()

Agora, mãos ao código!

Vamos criar um módulo chamado custom_block_link. Não sabe como criar um? Dá uma lida nesse artigo sobre como criar um módulo.

Com o módulo já criado e habilitado, vamos para o arquivo custom_block_link.module.

Passo 1

Implementação do hook_block_info():

/**
* Implements hook_block_info().
*/
function custom_block_link_block_info() {
$blocks['custom_block_link'] = array(
'info' => t('Block of links'),
'cache' => DRUPAL_NO_CACHE,
);

return $blocks;
}

Vamos entender?

Implementamos o hook_block_info() para informar ao Drupal que existe blocos associados ao nosso módulo. Caso não tenha esse hook no módulo, o Drupal enderá que não exitem blocos para serem associados.

Na linha 5 criamos uma chave para identificar o bloco. Na chave info é atribuído um texto que será exibido na área administrativa dos blocos. A chave cache é informada para não armazenar as informações em cache.

Passo 2

Implementação do hook_block_view():

/**
* Implements hook_block_view().
*/
function custom_block_link_block_view($delta = '') {
$block = array();

if ($delta == 'custom_block_link') {

$items = array(
'api' =>  l(t('Api Drupal'), 'http://api.drupal.org/'),
'modules' => l(t('Modules Drupal'), 'http://drupal.org/search/site?f[0]=ss_meta_type%3Amodule'),
'themes' => l(t('Themes Drupal'), 'http://drupal.org/search/site/?f[0]=ss_meta_type%3Atheme'),
);

$block['subject'] = t('Useful links');

$type = 'ul';
$attributes = array('id' => 'links');

$block['subject'] = t('Useful links');
$block['content'] = theme('item_list', (array('items' => $items, 'title' => '', 'type' => $type, 'attributes' => $attributes)));

}

return $block;
}

O hook_block_view() é responsável por construir o conteúdo do bloco. Nele verificamos a chave criada no hook_block_info. o Drupal irá procurar por essa chave para criar o nosso bloco.

Na linha 9, criamos uma variável com o conteúdo do nosso bloco. Na chave subject adicionamos um título para o bloco. A chave content recebe o HTML de uma lista com os valores passados na variável $items.

A tela abaixo mostra o nosso bloco na área de administração de blocos:

admin_block_1_0

Agora vamos adicionar o nosso bloco no Sidebar second:

admin_block_2

Bloco adicionado com sucesso!

result_block

Bom galera, é isso! Qualquer dúvida, crítica ou sugestão é só deixar um comentário.

Até a próxima!

***

Artigo de Denis Souza

  • Add a Comment Add a Comment
  • Edit
  • More Actions v
  • Quarantine this Entry
Notify Other People
notification_ex

Send Email Notification

Quarantine this entry

deleteEntry
duplicateEntry

Mark as Duplicate

  • Previous Entry
  • Main
  • Next Entry
Feed for Blog Entries | Feed for Blog Comments | Feed for Comments for this Entry