terça-feira, 8 de setembro de 2009

Uma maneira de Customizar uma View

Aqui vou passar uma maneira que encontrei de fazer um theming para uma view (sim! a minha view de revistas! hehehe).

Crie uma cópia do arquivo:

\sites\all\modules\views\theme\view-view-fields.tpl.php

na sua pasta de temas, adicionando o sufixo --nomedaview:

\sites\all\themes\simple template\view-view-fields--revistas.tpl.php

Para saber, se o arquivo criado terá efeito sobre a sua view, vá para:

/admin/build/views/

E clique na opção “Edit” correspondente à sua View.
Clique no link ao lado de Theme, dentro do bloco “Basic settings”. No meu caso está como “Information”.

Logo abaixo aparecerá uma série de arquivos associados às formas de apresentar uma parte ou todo o conteúdo da View.

Clique no botão “Rescan template files” ao final da página e verifique se o arquivo recém-criado está  destacado em negrito:

FireShot capture #50 - 'Edit view revistas I Drupal Training' - localhost_training_admin_build_views_edit_revistas

Caso não fique destacado, provavelmente o nome do arquivo foi escrito errado. Lembre-se de que o sufixo começa com dois traços e não apenas um!

Clique em “Ok” e, em seguida, “Save”. A partir de agora, as mudanças realizadas no arquivo recém-criado serão refletidas na apresentação da View.
 

O looping do arquivo original percorre todos os campos de cada ocorrência de “revista”. Porém como estamos customizando, podemos escolher exatamente quasi destes campos queremos mostrar e de que maneira:

  • Título;
  • Número;
  • Sinopse;
  • Link para a “revista”.

Uma maneira de se descobrir exatamente como chegar nestes campos é através do comando:

<?php print var_dump($fields); ?>

No entanto, pelo menos nos meus testes, pelo fato de o Drupal guardar muita informação nessa variável, o processamento da página pode demorar muito!

Outra maneira é ver os nomes dos campos pertencentes à sua view (em: /admin/build/views/edit/revistas, no box “Fields”):

  • title ;
  • field_numero ;
  • field_sinopse ;
  • nid .

Com isso, pude substituir o código original por este:

<b><?php print $fields["title"]->content . " #" . $fields["field_numero_value"]->content; ?></b><br/>
<?php print $fields["field_sinopse_value"]->content; ?><br/><br/>
<a href="node/<?php print $fields["nid"]->content ?>">more</a>
<hr width="80%" size="1px" noshade>

E o resultado final foi:

FireShot capture #51 - 'Drupal Training' - localhost_training_revistas

=)

terça-feira, 1 de setembro de 2009

Módulo: VIEWS

Views é um dos módulos mais famosos feitos para o Drupal. Ele disponibiliza formas “amigáveis” de se construir queries no Drupal e de se apresntar o conteúdo retornado.

Digo “amigáveis”, pois eu não acho que é tão fácil mexer com o Views! eheheh
Mas vou tentar explicar, mais ou menos, o que eu aprendi a fazer com este módulo.

Obs. Mais uma vez, é provável que existam maneiras melhores/mais eficientes que os procedimentos que descreverei aqui… caso saibam, por favor comentem! :)

Novamente usando o exemplo das revistas, vamos supor que temos várias revistas cadastradas e queremos mostrar uma listagem de algumas delas, baseado numa certa característica (por exemplo o ano de publicação).

Habilite o módulo Views e vá para /admin/build/views ou Administer > Site building > Views.
Nesta página é possível ver algumas views já criadas por default, porém desabilitadas. Clique em enable em alguma(s) delas para conferir o que pode ser feito com uma view.

 

Criando a View

Clique em Add:

  • View name: revistas
    Este será o identificador da sua View.
  • View description: Views das revistas
  • View tag:
    Opicional.
  • View type: Node
    Qual tipo da informação que será buscada pela query.

Clique em Next. Esta é a interface do Views. (que eu ainda continuo achando confusa =)
Inicialmente, definiremos as configurações gerais desta view. Depois, elas servirão para criar uma página, bloco, etc.

 

Filtros e Campos

Adicione um Filter, clicando no símbolo + ao lado de Filters.
O filtro da sua query pode usar qualquer uma das várias opções mostradas, mas, por ora, utilizaremos apenas o “Node: Type”: marque esta opção e clique em “Save”.
Agora escolha como será feito o filtro:

  • Operator: Is one of
  • Node Type: Revista

Clique em “Update”.

Agora, vamos adicionar quais campos queremos mostrar: clique no + ao lado de Fields.
Marque “Node: Title” e “Content: Text: Sinopse” e clique em “Add”.
Na tela de configuração de cada campo, podemos alterar como estes serão mostrados.

Ao clicar em Update, já podemos ter uma idéia de como ficará a View criada (abaixo do botão Preview) e podemos ver que todas as revistas são mostradas. Então, adicionaremos mais um critério de Filtro, para poder especificar o ano de publicação.

Adicione um Filter, escolha “Content: Ano” e clique em “Add”.
Defina o valor “2009” no critério do filtro e clique em “Update”. Verifique que as revistas que não são de 2009 surmiram.

Se quiser alterar a ordem de apresentação dos campos, clique no botão com duas setas ao lado de “Fields”. Na interfacce aberta, clique a arraste para rearranjar os campos e clique em “Update”.

 

Criando Displays

Para ver o resultado em uma página própria, adicionaremos um display do tipo “Page”. Na coluna da esquerda, selecione a opção “Page” e clique em “Add display”.

Verifique que todas as opções de configuração que existiam anteriormente estão marcadas em itálico e que apareceu um novo box com mais opções.
Estas opções, como você já deve ter inferido, são específicos para o display page.

Clique em “None” ao lado de “Path”. Escolha um nome (e.g. revistas) para a página desta view e clique em “Update”.

Clique em “Save” e repare que no topo à esquerda, surgiu o link “view ‘page’”. Clique neste link ou acesse o endereço definido no passo anterior para ver como ficou sua View.
Pronto! Já temos nossa View mostrada em uma página :)
 

Volte para a página de configuração da View.
Na coluna da esquerda, selecione “Block” e clique em “Add display”.

Clique em “None” ao lado de “Admin”. Escolha um nome (e.g. revistas) para a página desta view e clique em “Update”.

Obs.: Pode-se sobrescrever uma configuração geral (feita antes da criação do default), porém esta modificação só terá efeito no display atual’, sem afetar outros displays criados. No nosso caso, alterei o número de itens a serem exibidos para 3 (eram 10 da configuração original).

Clique em “Save” e vá para /admin/build/block ou Administer > Site building > Blocks. Repare que o nome que foi definido anteriormente para o bloco, aparece como bloco disponível.
Arraste (ou selecione no Select) o seu novo bloco para alguma das áreas presentes no seu tema e clique em “Save blocks”.

Verifique que seu bloco de revistas apareceu na área escolhida.

Pronto! Fizemos uma página e um bloco a partir de uma view simples. =)

Para maiores informações, visite o Views online help.