Manejar Jquery Thickbox desde javascript

April 14th, 2010
Estoy trabajando en un proyecto donde utilizo la clásica Thickbox. Y por vez número mil tuve que averiguar como manejar las ventanitas desde javascript (vaya a saber uno por qué, en la web del plugin no hay ninguna documentación sobre esto). Así que para evitarme esta tarea en el futuro, decidí tirar un minipost y luego venir a buscar la info acá.

Es simplemente utilizar la función:
tb_show(caption, url, imageGroup)

El tercer parametro es opcional, y es basicamente un array de imagenes para mostrar un slideshow.

En la url se pueden pasar los parametros para customizar la venta (height, width, TB_iframe, etc);

Era eso noma’

mstekl

Nueva versión: Plugin jQuery para filtrar contenido tablas

December 18th, 2009
A pedido de varios lectores, hice una pequeña modificación sobre el plugin de jquery que habia posteado anteriormente. Con esta versión se pueden combinar los filtros de varias columnas, tal como se hace en excel.

En este link: http://stekl.org/stuff/jqueryTableFilter-0.2/ podran ver un ejemplo funcionando.
La implementación es igual a la versión vieja, pueden ver el otro post acá.

Descargar jquery.tableFilter.js

Muchas graciaasss y feliz navidad para todos :)

mstekl

en pocos dias

August 19th, 2009
En pocos dias pondre online un sitio donde podran encontrar autos a la venta en automotoras de Montevideo: http://www.miautomotora.com.uy/
Espero que sea de utilidad para aquellos que estan buscando cambiar o comprar un auto nuevo o usado.
Mas noticias en pocos dias :D

saludos

mstekl

Extendiendo Zend Framework Router

April 13th, 2009

Actualmente estoy desarrollando un sitio no muy grande, donde tengo varias funcionalidades del estilo listado de articulos, buscador, pagina de detalles de un articulo determinado, etc. Lo interesante es que también necesito tener un mini-cms, donde el cliente edite el contenido de una determinada página y la misma quede pública para los visitantes del sitio. El asunto es que las urls que utilizamos para ZF son del estilo sitio.com/modulo/controller/action. En mi caso, si el visitante quisiera acceder a la clásica página “Sobre Nosotros” deberia ir a una url del estilo: www.sitio.com/cms/ver/sobre-nosotros. Pero el cliente me pidió que la url sea algo asi: www.sitio.com/sobre-nosotros, lo cual obviamente iba un poco en contra del routeo estandar de ZF.


Me puse a googlear, e investigando un poco llegué a la siguiente solucion (no investigué mucho, por lo que calculo que capaz que hay alguna solución un poco mejor).


Básicamente lo que hice es extender el Zend_Controller_Router_Rewrite y fijarme si se puede dispatchear la url usando el esquema predefinido de ZF, si no se puede dispatchear seteo un controller y un action por defecto que se va a encargar de procesar el contenido del mini-cms. O sea, si me llega www.sitio.com/sobre-nosotros directamente voy a llamar al action ver del controller cms.

El código del router personalizado sería el siguiente:


class Stekl_Controller_Router_MiRouter extends Zend_Controller_Router_Rewrite
 
{
 
public function route(Zend_Controller_Request_Abstract $request)
 
{
 
$request = parent::route($request);
 
$dispatcher = $this->getFrontController()->getDispatcher();
 
if(!$dispatcher->isDispatchable($request)){
 
$request->setParam('pagina', $request->getControllerName());
 
$request->setControllerName('cms');
 
$request->setActionName('ver');
 
}
 
return $request;
 
}
 
}">(.*?)


No tiene nada complejo el router, simplemente lo que hago es obtener el request, luego el dispatcher y finalmente fijarme si se puede dispatchear. Si no se puede, creo un parámetro “pagina” con el valor que vino en lugar del nombre del controller. Finalmente seteo el controller y el action donde va a ocurrir la magia de interpretar el “sobre-nosotros” que me vino.


No termine aún, todavía falta decirle al Front Controller que use el router que acabo de escribir en lugar del que viene por defecto con ZF. Para ello en el bootstrap escribo lo siguiente:


$frontController = Zend_Controller_Front::getInstance();
 
$router = new Stekl_Controller_Router_MiRouter();
 
$frontController->setRouter($router);
 
$frontController->dispatch();">(.*?)


Y listo, con esto debería salir funcionando. Obviamente se podrian armar cosas un poco más elaboradas. Pero para lo que necesito me funciona.


mstekl

Recopilacion de tutoriales Zend Framework

February 13th, 2009
Dando vueltas por la web encontre una genial recopilacion de tutoriales de Zend Framework. Tiene algunos para quiens recien comienzan a usar ZF y tiene otros que no son tan basicos. Espero que sirvan para algo:

Getting Started

Zend Framework Quick Start - Por Aldemar Bernal & Bradley Holt

Getting Started with Zend Framework – Por Rob Allen

Zend Framework Intro Step Por Step Tutorial – Por phpeverysday.com

Setting up Zend Framework applications with Phing – Por Raphael Stolt

