Предотвратить друпал от загрузки JavaScript другого модуля - PullRequest
3 голосов
/ 03 марта 2010

У меня есть страница drupal, которую я использую таким образом, который сильно отличается от всех других страниц сайта.

У меня есть модуль, который загружает набор специализированных js на этой странице. Я обнаружил, что мой JS не работает с js из других модулей или, возможно, с drupal core.

Как я могу запретить другим модулям выполнять drupal_add_js на этой конкретной странице.

Спасибо!

1 Ответ

4 голосов
/ 03 марта 2010

Невозможно запретить другим модулям вызывать drupal_add_js(), за исключением взлома кода этих модулей.

Для «исключения на одну страницу» вы можете реализовать функцию myModule_preprocess_page() и заменить содержимое $variables['script'] на собственную разметку включения сценария (вам может потребоваться также проверить $variables['closure']) ).

В качестве альтернативы, вы могли бы реализовать конкретную версию page.tpl.php для этой страницы и просто заменить печать переменной $scripts своим собственным выводом.

Обратите внимание, что хотя оба предложения обходного пути могут быть допустимыми решениями для особых обстоятельств, я настоятельно рекомендую проверить почему ваш JavaScript ' не работает с js из других модулей ' , Конфликт JavaScript часто является индикатором ошибки / неаккуратного кода в одном или нескольких сценариях, поэтому вам лучше потратить время на поиск и исправление этих ошибок, чем на реализацию обходных путей, которые сложно поддерживать в долгосрочной перспективе.

...