カスタムテーマのテンプレートファイルで使用する正しい画像パス


7

カスタムテーマを作成しています。テーマのフォルダの下に、images写真を入れたフォルダがあります。.tpl.phpHTML <img>タグを使用してさまざまなテンプレート()ファイルでこれらの画像を使用したいのですが、問題は、これらの画像(src属性)の正しいパスを取得する方法ですか?

しばらく検索しましたが、解決策はありませんでした。助けてください。

編集:私は素敵なURL(http://mydrupalsite.com/a/b/c/d)を使用しています-タイプURL。そのため、画像src/(または任意の相対パスで)始まる場合、壊れます。

回答:


14

これらの関数はテンプレートで役立つと思います:

print base_path() . path_to_theme();

path_to_theme()現在のテーマ要素へのパスを返します。 base_path() Drupalインストールの基本パス。

たとえば、私はと呼ばれる私のテンプレートディレクトリbg-bar.png内のimagesディレクトリと呼ばれるイメージを持っていますgarland。その後、私が使用することができますbase_path()し、path_to_theme()node.tpl.php内部例えば、画像へのパスを取得するには:

print '<img src="'.base_path() . path_to_theme() .'/images/bg-bar.png">';

更新:現在のドメインを使用する場合は、次を使用できますglobal $base_root

  $address = ''.base_path() . path_to_theme() .'/images/bg-bar.png';
  global $base_root;
  echo '<img src="' . $base_root . $address . '">';

情報がお役に立てば幸いです。


私はこれらすべてを試しました。問題は、base_path()「/」を返します-素敵なURL(mysite.com/a/b/cなど)を使用している場合は役に立ちません-この場合、イメージソースは「/ path-to-theme / ...」になります。 ./image.png '-これは機能しません。たぶん画像ソースのhttp://代わりに使用する必要があります/
Shafiul 2011年

に関連する情報で回答を更新しましたhttp://
cigotete

「nice urls」を使用している場合、これらのURLは書き換えプロセスによって制御されていると思います。そのため、例外を追加できると思います。たとえば、.htaccessファイルからこの書き換えプロセスを制御できるかどうかを確認し、それぞれの条件を追加しRewriteCondて画像を除外します。
cigotete

ありがとうございました!私はこの問題の解決策を探していました!
user1015214 2013年

0

私の画像は条件付きブロックに含まれていたため、上記の構文はいくつかの問題を引き起こし、以下が機能しました。ただし、メンテナンスの観点から推奨されるかどうかはわかりません。

src='<?php print base_path().path_to_theme().'/images/iphone.png' ?>'
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.