Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fala galera do iMasters! Tô iniciando o uso do Template Smarty e já pesquisei bastante sobre o problema, mas não acho solução! =/
Na verdade estou migrando um sistema que fiz com várias funções (incluindo algumas que usam o WideImage para manipulação de imagens) e preciso usá-las para gerar as thumbs (miniaturas) do sistema de notícias que fiz.
Eu tenho um arquivo externo (config/funcoes.php) que tem todas as funções, incluindo a GeraThumb que é a que preciso usar.
Função GeraThumb
function GeraThumb($pasta, $foto_original, $largura, $altura){
//Pega a extensão e o nome da foto
$nome_foto = $foto_original;
$ext = end(explode(".", $nome_foto)); // Pega a extensão do arquivo
$thumb = str_replace(".$ext", "_$largura-$altura.$ext", $nome_foto); // Substitui a extensão
if (!file_exists($pasta."/".$thumb)) {
// Carrega a imagem a ser manipulada
$image = WideImage::load($pasta."/".$foto_original);
// Redimensiona a imagem
$image = $image->resize($largura, $altura);
// Salva a imagem em um arquivo (novo ou não)
$image->saveToFile($pasta."/".$thumb);
echo "$pasta/$thumb";
/*echo "imagem não existe";*/
}echo "$pasta/$thumb";
}
}
No sistema anterior, eu simplesmente utilizava ela da seguinte forma:
<img border="0" src="<?php GeraThumb("fotos/noticias", $row_recFotosNoticia['nome_arquivo'], 280, 280); ?>" alt="" />
O meu problema é na verdade, como eu faço para utilizar esta função dinamicamente no Smarty.
Quando eu coloco ela no meu arquivo php onde faço a consulta ao banco, e gero as variáveis smarty, uma linha com o nome da imagem e o caminho (que foram setados na função) aparecem no topo do site. Olhando o código html, ela fica antes das tags de abertura do código <html>.
Quando pesquisei, vi que pra usar funções preciso setá-las no Smarty com a função smarty "register_block". Tentei fazer isso (como mostra o código abaixo), mas foi sem sucesso, inclusive dando o erro: Fatal error: Uncaught exception 'SmartyException' with message 'Call of unknown method 'register_block'.' in C:\xampp\htdocs\padrao\js\libs\sysplugins\smarty_internal_templatebase.php:806
require_once('config/funcoes.php');
$smarty->register_block("GeraThumb", "GeraThumb");
/ Fotos da Notícia /
if (VerificaFoto($row_recNoticia['not_id']) == 1) { / Se existir Foto, gera a Thumb /
$verifica_foto = VerificaFoto($row_recNoticia['not_id']);
$smarty->assign('verifica_foto', $verifica_foto);
$legenda = $row_recFotosNoticia['legenda_foto'];
$smarty->assign('legenda', $legenda);
}
Alguém poderia me dar uma ajuda, de como faço para mostrar o resultado da função com o assign e passar isso pro template?
Carregando comentários...