en: Sin categoría
Hoy en día proliferan en la red los sitios “tipo iGoogle“, este tipo de diseños son muy prácticos a la hora de tener un portal con capas móviles y que se puedan reposicionar al estilo de los portales citados (Netvibes, iGoogle).
Prototype Portal Class es una librería Javascript muy interesante para facilitarnos el desarrollo de este tipo de aplicaciones.
Esta demo está testeada para funcionar en Safari, Firefox, Opera e IE 6/7, como cabe esperar esta librería se basa en el uso de la potente Prototype, más en concreto en la versión Prototype 1.5.1.1. Si alguien todavía no sabe ¿Qué es Prototype?… es un framework basado en JavaScript que se orienta al desarrollo sencillo y dinámico de aplicaciones web con el uso de técnicas Ajax.
Para crear y personalizar “nuestro Portal” tendremos que seguir unos sencillos pasos:
Para el correcto funcionamiento del portal necesitaremos hacer las llamadas para incluir las librerías necesarias, estos archivos se incluyen en la cabecera de nuestro HTML.
<link rel="stylesheet" href="page.css" type="text/css" media="screen" charset="utf-8" /> <link rel="stylesheet" href="default.css" type="text/css" media="screen" charset="utf-8" /> <script type="text/javascript" src="prototype.js"></script> <script type="text/javascript" src="effects.js"></script> <script type="text/javascript" src="builder.js"></script> <script type="text/javascript" src="dragdrop.js"></script> <script type="text/javascript" src="portal.js"></script>
Una vez cargadas las librerías necesarias tenemos que crear las capas que usarán las funciones de las librerías y que compondrán la estructura básica de nuestro portal. Estas capas como se puede ver en el ejemplo se pueden reposicionar dentro de la página.
Tendremos una capa principal con tres columnas:
<div id="page"> <div id="widget_col_0"></div> <div id="widget_col_1"></div> <div id="widget_col_2"></div> </div>
Ahora que ya tenemos la estructura básica del portal creada tenemos que definir el comportamiento de cada uno de los bloques.
function init() {
portal = new Xilinus.Portal("#page div", {onOverWidget: onOverWidget,
onOutWidget: onOutWidget, onChange: onChange, removeEffect: Effect.SwitchOff});
portal.add(new Xilinus.Widget().setTitle("Widget #1.0").setContent(latin1), 0);
portal.add(new Xilinus.Widget().setTitle("Widget #1.1").setContent(latin2), 0);
portal.add(new Xilinus.Widget().setTitle("Widget #1.2").setContent(latin3), 0);
portal.add(new Xilinus.Widget().setTitle("Widget #2.0").setContent(latin2
+ latin3), 1);
portal.add(new Xilinus.Widget().setTitle("Widget #2.1").setContent(latin3), 1);
portal.add(new Xilinus.Widget().setTitle("Widget #1.4").setContent(latin1 +
latin2 + latin3), 2);
// Añadir botones de control
portal.addWidgetControls("control_buttons");
}
Event.observe(window, "load", init);
Ya deberíamos tener nuestro portal practicamente funcionando, sólo nos queda darle la apariencia que deseemos. En este punto únicamente debemos tocar las hojas de estilo.
Estos son los estilos originales y los que debemos modificar para cambiar la apariencia de nuestro portal, se encuentran en “default.css”, para otras modificaciones tendremos que tocar en “page.css”:
.widget_nw {
background:transparent url(default/top_left.gif) no-repeat;
height:30px;
}
.widget_w {
border-left:1px solid #B9B9B9;
margin-left:5px;
}
.widget_sw {
background:transparent url(default/bottom_left.gif) no-repeat;
height:15px;
}
.widget_title {
background: url(default/top_right.gif) repeat-x right top;
color:#123456;
font:bold 14px/25px Tahoma, Arial, sans-serif;
height:26px;
margin:0 0 0 15px;
padding:5px 0 0 0 ;
text-align:center;
margin-left:15px;
}
.widget_content {
background-color:#FDFDFD;
color:#71777A;
font:normal 12px/1em Tahoma, Arial, sans-serif;
overflow:hidden;
padding:5px;
border-right:1px solid #B9B9B9;
margin-right:5px;
}
.widget_statusbar {
background:transparent url(default/bottom_right.gif)
repeat-x right top;
font-size:8px;
height:15px;
margin-left:11px;
}
.widget_draggable {
cursor:move;
}
.widget_ghost {
background:#FFF;
opacity: 0.5;
filter:alpha(opacity=50);
position:relative;
border: 3px dashed #F00;
margin:0px;
padding:0;
}
Las funcionalidades de este ejemplo son algo básicas, se pueden arrastrar y soltar los bloques y se pueden eliminar por medio de un enlace en la barra de título de cada uno de ellos.
Demo | Portal de prueba
iGoogle | iGoogle
6 Respuestas a Crea tu propio iGoogle con Prototype
manu
8 de Enero de 2008 a las 5:15 pm
Si claro Felix por favor envíamelo a mi correo
… lo pruebo y os lo comento si funciona este y otras pequeñas aplicaciones desarrolladas con prototype que la verdad para algunas cosas es una opción más que recomendable.
Saludos y muchas gracias
regalado
18 de Marzo de 2008 a las 12:53 pm
Hola, cómo se haría para guardar los cambios de sitio de las capas que haya hecho el usuario? Es decir, he probado el ejemplo y me funciona correctamente, muevo las capas y tal, pero si cierro y vuelvo a entrar me lo encuentro como está por defecto.
Si me podeis orientar lo agradecería!
Saludos y gracias.
jovix
11 de Marzo de 2008 a las 9:05 am
Hola podrias poner un link para descargar la aplicación completa. No he podido hacerla funcionar
Saludos
jovix
jovix
11 de Marzo de 2008 a las 9:05 am
Hola podrias poner un link para descargar la aplicación completa. No he podido hacerla funcionar
Saludos
jovix
felix
8 de Enero de 2008 a las 4:56 am
Hola,
para mi gusto el prototype es muyyy pesado. una vez buscando por ahi encontré un mini-prototype, de unos 20 KB (todo lo que he hecho con prototype, lo sustituyo despues por este y ha funcionado) si quieres te lo mando para que pruebes el ejemplo con él a ver si funciona, lo bajariamos de 97 KB a 19-20KB, que eso para carga de página es mucho KB.