Detectar portada en Drupal 6 con javascript

8

Usando JavaScript en Drupal 6, ¿hay alguna forma de detectar si la página actual es la página principal? Tengo un módulo Drupal 6 personalizado que genera diferentes códigos de javascript en función de si la página actual es portada o no. Agrega un solo archivo javascript a drupal, así que necesito poner el cheque en el javascript.

El sitio se servirá a través de la memoria caché Varnish, por lo que no quiero agregar el cheque en PHP, aunque sé que habría sido mucho más fácil drupal_is_front_page().

¿Hay alguna forma nativa de Drupal para hacer esto? Las sugerencias basadas en jQuery serán muy apreciadas.

Gracias.

kaustavdm
fuente

Respuestas:

19

En general, Drupal agrega una clase " frontal " al elemento del cuerpo de cualquier página que actúe como página principal. Si el page.tpl.php de su tema está imprimiendo las clases del cuerpo (es decir <body class="<?php echo $classes; ?>", lo que probablemente sea (debería)), entonces su javascript puede verificar si el elemento del cuerpo tiene la clase "frontal".

Entonces, suponiendo que jQuery (porque Drupal lo incluye), entonces haría:

if ($('body').hasClass('front')) { // do stuff...}
Alejandro
fuente
Gracias @Alexander! Lo tengo funcionando. Estaba pensando demasiado complejo :) Pensé que podría haber algunas funciones nativas de Drupal cuando simplemente podría usar los selectores de jQuery.
kaustavdm
0

Imprima el resultado de drupal_is_front_page () en una variable javascript, utilizando el formato json si es necesario. Y simplemente escriba una función de JavaScript para verificarla cuando la necesite.


fuente