Archivo de la etiqueta: PHP

Fancybox 2 Gallery by Ajax response

Llamamos una galeria desde la etiqueta HTML <a href=’javascript:void(0);’ id=” />galeria</a> usando Ajax generado por PHP

Codigo Javascript:

jQuery(function($) 
{
        //al hacer click en determinada etiqueta ejecutamos la llamada ajax y con la respuesta
        //recogida generamos un slide show
        $('.gellery_from_link a').live('click', function()
	{
		var item = $(this); //get a href
		
		$.fancybox.showActivity();
		
		$.ajax({
			url: '?action=gallery&rand='+Math.random(), //rand for hotlink scripting
			data: 'gallery_id='+item.attr('id'), // get a href id for generate ajax result
			type: 'POST',
			dataType: 'json',
			cache: false,
			success: function(data)
			{
				$.fancybox(data,
				{
					type: 'image', //important
					autoScale: true,
					transitionIn:	'elastic',
					transitionOut:	'elastic',
					padding: 20,
				});
			}
		});
		
	});	
});

Php > generando la respuesta ajax:

< ?php

//Hot Link script
function IsHotlink()
{
	$domain = explode("/",$_SERVER['PHP_SELF']);
	$isFromDomain = strstr($_SERVER['HTTP_REFERER'],$domain[2]);
	$isFromAjax = $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest';
	$isHotlink = !$isFromDomain && !$isFromAjax;
	return $isHotlink;
}

if( $_REQUEST['action'] == 'gallery' && !IsHotlink() )
{
	$dm->gallery_id = $_REQUEST['gallery_id']; //recogemos $_POST id de la galleria
	
	$dm->fdir = "gallery/".$dm->gallery_id."/"; //ruta hasta lacarpeta con id de la galeria
	$dm->fItems = read_dir($dm->fdir);
	
	$dm->items = array();
	
	foreach( $dm->fItems as $v => $k )
	{
		array_push($dm->items, array('href' => $dm->fdir.$dm->fItems[$v]) );
	}
	
	exit( json_encode( $dm->items ) ); //generamos la respuesta ajax y cerramos el documento.

/*
ejemplo de la respuesta:
[href: "/gallery/2011-11-25_1.JPG", href: "/gallery/2011-11-25_2.JPG"]
*/
}
?>

Actualizción del codigo PHP/JS/HTML en Margen-Lab.com

Actualización de web site Margen-lab.com que esta basado en systema Indexhibit.

Trabajo realizado: correccion y adaptación de código en general (PHP, HTML), actualización y configuración de paquetes ( jQuery, Thickbox), reprogramación del codigo “Expanding Menu”. Ademas se ha añadido nueva función en el menu de administración del web site, para el control de la función “Read More“. Se trata de un sistema de scrolling que esconde texto  en cuando es demasiado largo.