Blogia

nadaxmenos

Variación en los CSS usando PHP

Como muchos de vosotros sabreis el CSS (Hojas de estilo en cascada) es un lenguaje que carece de variables. En david walsh blog se ha pensado en tratar de hacer el lenguaje mas dinámico.

El CSS
En cualquier archivo CSS nos podemos encontrar algo parecido a esto:

  1. * { margin:0; padding:0;}
  2. body { color:$body_text_color; font-size:$body_font_size;}

Este pequeño script lo hemos llamado default.css. Para aquellos que no esten familiarizados con el PHP, decir que cualquier cadena a la que se anteponga el simbolo $ es una variable.

El PHP

  1. /* obtenemos el stylesheet */
  2. $stylesheet = @is_file($_GET[’stylesheet’]) && strtolower(substr(strrchr($file_name,’.’),1)) == ’css’ ? $_GET[’stylesheet’] : ’default.css’;
  3. /* colocamos la información de la cabecera */
  4. //saldra como un CSS
  5. header(’Content-type: text/css’);
  6. // damos una fecha de caducidad
  7. $days_to_cache = 10;
  8. header(’Expires: ’.gmdate(’D, d M Y H:i:s’,time() + (60 * 60 * 24 * $days_to_cache)).’ GMT’);
  9. /* colocamos la información dinámica */
  10. //información por defecto del CSS
  11. $default = array(
  12. ’body_font_size’ => ’16px’,
  13. ’body_text_color’ => ’#00f’
  14. );
  15. //información de la variable roja de CSS
  16. $red = array(
  17. ’body_font_size’ => ’10px’,
  18. ’body_text_color’ => ’#f00’
  19. );
  20. /* extraemos la información de las propiedades del array */
  21. extract($_GET[’theme’] && ${$_GET[’theme’]} ? ${$_GET[’theme’]} : $default);
  22. /* cargamos el stylesheet */
  23. $content = preg_replace(’/$([w]+)/e’,’$1’,@file_get_contents($stylesheet));
  24. /* lo ejecutamos*/
  25. echo $content;


Tratemos de entender que es lo que hace este script:

  1. Comprobaremos si tenemos un archivo de hojas de estilos. Si no es asi,usaremos el CSS por defecto, default.css. También se comprobará que es un archivo de extensión ".css" y que existe realmente.
  2. Colocamos la cabecera, que incluirá: el tipo de contenido, que será del tipo "text/css", y se recomienda una fecha de caducidad, por temas de caché.
  3. Crearemos los indices con su valor de la variables que vayamos a usar. Estas "clave => valor" son guardadas en Arrays para tener la opción de elegir diferentes temas. En este ejemplo tenemos default y red.
  4. Comprobaremos si tenemos un archivo del tema. Si no usaremos el de por defecto, $default.
  5. Leera el archivo y reemplazará todas las cadenas que empiecen por $ por el valor especificado en el archivo PHP del tema.
  6. Realizamos un echo para sacarlo por pantalla y fin de la historia.

El USO



El RESULTADO

  1. *{ margin:0; padding:0; }
  2. body{ color:#00f; font-size:16px; }

Y por fin las variables son remplazadas por sus valores en la salida.

Bienvenido

Ya tienes weblog.

Para empezar a publicar artículos y administrar tu nueva bitácora:

  1. busca el enlace Administrar en esta misma página.
  2. Deberás introducir tu clave para poder acceder.


Una vez dentro podrás:

  • editar los artículos y comentarios (menú Artículos);
  • publicar un nuevo texto (Escribir nuevo);
  • modificar la apariencia y configurar tu bitácora (Opciones);
  • volver a esta página y ver el blog tal y como lo verían tus visitantes (Salir al blog).


Puedes eliminar este artículo (en Artículos > eliminar). ¡Que lo disfrutes!