Problemas entre mootools y API de facebook en Internet Explorer

programacion

Nos hemos encontrado con el problema de que la librería de validaciones de joomla basada en mootools había dejado de funcionar en IE7 y IE8 silenciosamente.

Y decimos silenciosamente, porque no había ningún error javascript en la consola de Internet Explorer.

Esto nos ocurría en una web en joomla que cargaba la librería 1.12 de mootools y el ‘validate.js’ del framework de Joomla 1.5 basado en mootools.

Eliminando código a lo bestia de nuestro ‘index.php’, dimos con que el problema estaba en la carga del API de facebook.

Estábamos cargando el api en el ‘body’ de la siguiente manera:

<div id="fb-root"></div>
<script src="http://connect.facebook.net/es_ES/all.js"></script>
<script type="text/javascript">
        FB.init({appId: '116864551700695', status: true, cookie: true, xfbml: true});
</script>

Para solucionar el problema, dejamos en el ‘body’ solo el div «fb-root’, y el javascript nos lo llevamos al ‘head’ de esta forma:

<script language="javascript" type="text/javascript" src="http://connect.facebook.net/es_ES/all.js"></script>
<script type="text/javascript">
window.addEvent('domready', function() {
        FB.init({appId: '116864551700695', status: true, cookie: true, xfbml: true});
});
</script>

Lanzando el fb.init cuando el dom esta completo, la validación de mootools vuelve a funcionar correctamente, y las funciones de facebook, también.

Espero os ayude!

Validar required en inputs de tipo file en Joomla

Joomla

Si has llegado a este post posiblemente es que has observado que el validador mediante mootools que trae Joomla por defecto, no funciona bien con los inputs de tipo ‘file’.

Para solucionarlo, añadiendo esta funcionalidad, debemos editar el archivo ‘media/system/js/valídate.js’ y en la línea 87 reemplazar el primer ‘if’ por este:

if ($(el).hasClass('required')) {
    if (!($(el).getValue()) && ($(el).type != 'file')) {// Exluimos los inputs de type 'file'
        this.handleResponse(false, el);
        return false;
    }
    // Validación de los inputs de type 'file'
    if (($(el).type == 'file') && ($(el).value == '')){
        this.handleResponse(false, el);
        return false;
    }
}

Esperamos que os sea de ayuda.

Clase para validar fechas y horas por javascript

javascript

Con esta clase javascript, la validación de fechas y/o horas será pan comido.

Se controla si la fecha es en formato europeo o de estados unidos. Controla el número de días que tiene casa mes, e incluso controla el número de dias del mes de febrero, según si el año es bisiesto o no.

Aquí teneis el fichero para descargar: date_validator

Y aquí os dejamos el código completo:

Seguir leyendo