it-swarm-es.com

¿Cómo hacer un estilo CSS basado en taxonomía usando template.php?

Estoy deseando implementar estilos CSS basados ​​en términos de taxonomía; especialmente para la etiqueta del cuerpo a la que quiero agregar los términos actuales.

Esto es lo que tengo hasta ahora:

function _phptemplate_variables($hook, $vars = array()) {
  global $node;

  switch ($hook) {
    case 'page':
      // die ('test');
      $vars['body_class'] = '';
      if (arg(0) == 'taxonomy' && arg(1) == 'term' && is_numeric(arg(2))) {
        $vars['body_class'] = 'theme' . arg(2);
      }
      if (arg(0) == 'node' && is_numeric(arg(1))) {
        $node = node_load(arg(1));

        if (is_array($node->taxonomy)) {
          foreach ($node->taxonomy as $term) {
            $vars['body_class'] .= 'theme'.$term->tid;
          }
        }
      }

      if (drupal_is_front_page()) {
        $vars['body_class'] .= ' front';
      }
      break;
  }

  return $vars; 
}

Creo que el código está bien, pero nunca se llama (ver mi función 'morir'); usando un motor phptemplate simple y mínimo Drupal 6 install.

¿Qué obviedad me estoy perdiendo aquí?

3
Disco

La razón por la que no se llama es porque hook_preprocess_variables es para Drupal 5: debe usar hook template_preprocess_pag e en Drupal 6.

Entonces, si su tema se llama "mytheme", la función sería mejor denominada "mytheme_preprocess_page "en su template.php.


Además, Drupal y los módulos de taxonomía ya generan muchas clases de cuerpo, por lo que debe verificar qué clases ya existen porque puede ser que no necesite preprocesar la página en absoluto (si es que todas lo que desea es agregar una clase de cuerpo según la taxonomía).

1
wildpeaks

Bueno, hace años escribimos esto http://openconcept.ca/blog/jmlane/taxonomy_specific_css

Espero que sea necesario actualizarlo para Drupal 6 o 7, pero los principios aún se aplican.

0
Mike Gifford