Как мне получить путь к логотипу?


У меня есть собственный логотип, и я пытался найти его путь таким образом theme_get_setting('logo_path'), но ожидаемого результата не было.

Я использую код в пользовательском блоке, в PHP ввода.

 7
Author: kiamlaluno, 2011-03-21

2 answers

logo_path похоже, что он устанавливается только в том случае, если вы переопределяете логотип темы по умолчанию с помощью настроек темы. Чтобы получить логотип по умолчанию, используйте theme_get_setting('logo').

 8
Author: , 2011-03-21 13:19:47
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 уже инициализирована.
Код удаляет базовый URL-адрес, потому что значение, указанное в theme_get_setting('logo'), является абсолютным путем; если вам не нужен относительный путь для доступа к файлу, то часть между // [1] может быть удалена.

Когда логотип отключен в настройках темы, theme_get_setting('logo') ничего не возвращает.

 4
Author: kiamlaluno, 2014-01-23 18:40:57