Migrating to Zend Framework: Legacy Scripts – Por Chris Abernethy


Zend_Acl

Experience with Zend_Acl and usage example – Por Jeremy Knope

Zend_Acl and storing roles and resources in a DB – Por Jani

Zend ACL usage – Por Nick Halstead

Why you need a Zend Framework ACL and Cache GUI – Por Nick Halstead

Zend_Acl / Zend_Auth example scenario – Por Cal Evans


Zend_Auth

Login and Authentication – Por Matthew Weier O’Phinney

Getting Started with Zend_Auth – Por Rob Allen

Zend_Auth and the OpenId Adapter - Por Cal Evans


Zend_Controller

Zend Framework Action Step Por Step Tutorial – Por phpeverysday.com

Action Helpers in Zend Framework – Por Matthew Weier O’Phinney

Front Controller Plugins in Zend Framework – Por Matthew Weier O’Phinney

Extending the Router for custom routing

Benchmarking Zend Framework Routes – Por Chris Abernethy

Actions, now with parameters - Por Zend Developer Zone


Zend_Db

Zend Framework Hidden Gems: Zend_Db – Por Zend Developer Zone

Database Abstraction with Zend_Db (Part 1) - Por Alan

Database Abstraction with Zend_Db (Part 2) – Por Alan

Zend Framework Database Step Por Step Tutorial – Por phpeverysday.com

Integrating Zend Framework and Doctrine – Por Ruben Vermeersch


Zend_Feed

Getting Started With Aggregating RSS/Atom Content – Por Pádraic Brady

Syndicate content with Zend Framework Zend_Feed classes – Por Alex Netkachov

Parsing tags with Zend Feed – Por Henrik Sarvell

Using Zend_Feed to Merge Multiple RSS Feeds – Por Arik Fraimovich


Zend_Form

Simple Zend_Form Example – Por Rob Allen

Simple Zend_Form File Upload Example – Por Rob Allen

Zend_Form Advanced Features – Por Matthew Weier O’Phinney


Zend_Layout / Zend_View

Zend_Layout and Zend_View Enhancements Demo – Por Ralph Schindler

Simple Zend_Layout Example – Por Rob Allen

Using Zend_View Placeholders to Your Advantage – Por Matthew Weier O’Phinney


Zend_Log

Application-level Logging with the Zend Framework – Por Stefan Koopmanschap

Zend_Log revisited – Por Raphael Stolt

Developing a simple Zend_Log_Filter – Por Raphael Stolt

Zend_Mail

Sending Emails with the Zend Framework – Por Alan


Zend_Registry

Zend Registry Step Por Step Tutorial – Por phpeverysday.com


Zend_Search

Zend Search Lucene (part 1, 2, 3 and 4) – Por Ganesh H S.

Zend_Search (Java Lucene) - Por Natalie Kather


Zend_Validate

Checking Input with Zend_Validate – Por Alan


Zend_XmlRpc

Zend_XmlRpc_Client and session support – Por David Goodwin

Soap, XmlRpc and Rest with the Zend Framework – Por Andrew Johnstone


Web Services

Teaching the Zend REST server to talk JSON – Por Raphael Stolt

RESTful Web Services with Zend Framework – Por Pádraic Brady

Accessing the Google Base data API using Zend – Por Google

ClientLogin Authentication for Zend GData

Automating Amazon research with the ZF – Por W. Jason Gilmore


Unit Testing

The PHPSpec Zend Framework App Testing Manifesto – Por Pádraic Brady

An Introduction to the Art of Unit Testing in PHP – Por Pádraic Brady

mstekl

Plugin de Jquery para filtrar filas de una tabla

February 5th, 2009
Mi amigo Sebastián (smart) me pidió que le dé una manito con un pequeño javascript para realizar filtros sobre las filas de una tabla, al estilo excel. Así que desempolve mis viejos conocimientos sobre jquery y arme un plugin que agarra una tabla y le agrega selects en cada columna y los llena con los valores diferentes de las filas.

Aca pueden ver un ejemplo

La utilizacion es bastante simple. Tan solo hay que incluir los js nesesarios:
<script src="jquery.selectboxes.js" type="text/javascript"></script> 
<script src="jquery.tableFilter.js" type="text/javascript"></script> 

Y luego ejecutar el metodo del plugin pasandole la tabla donde se va a aplicar:
<script type="text/javascript"><!--
 
	    $(document).ready(function(){
 
			    $("#tabla").tableFilter();
	    });
 
 
// --></script> 

La tabla tiene que estar formada de la siguiente manera:

Columna1Columna2Columna3
Valor1Valor2Valor3
Valor4Valor5Valor6
eso es todo

Bueno, con eso bastaria. Es una version bastante sencilla, si alguien la mejora, por favor avise :)

Actualización: Pueden encontrar una nueva versión de este plugin en: http://blog.stekl.org/2009/12/nueva-version-plugin-jquery-para-filtrar-contenido-tablas/

Gracias por los comentarios.




mstekl

