PHP

Detectar la resolución de pantalla en Drupal 6 y PHP en general

Aveces por misteriosos motivos de los que me da miedo hablar, necesitamos conocer la resolución de pantalla antes que se genere cualquier contenido.

El problema es que por lo menos yo no he encontrado ninguna forma limpia de hacerlo en PHP…

En fin, tuve que apañármelas con lo que tenía. Un poquito de HTML, otro poco de PHP, y una pizca de JavaScript.

Vamos a lo nuestro:

Primero creamos un archivo HTML con esta pinta:

<html>
    <head></head>
    <body></body>

    <script type='text/javascript'>
        /* <![CDATA[ */
            document.getElementsByTagName("body")[0].innerHTML = screen.width;
        /* ]]> */
    </script>
</html>

Guardamos como resolucion.htm. Lo único que hace es introducir en el body la resolución que SI puede obtenerse por javascript pero NO por PHP.

Segundo vamos a agregar a nuestro modulo en el hook_init las siguientes lineas. ¿Acaso olvide comentar que hay que implementar esto en un modulo….? Ya liberare un modulito súper simple para que no tengan que programarse uno ustedes ;)

mimodulo_init(){
    $_GLOBALS['resolucion'] = file_get_contents('ruta/hasta/mi/archivo/que/seguramente/lo/tengo/en/la/raiz/para/no/complicarme/la/vida/resolucion.htm');
}

Lo que hemos hecho es que en la carga del modulo (si está habilitado va a ejecutarse en todas las vistas) se setee en la variable global $_GLOBALS['resolucion'] con la resolucion que se impríma en el archivo html creado anteriormente.

y gualá, ya sabemos del lado de PHP cual es la resolución.

Antes que me critiquen lo vagamente seguro que es este codigo y lo poco elegante, he de alegar en mi defenza que lo implementé hace unas horas con mucho mas amor y elegancia y seguridad que lo expuesto en este post, pero ya es tarde, estoy cansado, y la vida es muy corta como para dedicarle tanto esmero a un apunte “personal” :) .

Que  lo disfruten!.

</html>

Tags: , ,

Martes, Octubre 20th, 2009 Drupal 6, PHP, Programación 50 comentarios