Должен ли я просто вставить код в основной файл шаблона или есть какой-либо другой рекомендуемый способ присоединения новых плагинов Jquery в Drupal 7?
javascript
Vonder
источник
источник
drupal_add_js
( api.drupal.org/api/drupal/includes--common.inc/function/… ).Ответы:
Самый простой способ - просто добавить его в файл .info вашей темы:
Единственное исключение - если вы добавляете внешний ресурс (CDN / размещенный скрипт), и в этом случае вы должны использовать drupal_add_js (), как объяснил Джейми Холлерн
источник
Uncaught TypeError: undefined is not a function
drupal_add_library()
Drupal имеет Jquery в комплекте с ним.
Чтобы добавить файл js, вы можете использовать drupal_add_js так же, как описано в других сообщениях.
Это будет работать в простых случаях, но если вы начинаете иметь плагины, которые зависят от других плагинов. Вы можете посмотреть на библиотеки API . Я ожидаю, что со временем будут созданы модули для поддержки популярных библиотек, есть некоторые для встроенного интерфейса JQuery, см. System_library () .
В этом примере для включения модуля jQuery ui.accordion вы можете использовать drupal_add_library ()
Это обеспечит включение js вместе с CSS и любыми библиотеками, которые зависят от него. Это также обеспечит включение библиотек только один раз.
Если вы скажете, какую библиотеку вы используете, я могу предоставить пример кода для ее определения.
Поэтому сначала создайте модуль для определения библиотеки (назовите его qtip) и загрузите модуль в папку js под папкой модуля
затем реализовать hook_library ()
Затем добавить файл, вставленный в ваш код
Это может быть излишним для простой библиотеки, но если вам приходится управлять большим количеством библиотек на нескольких сайтах и темах, это значительно облегчает жизнь.
источник
Если вы хотите загрузить скрипт только на некоторых страницах (не на всех), вы можете добавить его через файл template.php. Просто добавьте код, похожий на этот:
Я проверял это только в Drupal 6.
источник
Вы можете добавить файл JavaScript к теме, которую вы используете на сайте Drupal, добавив
script[] =
строку в файл .info той темы, которую вы используете. Я хотел бы рассмотреть этот случай, только если вы используете настроенную тему или измененную версию существующей темы, которая была переименована; Я бы не советовал делать это, если вы используете, например, Garland. Выполнение этого в таких случаях будет означать потерю всех изменений при каждом обновлении темы или копирование обновленных файлов темы, а затем повторное применение тех же изменений, которые были применены к предыдущей версии файлов; если изменение только добавляетscript[]
строку, то изменение минимально, и это может стоить сделать, но это также означает, что файлы JavaScript не добавляются в каталог, содержащий файлы темы, или вы должны добавлять файлы JavaScript каждый раз время тема обновляется.В качестве альтернативы вы можете создать пользовательский модуль или добавить код в существующий пользовательский модуль, который вы уже используете для этого сайта.
Преимущество заключается в том, что файлы JavaScript будут добавляться к каждой теме, установленной по умолчанию или теме администрирования, без необходимости изменять все темы, которые включены на сайте, и которые пользователи могут выбирать для себя.
Как уже сообщалось в другом ответе,
hook_init()
это хук, который вы должны реализовать. Я добавлю, чтоhook_library()
это новый хук, добавленный в Drupal 7 для файлов Javascript, таких как плагины jQuery.источник
Вы можете использовать модуль Js Injector для добавления скриптов прямо в админ панели Drupal. В качестве альтернативы вы можете использовать функцию drupal_add_js (), чтобы добавить свой js-файл на свою страницу.
источник
Вы можете создать простой пользовательский модуль и добавить его таким образом. Код будет похож на следующее:
источник
Вы можете просто использовать,
YOURTHEME_preprocess_theme()
если хотите применить логическое условие:drupal_add_js(drupal_get_path('theme','your_theme').'/js/yourplugin.js');
и добавьте также в файл yourtheme.info:
scripts[] = js/yourplugin.js
источник
Если вы используете модуль Context, установите Context Add Assets. Настройте глобальный контекст или конкретный контекст и добавьте новую реакцию для добавления ресурса JS по пути или по модулю.
Кодирование не требуется.
источник
Есть много внешних библиотек, которые должны быть включены в настоящее время.
Поместить их все в каталог js темы не всегда желательно, поскольку иногда эти библиотеки состоят из нескольких файлов js и нескольких файлов css.
В итоге я использовал
libraries_get_path
функцию модуля "библиотеки", чтобы получить их пути из каталога sites / all / library dir:Вот как я добавил выбранные файлы, которые относятся к textext.js:
Я хотел бы услышать, есть ли внешний репозиторий, в котором все эти библиотеки предопределены, поэтому мне не придется определять их каждую вручную.
источник
Я рекомендую вам загрузить jQuery из кукольного Google CDN. Проверьте эту ссылку для получения дополнительной информации: http://code.google.com/apis/libraries/devguide.html#jquery. Просто убедитесь, что вы не загружаете один и тот же скрипт несколько раз на своем сайте.
источник
это то, что сработало для меня, нет необходимости создавать модуль для плагина jQuery или устанавливать его - в моем template.php я добавил:
источник
Другой способ - добавить следующий код в файл
page.tpl.php. drupal_add_js (drupal_get_path ('theme', 'path / to / your / plugin'). '/plugin.js', 'file');
источник