Foros del Web » Programando para Internet » PHP »

php más javascript

Estas en el tema de php más javascript en el foro de PHP en Foros del Web. hola a tod@s, estoy desarrollando mi portafolio en php y xml. para las ifotos he encontrado una galeria en javascript que que me sirve. El ...
  #1 (permalink)  
Antiguo 05/02/2008, 15:55
 
Fecha de Ingreso: diciembre-2007
Mensajes: 9
Antigüedad: 16 años, 4 meses
Puntos: 0
php más javascript

hola a tod@s,

estoy desarrollando mi portafolio en php y xml.

para las ifotos he encontrado una galeria en javascript que
que me sirve. El problema es que tengo varias galerias para cada proyecto que
quiero llamar segun el valor de la $id.

El js lo tengo en el html de la página php. El código es éste:


Código PHP:
<?php

include "lib/parsexml.php";

$res=parse("data/menu.xml");


$edit_num=$res['menu']['editorial'] ['num'];

$id=$_REQUEST['id'];
$editorial=$edit_num[$id];

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
        <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
        <meta http-equiv="Content-Language" content="en-us" />
        
        <title>portfolio</title>
        
        <meta name="ROBOTS" content="ALL" />
        <meta http-equiv="imagetoolbar" content="no" />
        <meta name="MSSmartTagsPreventParsing" content="true" />
        
        <!-- scriptaculous -->
        <script type="text/javascript" src="/js_slideshow/js/1/prototype.js"></script>
        <script type="text/javascript" src="js_slideshow/js/1/scriptaculous.js"></script>
        <script type="text/javascript" src="js_slideshow/js/1/behaviour.js"></script>
        <script type="text/javascript" src="js_slideshow/js/1/soundmanager.js"></script>
        <script type="text/javascript" src="js_slideshow/js/1/slideshow.js"></script>
        
        <link rel="stylesheet" href="js_slideshow/css/master.css?nov282005" type="text/css" media="screen" />
Espero sirva de algo..muchísimas gracias!
  #2 (permalink)  
Antiguo 05/02/2008, 16:09
 
Fecha de Ingreso: diciembre-2004
Mensajes: 272
Antigüedad: 19 años, 4 meses
Puntos: 4
Re: php más javascript

Hola

El $ID y $Editorial, como los relacionarias en tu codigo de abajo ??

osea, las fotos tienen un pre nombre o algo asi para poder identificarlas con el $ID ?


creo que necesitamos ver el codigo de las .JS que mandas llamar para ver como carga las imagenes.


Saludos
  #3 (permalink)  
Antiguo 06/02/2008, 02:45
 
Fecha de Ingreso: diciembre-2007
Mensajes: 9
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: php más javascript

hola juanchooo,

pues tengo varias carpetas, una para cada galería de fotos y las he nombrado numéricamente ( 1, 2, 3, etc.) para tratar de relacionarlas con el valor de la $id que es la que identifica cada proyecto en el XML.

el js. que carga las imágenes es este:

Código HTML:
// get current photo id from URL
var thisURL = document.location.href;
var splitURL = thisURL.split("#");
var photoId = splitURL[1] - 1;

// if no photoId supplied then set default
var photoId = (!photoId)? 0 : photoId;

// CSS border size x 2
var borderSize = 10;

// Photo directory for this gallery
var photoDir = "photos/1/";

// Define each photo's name, height, width, and caption
var photoArray = new Array(
	// Source, Width, Height
	new Array("IMG_0470.jpg", "600", "450" ,""),
	new Array("IMG_2441.jpg", "582", "350",""),
	new Array("IMG_2449.jpg", "600", "300",""),
	new Array("IMG_0677.jpg", "650", "488",""),
	new Array("P3220073.jpg", "600", "400","")
	);

// Number of photos in this gallery
var photoNum = photoArray.length;

/*--------------------------------------------------------------------------*/

// Additional methods for Element added by SU, Couloir
Object.extend(Element, {
	getWidth: function(element) {
   	element = $(element);
   	return element.offsetWidth; 
	},
	setWidth: function(element,w) {
   	element = $(element);
    	element.style.width = w +"px";
	},
	setHeight: function(element,h) {
   	element = $(element);
    	element.style.height = h +"px";
	},
	setSrc: function(element,src) {
    	element = $(element);
    	element.src = src; 
	},
	setHref: function(element,href) {
    	element = $(element);
    	element.href = href; 
	},
	setInnerHTML: function(element,content) {
		element = $(element);
		element.innerHTML = content;
	}
});

