SNIPPET: processar uma imagem com Imagecache através da função theme()
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:
-
<?php -
print theme('imagecache', $preset, $filepath, $alt_text);
-
?>
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:
-
<?php -
print l($text, $path, $options);
-
?>
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:
-
<?php -
print l($text, $path, array('html'=>'true'));
-
?>
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:
-
<?php -
$user = user_load(1); // carrega as informações do usuário de id '1', ou seja, o administrador do site
-
$preset = 'avatar_coment'; // preset do imagecache
-
$filepath = base_path() . 'sites/default/files/avatar.png'; // caminho para a imagem a ser precessada pelo preset
-
$alt_text = 'Avatar do usuário ' . $user->name; // texto alternativo da imagem
-
-
$img = theme('imagecache', $preset, $filepath, $alt_text); // resultará em uma tag <img /> com atributos preenchidos pelos parâmetros da função
-
-
$path = 'user/' . $user->uid;
-
$options = array('html'=>'true');
-
-
print l($img, $path, $options);
-
?>
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.