• Cadastro
  • Fóruns
  • Manual
  • Tradução
  • Tutoriais
  • OpenAtrium
  • Eventos
  • Ofertas de Emprego
  • DBR
Início

Login do usuário

  • Criar uma conta
  • Recuperar senha

Pesquisa no site

Google

Assine o RSS do Drupal-BR

RSS dos itens mais ativos

RSS conteúdo página inicial

RSS de todo conteúdo

RSS dos comentários

Lista de Discussão

Drupal-BR

Lista de Mantenedores

DBR Maintainers

Download

Últimas versões

Drupal 7.22Drupal 6.28

Contribuições

Módulos Temas Tradução

Itens ativos

  • Cópia local de Site Drupal
  • Publicação de site
  • Filtro com campo relacionado ao usuário logado
  • Filtro com campo relacionado ao usuário logado
  • Webforms
  • Escolha de servidor para Simplenews
  • Novo conteúdo vai pro fim da página
  • Link do "leia mais" não aparece | Resumo Artigo
  • Montando um Formulário de Currículo
  • Relatórios
Veja mais
Início » Tutoriais

Passando argumentos para um bloco

Digamos que você construi 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 referente 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/tutoriais/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.

‹ Módulo de pagamento por boleto bancário acima Passo a passo de como atualizar Drupal 6.x para uma versão mais recente ›
Enviado por patrickespake em qui, 08/11/2007 - 19:40
  • Qualquer
  • Versão para impressão
  • Se logue ou se registre para poder enviar comentários
  • 7822 leituras
Em sab, 10/11/2007 - 23:34 nrauni disse:

Esta é uma informação muito útil, melhor, estremamente útil.. tipo de coisa que faz vc perder alguns fios de cabelo..

valeu por descrobrir e compartilhar patrick, parabéns.

Nei Rauni Santos
Curitiba-PR
http://blog.inuar.com
Drupal,Symfony,PHP...

  • Se logue ou se registre para poder enviar comentários
Em qua, 22/09/2010 - 19:25 pabloaugusto disse:

Com certeza, esse tipo de dica não vemos em muitos lugares, por isso o compartilhamento da informação e da experiência pela comunidade é tão importante.

Autor do Webtags e Passagens Aereas Promocionais

  • Se logue ou se registre para poder enviar comentários
Em qui, 30/12/2010 - 09:58 nuvenus disse:

Parabéns kra... vocês aqui são muito feras!
Mostra que a comunidade brasileira está muito bem representada!

amo muito tudo isso!

  • Se logue ou se registre para poder enviar comentários

Este site é feito, orgulhosamente, com Drupal. Gentilmente hospedado por HostSH