テーマのすべてのページでjquery UIを使用する必要があります。Drupal 7に含まれていることは知っていますが、Drupalの技術的なドキュメントを解読することはできません。これを行う唯一の方法は、template.phpファイルを使用することです。しかし、私はそのファイルを理解していないので、そのようにしないようにしています。
別の方法がありますか、またはtemplate.phpファイルを試してみるべきですか?
テーマのすべてのページで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');
}
function nocturnal_preprocess_page(&$variables) { drupal_add_library('system', 'ui'); drupal_add_library('system', 'ui.datepicker'); }
drupal_add_library('system', 'ui');
との違いについて少し詳しく教えてdrupal_add_library('system', 'ui.accordion');
ください。最初のものはすべてをフェッチしていますか、それともコアだけですか?使用するプラグインごとに行が必要ですか?
date_popupモジュールを試しましたか?フォームAPIでうまく機能します
googletorp
これに答えてくれてありがとう。
UIプラグインの有効化に関連することがまだ明確でない場合は、追加するだけです。
あなたが言及するとき、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');
}