Détecter la première page dans Drupal 6 avec javascript

8

En utilisant javascript dans Drupal 6, existe-t-il un moyen de détecter si la page actuelle est la première page? J'ai un module Drupal 6 personnalisé qui génère différents codes javascript selon que la page actuelle est en première page ou non. Il ajoute un seul fichier javascript à drupal, donc je dois mettre la vérification dans le javascript.

Le site sera servi via le cache Varnish, donc je ne veux pas ajouter la vérification en PHP, même si je sais que cela aurait été beaucoup plus facile avec drupal_is_front_page().

Existe-t-il un moyen natif Drupal de le faire? Les suggestions basées sur jQuery seront très appréciées.

Merci.

kaustavdm
la source

Réponses:

19

Généralement, Drupal ajoute une classe " front " à l'élément body de la page qui fait office de page d'accueil. Si page.tpl.php de votre thème imprime les classes de corps (c'est-à-dire <body class="<?php echo $classes; ?>"), ce qui est très probablement (il devrait), alors votre javascript peut vérifier si l'élément de corps a la classe "front".

Donc, en supposant que jQuery (parce que Drupal l'inclut), vous feriez:

if ($('body').hasClass('front')) { // do stuff...}
Alexandre
la source
Merci @Alexander! Je l'ai fait fonctionner. Je pensais trop complexe :) J'ai pensé qu'il pourrait y avoir des fonctions Drupal natives quand je pourrais simplement utiliser les sélecteurs de jQuery.
kaustavdm
0

Imprimez le résultat de drupal_is_front_page () dans une variable javascript, en utilisant le formatage json si nécessaire. Et écrivez simplement une fonction javascript pour la vérifier quand vous en avez besoin.


la source