/*--------------------------------------------------------------------------*/

var Slideshow = Class.create();

Slideshow.prototype = {
	initialize: function(photoId) {
		this.photoId = photoId;
		this.photo = 'Photo';
		this.photoBox = 'Container';
		this.prevLink = 'PrevLink';
		this.nextLink = 'NextLink';
		this.captionBox = 'CaptionContainer';
		this.caption = 'Caption';
		this.counter = 'Counter';
		this.loader = 'Loading';
	},
	getCurrentSize: function() {
		// Get current height and width, subtracting CSS border size
		this.wCur = Element.getWidth(this.photoBox) - borderSize;
		this.hCur = Element.getHeight(this.photoBox) - borderSize;
	},
	getNewSize: function() {
		// Get current height and width
		this.wNew = photoArray[photoId][1];
		this.hNew = photoArray[photoId][2];
	},
	getScaleFactor: function() {
		this.getCurrentSize();
		this.getNewSize();
		// Scalars based on change from old to new
		this.xScale = (this.wNew / this.wCur) * 100;
		this.yScale = (this.hNew / this.hCur) * 100;
	},
	setNewPhotoParams: function() {
		// Set source of new image
		Element.setSrc(this.photo,photoDir + photoArray[photoId][0]);
		// Set anchor for bookmarking
		Element.setHref(this.prevLink, "#" + (photoId+1));
		Element.setHref(this.nextLink, "#" + (photoId+1));
	},
	setPhotoCaption: function() {
		// Add caption from gallery array
		Element.setInnerHTML(this.caption,photoArray[photoId][3]);
		Element.setInnerHTML(this.counter,((photoId+1)+'/'+photoNum));
	},
	resizePhotoBox: function() {
		this.getScaleFactor();
		new Effect.Scale(this.photoBox, this.yScale, {scaleX: false, duration: 0.3, queue: 'front'});
		new Effect.Scale(this.photoBox, this.xScale, {scaleY: false, delay: 0.5, duration: 0.3});
		// Dynamically resize caption box as well
		Element.setWidth(this.captionBox,this.wNew-(-borderSize));
	},
	showPhoto: function(){
		new Effect.Fade(this.loader, {delay: 0.5, duration: 0.3});
		// Workaround for problems calling object method "afterFinish"
		new Effect.Appear(this.photo, {duration: 0.5, queue: 'end', afterFinish: function(){Element.show('CaptionContainer');Element.show('PrevLink');Element.show('NextLink');}});
	},
	nextPhoto: function(){
		// Figure out which photo is next
		(photoId == (photoArray.length - 1)) ? photoId = 0 : photoId++;
		this.initSwap();
	},
	prevPhoto: function(){
		// Figure out which photo is previous
		(photoId == 0) ? photoId = photoArray.length - 1 : photoId--;
		this.initSwap();
	},
	initSwap: function() {
		// Begin by hiding main elements
		Element.show(this.loader);
		Element.hide(this.photo);
		Element.hide(this.captionBox);
		Element.hide(this.prevLink);
		Element.hide(this.nextLink);
		// Set new dimensions and source, then resize
		this.setNewPhotoParams();
		this.resizePhotoBox();
		this.setPhotoCaption();
	}
}

/*--------------------------------------------------------------------------*/

// Establish CSS-driven events via Behaviour script
var myrules = {
	'#Photo' : function(element){
		element.onload = function(){
			var myPhoto = new Slideshow(photoId);
			myPhoto.showPhoto();
		}
	},
	'#PrevLink' : function(element){
		element.onmouseover = function(){
			soundManager.play('beep');
		}
		element.onclick = function(){
			var myPhoto = new Slideshow(photoId);
			myPhoto.prevPhoto();
			soundManager.play('select');
		}
	},
	'#NextLink' : function(element){
		element.onmouseover = function(){
			soundManager.play('beep');
		}
		element.onclick = function(){
			var myPhoto = new Slideshow(photoId);
			myPhoto.nextPhoto();
			soundManager.play('select');
		}
	},
	a : function(element){
		element.onfocus = function(){
			this.blur();
		}
	}
};

// Add window.onload event to initialize
Behaviour.addLoadEvent(init);
Behaviour.apply();
function init() {
	var myPhoto = new Slideshow(photoId);
	myPhoto.initSwap();
	soundManagerInit();
}
espero que me haya explicado un poco mejor..Muchas gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:52.