microTECHing
31Oct/110

No se ven los botones de close, prev, next de lytebox en IE8

Esto pasa con la versión 3.22 de lytebox.

No se ven ninguno de los botones (close, play, prev, next), ni tampoco el fondo oscuro del lightbox.

Para solucionarlo tenemos que hacer algunos cambios en la lytebox.css.

Se trata de pasar el estilo que se determina para un elemento en la subclase .gray a la clase principal.

Así, por ejemplo, el código:

#lbClose { width: 64px; height: 28px; float: right; margin-bottom: 1px;}
#lbClose.grey { background: url(../images/admin/close_grey.png) no-repeat; }

Pasaría a:

#lbClose { width: 64px; height: 28px; float: right; margin-bottom: 1px; background: url(../images/admin/close_grey.png) no-repeat;}
#lbClose.grey { background: url(../images/admin/close_grey.png) no-repeat; }

Esto lo tenemos que ir haciendo también para #lbPause, #lbPlay, y #lbOverlay.

Ojo con los #lbPrev, y #lbNext.

En este caso tendremos que incluir una linea como:

#lbNext:hover, #lbNext:visited:hover { background: url(images/next_grey.gif) right 15% no-repeat; }

Saludos!

Etiquetado con: , , , No hay comentarios
25Oct/111

Juego del ‘caza patos’ con Html5 y javascript

Juego cazapatos html5 y javascriptAdemás de que el juego es un clásico, de los que seguro que muchos de nosotros nos acordaremos por haber estrenado con él la pistola de la Nintendo (la de 8 bits), ahora nos servirá para algo un poco más didáctico como aprender html 5.

El creador del juego nos explica que es su primer juego hecho en javascript y que le ha costado alrededor de 18-20 horas y unas 500 líneas de código, usando jquery y spritely aunque algo modificado.

Nos comenta además, la problemática de llevar el juego al iPad.

Desde luego un ejercicio interesante.

A tener en cuenta si deseamos emprendernos en este tipo de aventuras.

http://mattsurabian.com/duckhunt/.

Etiquetado con: , , 1 Comentario
23Oct/112

Cambiar redirección Joomla cuando acceso no permitido

Por defecto, en Joomla, cuando clickamos en un ítem de menú, que es solo para usuarios registrados y no lo estamos, nos redirige a la pantalla de acceso (com_user, view login) con el texto “Usted debe loguearse primero”.

Es muy fácil que no queramos redirigir a esta página de Joomla, sino que queramos redirigir a la home, o a cualquier otro sitio.

Pues bien, para hacerlo, solo tenemos que modificar el archivo “application.php” de la carpeta ‘includes’, y más concretamente, la función “authorize” de la línea 195.

Concretamente, en la línea 209, podemos poner la url que queramos, y podemos dejar en la 210 que le agregue el parámetro de retorno si queréis.

Eso es todo.

Etiquetado con: , 2 Comentarios
20Oct/112

Concurrencia, bloqueo de código y semáforos en php

En ciertas ocasiones necesitamos que una parte de nuestro código se ejecute por solo un usuario a la vez.
Estos bloqueos de código los utilizamos para evitar problemas de concurrencia.
En php es posible implementar estos bloqueos mediante semáforos. (Ver semáforos en el manual de php)

El problema es que no siempre nuestro hosting viene con una versión estilo System V (--enable-sysvsem) compilada de php.

Si esto es así, podemos resolver el problema ejecutando el siguiente código:

if ( !function_exists('sem_get') ) {
    function sem_get($key) { return fopen(__FILE__.'.sem.'.$key, 'w+'); }
    function sem_acquire($sem_id) { return flock($sem_id, LOCK_EX); }
    function sem_release($sem_id) { return flock($sem_id, LOCK_UN); }
}

Con esto, ahora ya podemos usar las funciones de php para semáforos (sem_get(), sem_acquire(), sem_release())

Aquí os dejamos un ejemplo práctico de cómo usar los semáforos para obtener el siguiente número de pedido disponible y actualizar el pedido actual:

$sem_key = 12;
$sem_id = sem_get($sem_key, 1);
if (! sem_acquire($sem_id)) die ('Error esperando al semaforo.');


$ref = $model->getNextPedidoReference();
$pedido->referencia = $ref;
if (!$model->Update($pedido)){
    handle_error("Error guardando el pedido");
    return;
}


if (! sem_release($sem_id)) die ('Error liberando el semaforo');

De esta forma ya podemos estar seguros de que no se podrá dar el caso de que dos usuarios obtengan el siguiente número de pedido disponible a la vez y acabes teniendo dos pedidos con la misma referencia.

Happy coding!

20Oct/110

Prolongar las sesiones de tu web en Joomla indefinidamente

Si queremos que nuestras sesiones duren y duren como las pilas ‘duracell’, y que no se cierren nunca, al estilo Facebook... En Joomla, tenemos el plugin “Forever Sessions”.

Si lo necesitáis, probadlo y a ver qué os parece!

12Oct/110

Cómo hacer Nth-child cross browser

Muchos de vosotros conoceréis el selector css “nth-child”, y los que no lo conozcáis, pues deberías! xD.

Nos permite decir adiós a tener que ir marcando en el html los típicos ‘odd’ y ‘even’ como class en nuestras tablas y listados. Un simple “nth-child(2n+1)” y fuera! Nos ahorramos un montón de trabajo.

Podéis ver mejor como funciona en este artículo: http://css-tricks.com/5452-how-nth-child-works/
El problema de esto, como siempre, es que no es cross browser, y es nuestro amigo IE quien no se entera de esta propiedad… 🙁 Incluso en IE8!!

Como dice al final del artículo, para solucionar este tema, es posible usar jQuery, y así es!
Con una línea de jQuery, podemos obtener los mismos resultados que con la css, pero para todos los navegadores!!

Y aquí viene el valor añadido sobre el artículo anterior… El ejemplo que nos aclarará como es la cosa:

Css:
<<table.myclass tr:nth-child(2n+1) { background-color: #F6F6F6; }>>

jQuery:
<<$("table.myclass tr:nth-child(2n+1)").css("background-color", "#F6F6F6");>>

Espero que os sirva!