私のテーマのすべてのページでjquery UIを使用する必要があります。 Drupal 7に含まれていることは知っていますが、Drupalの技術的すぎるドキュメントを解読することはできません。これを行う唯一の方法は、template.phpファイルを使用するようです。しかし、私はそのファイルを理解していないので、そのようにしないようにしています。
別の方法はありますか、それともtemplate.phpファイルを試してみるべきですか?
PHPを使用する必要がある場合でも、ページにJSを追加することはそれほど難しくありません。
通常のJSファイルの場合、次のようなことができます
drupal_add_js($path_to_js)
ただし、DrupalはライブラリにjQuery UIを登録しているため、特定のjQuery UIプラグインのJSファイルとCSSファイルの両方を簡単に追加できます。これは、
drupal_add_library($module, $library);
すべてのjQuery UIプラグインはシステムモジュールに存在するので、
drupal_add_library('system', 'ui');
または
drupal_add_library('system', 'ui.accordion');
これらのプラグインの一部は他のプラグインを使用するため、依存関係があります。 Drupalはこれを非常に巧妙に処理し、必要なコンポーネントを含めます。
JQueryプラグインの完全なリスト ここ を確認できます。これはPHP=配列としてフォーマットされますが、一般的に命名規則はui.PLUGIN-NAMEです。
すべてのページにJSを追加する必要がある場合は、プリプロセスページフックを追加してそこに追加するだけです。これは、template.phpファイルでは次のようになります。
function NAME_OF_THEME_preprocess_page(&$variables) {
drupal_add_library('system', 'ui');
drupal_add_library('system', 'ui.accordion');
drupal_add_library('system', 'effects.highlight');
}
date_popup モジュールを試しましたか?フォームAPIでうまく機能します
これに答えてくれてありがとうgoogletorp
。
追加するだけです-有効にすることに関連してまだ明確でない場合はIプラグインです。
言及するときは、drupal_add_library('system', 'ui');
に注意してください
すべてのUIプラグインが自動的に有効になるわけではありません。
利用可能なjquery uiプラグインのリストは、drupal 7ここにあります:/misc/ui/
特定のプラグインを有効にするには、例えば:jquery.ui.slider.min.js
、次の行を追加する必要があります:
drupal_add_library('system', 'ui.slider');
これがお役に立てば幸いです。
最近この問題が発生しました。誰かが私にカスタムモジュールを与えて、JQuery UIをすべてのページにロードさせました。簡単に再作成できます。まず、 jquery_update をインストールして、機能していることを確認します。次に、このモジュールを作成して有効にします。
Path/to/modulesに「jquery_force」という名前のフォルダーを作成します。
内部に2つのファイルを追加します。
jquery_force.info:
name = JQuery UI Force
description = Forces JQuery UI to always load
dependencies[] = jquery_update
package = User Interface
core = 7.x
files[] = jquery_force.module
jquery_force.module:
<?php
/**
* @file jquery_force.module
* TODO: Enter file description here.
*/
/**
* Implements hook_init().
*/
function jquery_force_init() {
drupal_add_library('system', 'ui');
}
_template.php
_ファイルにプリプロセスフックを追加してもうまくいきませんでした。
私は単にdrupal_add_library('system', 'ui');
を_template.php
_ファイルに入れるだけで機能します。