2010-03-03 15 views
3

J'ai une page que je drupal à l'aide d'une manière qui est très différent de toutes les autres pages du site.de charger le drupal javascript d'autre module

J'ai un module qui charge un ensemble de js spécialisés sur cette page. Je trouve que mon JS ne fonctionne pas bien avec les js d'autres modules ou peut-être drupal core.

Comment puis-je empêcher les autres modules de faire drupal_add_js sur cette page spécifique.

Merci!

Répondre

4

Il n'y a aucun moyen d'empêcher d'autres modules d'appeler drupal_add_js() sauf pour le piratage du code les modules.

Pour une « exception d'une page », vous pouvez mettre en œuvre une fonction myModule_preprocess_page() et remplacer le contenu de $variables['script'] avec votre propre balisage d'inclusion de script (et vous pourriez avoir besoin de vérifier $variables['closure']). Vous pouvez également implémenter une version spécifique de page.tpl.php pour cette page et remplacer simplement l'impression de la variable $scripts par votre propre sortie.

Notez que si les suggestions de contournement pourraient être des solutions valables pour des circonstances particulières, je vous suggère fortement de vérifier pourquoi votre JavaScript « ne fonctionne pas bien avec les js d'autres modules ». JavaScript conflictuel est assez souvent un indicateur d'un bug/code bâclé dans un ou plusieurs scripts, de sorte que votre temps pourrait être mieux dépensé à trouver et à réparer ceux-ci qu'en mettant en œuvre des solutions de contournement qui sont difficiles à maintenir à long terme.

+0

+1 Une bonne solution et conseiller son. La racine du problème pourrait très bien être personnalisée js. – googletorp