Aloha!
Bem-vindos ao segundo artigo que apresenta pequenos e úteis trechos de código de programação. No primeiro artigo eu mostrei como processar uma imagem com o Imagecache e obter uma url para a mesma.

Agora, vou mostrar como processar uma imagem no imagecache e obter a tag da imagem completa, através da função theme:

  1. <?php
  2.    print theme('imagecache', $preset, $filepath, $alt_text); 
  3. ?>

Simples assim. Os argumentos são os seguintes:

  • $preset - O preset do imagecache que será usado no processamento da imagem;
  • $filepath - o caminho para a imagem que será processada;
  • $alt_text - o texto alternativo (atributo alt) da imagem resultante.

E é só isso?

Plus: criando um link através da função l(), inserindo html na entrada na função.

Neste comentário do post anterior, Sebastian entregou o jogo completo deste artigo. Para não ficar na impressão de já ter visto isso antes, complemento com a seguinte dica:

No Drupal, você pode criar links usando a função l(). A sintaxe é simples:

  1. <?php
  2.    print l($text, $path, $options);
  3. ?>

onde:

  • $text - o texto do link a ser criado;
  • $path - o endereço para qual o link irá apontar. Se for para um node, por exemplo, o valor de $path será 'node/123', onde '123' é o nid do node;
  • $options - um array com opções de personalização do link, como controle de atributos, etc.

Por padrão, o parâmetro $text só aceitará texto simples. Ou seja, se você inserir tags HTML as as mesmas serão tratadas como texto simples e não haverá formatação.

Você pode modificar isso através do parâmetro $options, da seguinte forma:

  1. <?php
  2.   print l($text, $path, array('html'=>'true'));
  3. ?>

Atenção: Inserir HTML sem qualquer filtro na entrada de qualquer função deve ser usado com sabedoria, especialmente se quem for inserir esse HTML não souber o que está fazendo. Ou saber exatamente o que está fazendo, se você me entende.

O bom agora é que você pode combinar as duas dicas deste artigo, e criar um link em uma imagem processada pela função theme(). Exemplo:

  1. <?php
  2.    $user = user_load(1); // carrega as informações do usuário de id '1', ou seja, o administrador do site
  3.    $preset = 'avatar_coment'; // preset do imagecache
  4.    $filepath = base_path() . 'sites/default/files/avatar.png'; // caminho para a imagem a ser precessada pelo preset
  5.    $alt_text = 'Avatar do usuário ' . $user->name; // texto alternativo da imagem
  6.  
  7.    $img = theme('imagecache', $preset, $filepath, $alt_text); // resultará em uma tag <img /> com atributos preenchidos pelos parâmetros da função
  8.  
  9.    $path = 'user/' . $user->uid;
  10.    $options = array('html'=>'true');
  11.  
  12.    print l($img, $path, $options);
  13. ?>

O código acima irá processar a imagem "avatar.png", gerar uma tag de imagem, que por sua vez será enviada para a função l(), ganhando um link para o perfil do usuário administrador do site.

E por hoje é só, pessoal!

Até breve.

Tópicos: 
snippetDrupaldev

Comentários

Capi Etheriel

Lembrando que se você quer criar imagecache para as fotinhos dos seus usuários, pode usar o Imagecache Profiles.

Comentar