Errores 404 con Ajax (y jQuery) en CakePHP

dissabte, 10 de juliol de 2010 Booletaire Sense comentaris Imprimir

En este tutorial aprenderéis a gestionar los errores de CakePHP con y sin Ajax.

Lo primero de todo que tenéis que hacer es poner el debug a cero en vuestro fichero core.php, ya que con debug > 0 no funcionaría.

Ahora pasemos a crear (si no existe) el fichero /app/app_error.php con el siguiente contenido.

<?php // /app/app_error.php
class AppError extends ErrorHandler
{
	function error404($params)
	{
		// Importamos RequestHandler para verificar si la conexión es mediante Ajax
		App::import('Component', 'RequestHandler');
		$this->RequestHandler = new RequestHandlerComponent();
		if ($this->RequestHandler->isAjax())
		{
			// En caso de ser Ajax creamos la cabecera 404
			$this->controller->header("HTTP/1.0 404 Not Found");
			// y pasamos algunas variables a la vista que ahora crearemos
			$this->controller->set('params', $params);
			$this->controller->layout = 'ajax';
			// Renderizamos la vista
			$this->_outputMessage('ajax_error404');
		}
		// Aquí iría la gestión del error sin Ajax, en nuestro caso llamamos al método padre.
		else parent::error404($params);
	}
}

Pasemos a la creación de la vista… /app/views/errors/ajax_error404.ctp

<?php // /app/views/errors/ajax_error404.ctp
$error404 = array('message' => __("The requested address was not found on this server.",true), 'params' => $params);
echo $this->Javascript->object($error404);

Tan simple como eso : )

Finalmente, añadamos esto a nuestro template por defecto, o a nuestra hoja javascript común:

jQuery(document).ready(function($) {
	// Ajax not found
	$(this).ajaxError(function(event, request, opts){
		if ( request.status == 404 )
		{
			alert(eval("(" + request.responseText + ")").message);
		}
	});
});

Con esto mostraremos una alerta mostrando el texto que hayamos definido en nuestro app_error al usuario que intente adquirir una url no existente en nuestra aplicación CakePHP.

Evidentemente podéis gestionar más errores a parte del típico error 404, simplemente añadiendo algún if más al código javascript y el método correspondiente en el app_error para gestionarlo.

El parámetro $params lo he pasado por si queréis utilizar alguna de sus variables. Por ejemplo, podríamos mostrar al usuario un mensaje tipo “La página /requetefuck no existe”.

Nota: Si estáis utilizando Cake 1.2 tened en cuenta que tenéis que reemplazar en la vista ajax_error404 el $this->Javascript por $javascript, ya que ha variado de una versión a otra.

Introducing Google TV

dilluns, 24 de maig de 2010 DPAM23 4 comentaris Imprimir

Benvinguts a la nova era de la televisió:

Categories: General, Hardware Etiquetes:, ,

Social Media Revolution 2 (Refresh)

dimarts, 18 de maig de 2010 DPAM23 Sense comentaris Imprimir

Categories: Web, Xarxes Socials Etiquetes:,

Web site inspiration – Inspiración para creación de paginas web

dimecres, 28 de abril de 2010 DPAM23 Sense comentaris Imprimir

Watermark & Image Component for CakePHP

dimarts, 6 de abril de 2010 Booletaire Sense comentaris Imprimir

Time ago I created a CakePHP component for applying watermarks to images. Slowly I extended it and now in addition to applying watermarks is used to rotate and resize images.

You can still improve it a lot, especially in terms of code, but as it works and I have little time, I can barely make improvements.

Tested from:

  • Linux php 5.2.10
  • Linux php 5.2.13
  • Windows php 5.3.1
  • Windows php 5.3.2

Well Known Bugs:

  • Uses the method mime_content_type that as they say in php.net: This function has been deprecated as the PECL extension Fileinfo provides the same functionality (and more) in a much cleaner way.
  • By rotating a transparent PNG image at an angle that is not a multiple of 90º the extra generated background is not transparent.

Download:

http://github.com/elboletaire/Watimage/archives/master

Llegir més…

Gigya: Todas las redes sociales optimizadas para el desarrollo

dijous, 1 de abril de 2010 Booletaire Sense comentaris Imprimir

¿Cuántas veces has tenido que integrar una de tus aplicaciones web con Facebook? Y después de Facebook, tuviste que hacer la integración con Twitter, la de LinkedIn y otras tantas más.

Con Gigya tienes una API unificada para la mayor parte de las redes sociales. En apenas media hora habrás integrado el login de tu página con Facebook, Twitter, LinkedIn, OpenID, Yahoo, MySpace o cualquier otra de las redes sociales que puedes integrar con Gigya.

Para utilizarlo simplemente necesitas registrarte en su web y añadir aquellos servicios que quieras utilizar desde el panel de control:

Además de la integración que podáis hacer vosotros mismos junto con la documentación de Gigya podéis encontrar plugins e integraciones ya hechas para CMS como WordPress o Joomla.

Web 2.0 … The Machine is Us/ing Us

diumenge, 21 de març de 2010 DPAM23 Sense comentaris Imprimir

Categories: General, Web Etiquetes:, , , ,

UND-001 : Ja a la venta!

divendres, 19 de març de 2010 Booletaire Sense comentaris Imprimir

Tots aquells que estàveu dubtant si fer una donació a underave o no, aquesta és la vostra oportunitat per col.laborar.

Sigueu partíceps d’aquest moment històric !!!

El primer vinil d’underave ja és a la venda!!

Felicitats a tots els implicats.

Disponible a toolbox i altres tendes de vinils.

Visitar toolbox

Categories: Audio, General Etiquetes: