Blog de sonicbyte

Opinión y tendencias sobre negocios, diseño y avances en Internet

Personalizar Mediabox y su uso en WordPress

18 August, 2009
mediabox-adv-002a-googlecod

En nuestros proyectos y también en nuestra web y blog, utilizamos el framework de javascript Mootools. Dentro de todas las opciones para crear modal dialogs al estilo Lightbox escogimos mediaboxadvanced de John Einselen (aka iaian7).
Su uso es muy sencillo y está bastante bien explicado en su web. Permite mostrar fotografías, contenido y videos de forma muy elegante y práctica. Las fotografías y videos pueden estar enlazados formando distintos sets de galerías y los videos pueden ser flash videos (flv) propios o estar colgados en páginas de servicios sociales de videos, como por ejemplo Youtube, Facebook, Flickr Video entre otros.

Ejemplo de una galería de fotografías, algunos proyectos de Sonicbyte:

Como puede apreciarse, los estilos del Mediabox original han sido modificados por nosotros creando un theme propio, también el código del javascript original ha tenido que ser retocado para lograr el theme. (comparar con los ejemplos en el sitio web del autor)

Hemos cambiado los colores, los botones para cerrar la ventana y navegar por las galerías, y el gif de la precarga. Una ventaja del estilo que utilizamos es que permite la inserción del logo de la empresa o web. Esto se logra creando un div en el cuerpo principal del modal (../js/mediabox/mediaboxAdv-1.0.5.js):

