Drupal API にはdrupal_get_path($type, $name)
、特定のテーマまたはモジュールのパスを提供するものがあります。現在のテーマのパスが必要な場合はどうすればよいですか?
8 に答える
機能を使用してくださいpath_to_theme
。
これはうまくいくはずです(doc):
global $theme;
$path = drupal_get_path('theme', $theme);
// there's also a $theme_path global
global $theme_path;
D6では、path_to_theme()は、使用方法によっては期待どおりに動作しない場合があります。テーマの前処理関数の外部で使用している場合は、おそらく必要なものが得られますが、モジュールのテーマ/前処理フック関数のコンテキスト内で呼び出されている場合は、モジュールパスを指します。テーマを宣言しました。
元。テーマ「my_theme」と前処理フックを使用してフォーラムテーマをオーバーライドするモジュール「my_module」がある場合、モジュール内でpath_to_theme()を呼び出します。たとえば、my_module_preprocess_forums()...は「my_theme」ではなく「forums」を返します。 「予想通り。
あなたが私に尋ねれば非常にフルーティーです。
Drupal 7 では、現在のテーマのパスを取得するために、 path_to_theme()関数を使用できます。
Drupal 8 では
global $base_url;
$theme = \Drupal::theme()->getActiveTheme();
$image_url = $base_url.'/'. $theme->getPath() .'/images/image.jpg';
Drupal 5 では、次のように簡単に使用できます: path_to_theme()
これにより、Drupal のルートから特定のテーマ ディレクトリへの完全なパスが得られます。末尾のスラッシュは含まれないことに注意してください。
Drupal 6 では、これは少し異なる動作をします。ページ内から呼び出すと、現在テーマを実行しているものは何でも呼び出されます...それがテーマ、モジュールなどであるかどうか。API ドキュメントからの重要な引用は次のとおりです。
アクティブなテーマまたはテーマ実装を処理するモジュールを指すことができます。たとえば、テーマ呼び出しのスコープ内で呼び出された場合、テーマ関数がどこで処理されるかによって異なります。モジュールから実装された場合、それはモジュールを指します。アクティブなテーマから実装された場合、アクティブなテーマを指します。テーマ呼び出しの範囲外で呼び出された場合、常にアクティブなテーマを指します。