Cambiando la apariencia: temas y sub-temas

Sigo investigando el funcionamiento de drupal y hoy me toca empezar a jugar con la visualización de la web.

Tal y como está estructurado drupal, el funcionamiento es a base de temas ("themes"), que puedes instalar y después configurar. Hay una buena cantidad de temas pero me decanto por un tema sobre el que crear sub-temas: Zen.

Dada la estructura de rutas de drupal, los temas hay que instalarlos en la ruta /sites/all/themes. En vez de tener que o bien descargar un tema ya creado o bien hacer un tema desde cero, el tema Zen está especialmente preparado para ser extendido mediante sub-temas. Es decir, te proporciona una base sobre la que trabajar, y como esto va de ser lo más productivo posible, es perfecto.

Supongamos que voy a crear un nuevo tema llamado "mitema". Para crear una sub-tema, lo primero que hay que hacer es copiar el contenido a /sites/all/themes/zen/STARTERKIT a una nueva ruta, por ejemplo, /sites/all/themes/mitema. Posteriormente hay que renombrar el fichero STARTERKIT.info.txt por mitema.info. Este fichero es el que indica a drupal la información del tema para que lo pueda cargar correctamente.

Tras esto, hay que modificar el contenido de los ficheros:
- mitema.info: aquí deberemos añadir la información que identifica nuestro tema.
- template.phpcambiar en todos los lugares donde indica STARTERKIT por el nombre de nuestro tema.
- theme-settings.phpcambiar en todos los lugares donde indica STARTERKIT por el nombre de nuestro tema.

El siguiente paso es subirlo al servidor y activarlo (menú de "Administración >> Apariencia"). Y... la verdad es que es muy feo :). No sé por qué pensaba que sería algo más bonito...

Así que, antes de tener que empezar a tocar ficheros CSS y demás, lo que hago es buscar un sub-tema de Zen ya creado y ver cómo queda. Me quedo, por el momento con CTI Flex. Esto me permitirá ver el código en caso de que necesite alguna referencia.

Por lo que he podido investigar hasta el momento, los temas se basan en el uso de dos tipos de ficheros:

- Ficheros CSS, donde almacenar los estilos.

- Ficheros de plantilla ("templates"), que son ficheros PHP que indican cómo se ha de formatear la salida, es decir, son los que escriben el HTML que se le devuelve al usuario. Como es lógico, es modular por lo que cada tipo de objeto tendrá su propio fichero de plantilla. Los ficheros por plantilla que utiliza zen por defecto se encuentran en la ruta /sites/all/themes/zen/STARTERKIT  pero no hace falta sobre-escribir todos. Revisando el código del tema CTI Flex únicamente hay reescritos los ficheros block.tpl.php, html.tpl.php, node.tpl.php y page.tpl.php. Supongo que tendré que re-escribir alguno si quiero algún comportamiento muy concreto.

Aunque con el tema en CTI Flex la web se ve bastante mejor, tiene bastantes detalles mejorables: a simple vista no hay espacio entre el borde izquierdo del navegador y el texto (padding o margin) y los tags de los artículos ahora salen en vertical así que lo siguiente será modificar a gusto los ficheros CSS de este tema.