27

Drupal API にはdrupal_get_path($type, $name)、特定のテーマまたはモジュールのパスを提供するものがあります。現在のテーマのパスが必要な場合はどうすればよいですか?

4

8 に答える 8

27

機能を使用してくださいpath_to_theme

于 2008-11-20T18:38:02.870 に答える
20

これはうまくいくはずです(doc):

global $theme;
$path = drupal_get_path('theme', $theme);

// there's also a $theme_path global

global $theme_path;
于 2008-11-19T23:25:54.430 に答える
10

D6では、path_to_theme()は、使用方法によっては期待どおりに動作しない場合があります。テーマの前処理関数の外部で使用している場合は、おそらく必要なものが得られますが、モジュールのテーマ/前処理フック関数のコンテキスト内で呼び出されている場合は、モジュールパスを指します。テーマを宣言しました。

元。テーマ「my_theme」と前処理フックを使用してフォーラムテーマをオーバーライドするモジュール「my_module」がある場合、モジュール内でpath_to_theme()を呼び出します。たとえば、my_module_preprocess_forums()...は「my_theme」ではなく「forums」を返します。 「予想通り。

あなたが私に尋ねれば非常にフルーティーです。

于 2010-03-03T20:40:59.760 に答える
5

Drupal 7 では、現在のテーマのパスを取得するために、 path_to_theme()関数を使用できます。

于 2012-02-07T12:44:33.027 に答える
4

Drupal 8 では

global $base_url;
$theme = \Drupal::theme()->getActiveTheme();
$image_url = $base_url.'/'. $theme->getPath() .'/images/image.jpg';
于 2018-01-29T09:30:29.717 に答える
1

Drupal 5 では、次のように簡単に使用できます: path_to_theme()

これにより、Drupal のルートから特定のテーマ ディレクトリへの完全なパスが得られます。末尾のスラッシュは含まれないことに注意してください。

Drupal 6 では、これは少し異なる動作をします。ページ内から呼び出すと、現在テーマを実行しているものは何でも呼び出されます...それがテーマ、モジュールなどであるかどうか。API ドキュメントからの重要な引用は次のとおりです。

アクティブなテーマまたはテーマ実装を処理するモジュールを指すことができます。たとえば、テーマ呼び出しのスコープ内で呼び出された場合、テーマ関数がどこで処理されるかによって異なります。モジュールから実装された場合、それはモジュールを指します。アクティブなテーマから実装された場合、アクティブなテーマを指します。テーマ呼び出しの範囲外で呼び出された場合、常にアクティブなテーマを指します。

ソース: http://api.drupal.org/api/function/path_to_theme

于 2008-12-12T17:46:46.483 に答える