web-dev-qa-db-ja.com

Drupal 7でロゴパスを取得する方法は?

私はカスタムロゴを持っているので、この方法で彼のパスを取得しようとしましたがtheme_get_setting('logo_path')ですが、期待される結果はありません。

入力ブロックのカスタムブロックでコードを使用しています。

7
Ek Kosmos

_logo_path_は、テーマの設定でテーマのデフォルトのロゴを上書きする場合にのみ設定されるようです。デフォルトのロゴを取得するには、theme_get_setting('logo')を使用します。

7
user7
_global $base_url;
drupal_theme_initialize();

if (!$logo = theme_get_setting('logo_path')) {
    $logo = theme_get_setting('logo');
}

if (!empty($logo)) {
  // [1]
  // Remove the base URL from the result returned by theme_get_setting('logo').
  // If you don't need the relative path, you can remove this code.
  if (strpos($logo, $base_url) === 0) {
    $logo = drupal_substr($logo, drupal_strlen($base_url));
  }
  // [1]
  // …
}
_

drupal_theme_initialize() の呼び出しは厳密には必要なく、グローバル変数_$theme_がすでに初期化されている場合は何もしません。
theme_get_setting('logo')から報告される値は絶対パスであるため、コードはベースURLを削除しています。ファイルへのアクセスに相対パスが必要ない場合は、_// [1]_の間の部分を削除できます。

ロゴがテーマ設定で無効にされている場合、theme_get_setting('logo')は何も返しません。

4
kiamlaluno