Postagem

Aqui é onde faço postagens de coisas que acho interessante.

Image Helper para CakePHP

Postagem do dia 01/01/1970 na categoria CakePHP



Classe que verifica se uma imagem existe no servidor, caso nao exista, exibe uma imagem criada pelo servià§o placehold.it com as dimensàµes passada por parà¢metro da imagem inexistente.


<?php
// app/View/Helper/ImageHelper.php

/**
 * ImageHelper Class (Helper)
 * 
 * Esta classe verifica se a imagem existe no servidor, caso nao exista,
 * exibe uma imagem criada pelo servico placehold.it com as dimensoes passada por parametro
 *
 * @tutorial
 * 	echo $this->Html->image( $this->Image->checkFile( '../public/img/img_logotipo_rodape.png', '127x79' ) );
 * 
 * ----------------------------------------------------------------------------- 
 * @version 1.1
 * - Simplificado condicao interna usando if ternario e alterado
 * - Nomes de variaveis que nao estavam "claras"
 * - Retirado assinatura do metodo
 * - Alterado nome do metodo verifyExistence() para checkFile()
 * 
 * @author 	Tayron Miranda 
 * @since 	20/03/2013 10:30
 * -----------------------------------------------------------------------------
 * @version 1.0 - Criado Projeto
 * @author 	Tayron Miranda  
 * @since 	27/03/2012 16:00 
 */
class ImageHelper extends AppHelper{
        
        /**
         * Metodo que verifica se a imagem existe senao retorna uma imagem falsa para
         * subistituir a nao existente
         * 
         * @param: {string} Nome do diterorio + nome da imagem
         * @param: {string} Dimensao da imagem, largura x altura
         * @param: {string} Cor de fundo da imagem
         * @param: {string} Cor da letra da imagem
         */
        public function checkFile()
        {			
			$args		= func_get_args(); // Pegando arqumentos parrado para a funcao			
			$urlImage	= ( isset( $args[0] ) ) ? $args[0] : null; // Caminho da imagem do servidor			
			$dimension	= ( isset( $args[1] ) ) ? $args[1] : '150x150'; // Tamanho da imagem
			$background	= ( isset( $args[2] ) ) ? $args[2] : 'EEE'; // Fundo a imagem			
			$fontColor	= ( isset( $args[3] ) ) ? $args[3] : '00F';	// cor da fonte			
			$imageFalse = "http://placehold.it/{$dimension}/{$background}/{$fontColor}"; // Imagem gerada pelo servico placehold

			// Se nao foi passado a url da imagem no servidor, retorno imagem falsa
			if( $urlImage == NULL ){ return $imageFalse; }
			
			// Se a imagem nao existir no servidor, retorno imagem falsa
			return ( file_exists( "../webroot/img/{$urlImage}" ) ) ? $urlImage : $imageFalse;                                     
        }
}


Para usar o helper, basta carrega-lo no seu controller

class AppController extends Controller {	
	
    var $helpers    = array( 'Image' );
    ....


Na view quando for usar o helper basta seguir o exemplo abaixo:

...
	<div id='rodape'>
		<?php
			echo $this->Html->image( $this->Image->checkFile( 'img_logotipo_rodape.png', '127x79' ),
				array( 'width' => 127, 'height'=> 79 ) )
		?>            
	</div>
...



Deixe seus comentários abaixo: