• Cadastro
  • Fóruns
  • Manual
  • Tradução
  • Tutoriais
Início

Pesquisa no site

Google

Itens ativos

  • Como Filtrar Conteudo Selec List de Acordo com Papéis de Usuários
  • Usuários com diferentes níveis de acesso.
  • Usando o drupal
  • Mamão e Drupal com açucar, desmistificando o primeiro contato com o Drupal
  • Galeria de Fotos
  • Taxonomy Blocks
  • computed field
  • Site em manutenção... como entrar? URGENTE
  • MULTILINGUAGENS
  • internacionalization, vistas e view field
more

Posts mais lidos hoje

  • Como Criar um Tema Para Drupal 6 - Parte 01
  • Tutoriais
  • Manual
  • Usando o drupal
  • Sobre o Drupal
  • Instalação ilustrada em localhost
  • Galeria de Fotos
  • Usuários com diferentes níveis de acesso.
  • Como Filtrar Conteudo Selec List de Acordo com Papéis de Usuários
  • Módulo de votaçao para computar votos positivos e negativos

Login do usuário

  • Criar uma conta
  • Recuperar senha

Assine o RSS do Drupal-BR

RSS dos itens mais ativos

RSS do conteúdo

RSS dos comentários

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 08/11/2007 - 19:40
  • Qualquer
  • Versão para impressão
  • Se logue ou se registre para poder enviar comentários
  • 3484 leituras
Em 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
Designimage

Este site é feito, orgulhosamente, com Drupal.