Expertos en Symfony y Drupal

Skins elegibles y personalizados en Drupal 7

Buenas drupaleros,

en algunas ocasiones los clientes nos piden cambiar tipografías, colores o tamaños constantemente. O simplemente les apetece dar un nuevo look a su web. Para ello tenemos que cambiar las CSS y subirlas al servidor. Si esta situación se produce de forma asidua, puede llegar a ser tediosa

Para ello una buena solución es hacer un selector de skin, y que sea el propio cliente el que cambie todas las veces que quiera su web, aplicando uno u otro skin. Estos skin serán ficheros CSS que se cargarán según desee el administrador.

En estos CSS podremos incluir todo lo que queramos, desde un cambio de color a las fuentes a un rediseño total de la web. Aunque el ahorro de trabajo con esta técnica no es mucho, dado que lo laborioso es el desarrollo del fichero CSS; es una técnica útil porque será el cliente el que “pase a producción” estos cambios.

En Drupal es muy sencillo. Lo primero y lo más engorroso sin duda es crear los ficheros CSS. A continuación, debemos crear un fichero theme-settings.php que contendrá algo similar a esto:


function mitema_form_system_theme_settings_alter(&$form, &$form_state) {
  $form['theme_settings']['tema'] = array(
    '#type' => 'select',
    '#title' => t('Tema'),
    '#options' => array(t(' Selecciona un tema'), t('Tema Azul'), t('Tema Rojo'), t('Tema Amarillo'), t('Tema Marrón'),t('Tema Negro')),
    '#default_value' => theme_get_setting('tema'),
  );
}

Con esto conseguimos que nuestra página de administración del tema tenga un desplegable con las distintas opciones de skin (admin/appearance/settings)

Lo siguiente será crear un CSS por cada Skin, en este caso cinco.

Seguidamente en el template.php con la función preprocess_page, cargamos el skin seleccionado desde la la administración del tema.


function mitema_preprocess_page(&$vars){
  $tema = theme_get_setting('tema');
  if($tema == 1){    
      drupal_add_css(drupal_get_path('theme', 'mitema') .'/css/temaazul.css', array('group' => CSS_THEME, 'type' => 'file', 'weight' => -100));
    }
  if($tema == 2){    
      drupal_add_css(drupal_get_path('theme', 'mitema') .'/css/temarojo.css', array('group' => CSS_THEME, 'type' => 'file', 'weight' => -100));
    }
}

Con esto añadimos el CSS seleccionado a nuestra web.

Es un proceso muy sencillo y que permitirá a nuestro cliente/administrador elegir un skin diferente siempre que quiera.

Espero que os haya servido de ayuda.

[x] Este sitio utiliza cookies para mejorar tu experiencia de usuario. Al continuar navegando estás aceptando su uso. Política de cookies.