Aplicaciones 3D en Flash y un tutorial Básico de Papervision 3D

January 23rd, 2009
Hace tiempo tengo ganas de empezar a escribir pequeños tutoriales sobre cosas entretenidas. Y una de las cosas mas entretenidas que descubrí en el ultimo año es la posibilidad de crear aplicaciones 3D en Flash. He visto sitios en 3d interactivos que me han dejado con la boca abierta. Hay un blog que se dedica a buscar y postear diariamente sitios en 3D buenos : Daily Papervision3D

Existen varios motores 3D que podemos utilizar: Away3D, Sandy, Five3D, Papervision3D, entre otros… En mi caso elegi papervision3D, ya que durante el año pasado estuve trabajando con él. Bueno, arranquemos con el breve tutorial…

Lo que vamos a hacer es lo siguiente:

(Either JavaScript is not active or you are using an old version of Adobe Flash Player. Please install the newest Flash Player.)
package  
{
 import flash.events.Event;
 import org.papervision3d.materials.utils.MaterialsList;
 import org.papervision3d.materials.WireframeMaterial;
 import org.papervision3d.objects.primitives.Sphere;
 import org.papervision3d.view.BasicView;
 import org.papervision3d.objects.primitives.Cube;
 
 [SWF(width="640", height="480", backgroundColor="#FFFFFF", frameRate="60")]
 public class HolaMundo extends BasicView
 {
    private var cubo:Cube;
 
    public function HolaMundo() 
    {
       var materiales:MaterialsList = new MaterialsList();
       materiales.addMaterial(new WireframeMaterial(), "all");
 
       cubo = new Cube(materiales);
       scene.addChild(cubo);
 
       camera.y = 500;
       camera.lookAt(cubo);
 
       startRendering();
 
    }
 
    override protected function onRenderTick(event:Event = null):void 
    {
       cubo.yaw(1);
       renderer.renderScene(scene, camera, viewport);
    }
 
 }
 
}

Vamos a ver parte por parte este código:

public class HolaMundo extends BasicView

En este caso nuestro document class esta extendiendo a BasicView. Por que? Bueno, cuando creamos algo en PV3d debemos encargarnos de crear y manejar diferentes objetos necesarios para redenderear el mundo 3d, ellos son: la escena, el viewport y la camara. Bueno, la gracia es que toda eso ya esta hecho dentro del BasicView, por lo cual al principio no debemos preocuparnos por esto. En este blog se puede leer un poco mas sobre el BasicView.

Luego, dentro de nuestro constructor tenemos:

var materiales:MaterialsList = new MaterialsList();
materiales.addMaterial(new WireframeMaterial(), "all");
cubo = new Cube(materiales);
scene.addChild(cubo);

Aqui estamos creando un cubo con determinado material (el wireframe es tan solo uno de los diferentes materiales que le podemos asignar a los objetos en pv3d, recomiendo mirar la documentacion para conocer mas sobre el tema materiales). Luego de creado el cubo lo debemos agregar como child de la escena que vamos a renderear. Si quieres que se muestren los objetos en pv3d, debes agregarlos a la escena. Tal cual lo haces usualmente con los sprites.

camera.y = 500;
camera.lookAt(cubo);
startRendering();

Bueno, el cubo ya esta en la escena. Lo que hacemos ahora es subir la camara al y=500, y luego la hacemos mirar al cubo que creamos anteriormente. Con esto logramos un angulo para apreciar mejor el efecto 3D. Ya tenemos todo listo, ahora empezamos a renderear. El startRendering agrega un eventListener al enter frame y llama a onRenderStick.

override protected function onRenderTick(event:Event = null):void 
{
 cubo.yaw(1);
 renderer.renderScene(scene, camera, viewport);
}

Para lograr la rotacion del cubo, lo que hacemos es girarlo 1 grado en cada frame con el yaw(1). Y luego rendereamos la escena usando la camara y el vierport del BasicView. En lugar de este ultima linea tambien podriamos usar super.onRenderStick(event).

Bueno, con esto tendriamos nuestro primer ejemplo de papervision funcionando. Para ver mas tutoriales de papervision recomiendo pegarse una vuelta por pv3d.org.

Muchas gracias

mstekl

Richard Stallman Guantanamero

January 22nd, 2009
Richard Stallman cantando una canción basada en la musica de Guantanamera, cantada en español.
Me asombra la buena onda que tiene este hombre. Y lo bien que se maneja hablando en español.

mstekl

Varias aplicaciones web para diseñadores

January 20th, 2009
A través de alt1040 llegué a esta seleccíon de aplicaciones web útiles al momento de pensar algún diseño.  La recopilación fué hecha por Six Revisions, un sitio que vale la pena revisar, pues tiene muchos recursos interesantes para el armado de sitios web.

mstekl

Efecto Dave Hill

May 4th, 2008
Hace unos dias me tope con este post en dZoom, donde se explica como llegar a un efecto parecido al de Dave Hill .

Dejo un ejemplo hecho por mi.
OriginalProcesada
OriginalProcesada
Enjoy!

mstekl