.
.
window.addEvent("domready", function() {
 // Create and append the Mediabox HTML code at the bottom of the document
 $(document.body).adopt(
 $$([
 overlay = new Element("div", {id: "mbOverlay"}).addEvent("click", close),
 center = new Element("div", {id: "mbCenter"})
 ]).setStyle("display", "none")
 );

 new Element("div", {id: "roroland"}).injectInside(center);
 image = new Element("div", {id: "mbImage"}).injectInside(center);
.
.

Luego en el css colocamos las siguientes reglas de estilo al div creado (../js/mediabox/css/mediaboxAdvSonic.css):

/* custom div containing logo */
#roroland{
 position: absolute;
 z-index: 9999;
 width: 100px;
 height: 100px;
 top: -30px;
 left: -40px;
 background-image: url(../images/logo.png);
 background-repeat: no-repeat;
}

Como comentaba el mediabox puede mostrar videos, en este caso es un video flv propio alojado en nuestro servidor:

video grosso 2009

Por último quería comentar sobre la utilización de este plugin de Mootools en WordPress. Para decidir si en un post se cargan los archivos del Mediabox (js y css) utilizamos un custom field como condicional al cual llamamos ‘has_mediabox’ y le damos el valor TRUE en caso de ser necesaria ésta carga. Esto garantizará que no se carguen archivos innecesarios en aquellos posts que no requieran el plugin. Los archivos del plugin pueden subirse a una carpeta llamada ‘mediabox’ dentro de la carpeta ‘js’ del theme, por lo que el template del header tendrá el siguiente fragmento de código:

<?php
if (is_single()) {
  if ($mediabox = get_post_meta($post->ID, 'has_mediabox', true)) {
    if ($mediabox == 'TRUE')
    { ?>
      <script type='text/javascript' src='<?php bloginfo('template_url'); ?>/js/mediabox/mediaboxAdv-1.0.5.js'></script>
      <link href='<?php bloginfo('template_url'); ?>/js/mediabox/css/mediaboxAdvSonic.css' rel='stylesheet' type='text/css' />
    <?php }
  }
}
?>

Bueno, esto es todo, espero que les sea de utilidad. Si se encuentran con problemas a la hora de utilizar Mediabox y no les alcanza la explicación de la página del autor pueden recudir a la página de discusión de los grupos Google (http://groups.google.com/group/mediaboxsupport?hl=en) o dejar un comentario.

Actualización (18/01/10):

Debido a la pregunta de Paolo me he dado cuenta que faltaba explicar que hay que comentar una línea del css del mediabox para que no corte el logo,  (../js/mediabox/css/mediaboxAdvSonic.css):

#mbCenter {
	position: absolute;
	z-index: 9999;
	left: 50%;
	/* overflow: hidden; */
	background-color: #006699;
	-moz-border-radius: 10px;
	-webkit-border-radius: 10px;
	-moz-box-shadow: 0px 10px 40px rgba(0,0,0,0.70);
	-webkit-box-shadow: 0px 10px 40px rgba(0,0,0,0.70);
}
Comentarios: 17
  • Pingback: Bitacoras.com

  • Pingback: Personalizar mediabox y su uso en WordPress | Sonicbyte Blog

  • Pingback: meneame.net

  • http://twitter.com/uepage uepage

    Excelente la modificacion, desgraciadamente no he podido hacer funcionar nada del media box, sera que me pueden ayudar un poco, o anviarme un archivo donde esten los css images y js y que vincule solo a un video de youtube para ver cual es mi error, por que lo he tratado de todas las formas que se y nada que me funciona.

  • http://twitter.com/uepage uepage

    Excelente la modificacion, desgraciadamente no he podido hacer funcionar nada del media box, sera que me pueden ayudar un poco, o anviarme un archivo donde esten los css images y js y que vincule solo a un video de youtube para ver cual es mi error, por que lo he tratado de todas las formas que se y nada que me funciona.

  • Enric

    Buenas, disculpa por la demora.

    El no funcionamiento del mediabox es muy común entre los usuarios que quieren comenzar con este plugin. Generalmente hay problemas con las rutas de inclusión de archivos (js, css) o las rutas de las imágenes en el css. Te aconsejo que para éste y demás problemas visites la página de discusión de google: http://groups.google.com/group/mediaboxsupport?lnk=srg&hl=en

    Si tienes algo subido y no funciona pasame la url que le echo una mirada. Igualmente te he subido un ejemplo de un link que muestra un video subido a youtube: http://www.sonicbyte.com/blog/wp-content/uploads/2009/11/mediabox.zip

    Suerte!
    enric

  • Enric

    Buenas, disculpa por la demora.

    El no funcionamiento del mediabox es muy común entre los usuarios que quieren comenzar con este plugin. Generalmente hay problemas con las rutas de inclusión de archivos (js, css) o las rutas de las imágenes en el css. Te aconsejo que para éste y demás problemas visites la página de discusión de google: http://groups.google.com/group/mediaboxsupport?…

    Si tienes algo subido y no funciona pasame la url que le echo una mirada. Igualmente te he subido un ejemplo de un link que muestra un video subido a youtube: http://www.sonicbyte.com/blog/wp-content/upload…

    Suerte!
    enric

  • paolo

    I tried this out but the overlay logo falls underneath or gets cut. I tried playing with the z-index values with no luck. Any ideas?

    • Enric

      Hi, do you have an uploaded example where I can see what you are doing?

      • Paolo

        Yep. Here you go (http://thesixthirty.com/works). Click on any of the thumbnails on that page and you’ll see that the logo gets cropped beyond the lightbox whitespace.

        • Enric

          Hi paolo, excuse me, I forgot to write in the post that it is necesary to comment a line in the mediabox css to avoid the logo cropping:

          #mbCenter {
          position: absolute;
          z-index: 9999;
          left: 50%;
          /* overflow: hidden; */
          background-color: #006699;
          -moz-border-radius: 10px;
          -webkit-border-radius: 10px;
          -moz-box-shadow: 0px 10px 40px rgba(0,0,0,0.70);
          -webkit-box-shadow: 0px 10px 40px rgba(0,0,0,0.70);
          }

          The overflow was causing the crop.

          I’m going to edit te post, thanks!

  • paolo

    I tried this out but the overlay logo falls underneath or gets cut. I tried playing with the z-index values with no luck. Any ideas?

  • Enric

    Hi, do you have an uploaded example where I can see what you are doing?

  • http://thesixthirty.com/ Paolo

    That did the trick. I guess I overlooked that hehe Many thanks. The logo overlay was a neat thing to do :D

  • Paolo

    Yep. Here you go (http://thesixthirty.com/works). Click on any of the thumbnails on that page and you'll see that the logo gets cropped beyond the lightbox whitespace.

  • Enric

    Hi paolo, excuse me, I forgot to write in the post that it is necesary to comment a line in the mediabox css to avoid the logo cropping:

    #mbCenter {
    position: absolute;
    z-index: 9999;
    left: 50%;
    /* overflow: hidden; */
    background-color: #006699;
    -moz-border-radius: 10px;
    -webkit-border-radius: 10px;
    -moz-box-shadow: 0px 10px 40px rgba(0,0,0,0.70);
    -webkit-box-shadow: 0px 10px 40px rgba(0,0,0,0.70);
    }

    The overflow was causing the crop.

    I'm going to edit te post, thanks!

  • http://thesixthirty.com/ Paolo

    That did the trick. I guess I overlooked that hehe Many thanks. The logo overlay was a neat thing to do :D