Passando argumentos para um bloco

Events happening in the community are now at Drupal community events on www.drupal.org.
You are viewing a wiki page. You are welcome to join the group and then edit it. Be bold!

Digamos que você construa um módulo para controle de produtos, nesse seu módulo você possui uma página construída através do módulo, com o hook_menu, por exemplo: http://localhost/drupal/produto

No hook_menu você tem um callback que aponta para a função produto_get_content, essa função é responsável por trazer o nome do produto no título da página, através da função drupal_set_title, ela não busca mais nenhuma informação.

O que queremos é quando o usuário acessar http://localhost/drupal/produto/10 passando o parâmetro 10 seja buscada todas informações referentes ao produto, para fazer isso podemos construir views do tipo bloco, cada view fica responsável por mostrar um tipo de conteúdo, uma mostra a descrição do produto, outra mostra as fotos, e podemos criar as views conforme a necessidade.

A página http://localhost/drupal/produto/10 será composta de vários blocos, o problema que temos é passar o parâmetro 10 para cada view, as views do tipo bloco não consegue pegar de forma automática o parâmetro da url para usar como argumento na view.

Nós podemos forçar a passagem desse argumento para view, isso pode ser feito usando uma opção mais avançada de argumento no Drupal.

Na construção da view você deve ir até o fieldset Arguments, escolher o tipo do argumento que você irá passar, no nosso caso nós precisamos do argumento do tipo código do produto, esse tipo de argumento não existe por padrão, você precisa que o seu módulo crie esse argumento, para fazer isso você pode visitar http://drupal-br.org/prover-campos-personalizados-para-o-views e http://drupal.org/handbook/modules/views/api nesses endereços você pode descobrir como fazer isso.

Agora precisamos pegar o argumento 10 da url http://localhost/drupal/produto/10 podemos fazer isso através da função arg(x) do Drupal.

Para forçar a passagem do argumento 10 para view do tipo bloco bastar ir no fieldset Arguments abrir o fieldset Argument Handling Code e inserir o código abaixo na textarea:

$args[0]= arg(1);

return $args;

Esse código pega o parâmetro 10 da url insere no vetor $args e retorna o valor. Fazendo dessa forma a view do tipo bloco consegue obter o parâmetro.

Agora você consegue montar diversos blocos no seu site que trazem os conteúdos referente ao produto.

Você pode usar isso para as mais diversas funcionalidades.

Espero que possa te ajudado.

Brasil

Group organizers

Group categories

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: