Como obter o caminho do logotipo no Drupal 7?

7

Eu tenho um logotipo personalizado e tentei seguir seu caminho dessa maneira theme_get_setting('logo_path'), mas nenhum resultado esperado.

Estou usando o código em um bloco personalizado, na entrada PHP.

Ek Kosmos
fonte
3
Onde você está usando esse código? Você já tentou theme_get_setting('logo_path', 'THEME_NAME')substituir THEME_NAME pelo nome do seu tema?
marcvangend

Respostas:

7

logo_pathparece ser definido apenas se você substituir o logotipo padrão do tema por meio de suas configurações de tema. Para obter o logotipo padrão, use theme_get_setting('logo').


fonte
Mas por que o resultado de theme_get_setting('logo')é uma string vazia? Pus o meu logotipo personalizado em/admin/appearance/setting
Ek Kosmos
Porque quando Logo é deactivate de tema TOGGLE DISPLAY - Enable or disable the display of certain page elements.da theme_get_setting('logo')não tem nenhum resultado. Por quê ?
Ek Kosmos
11
Obrigado, é exatamente isso que eu estava procurando! Use <a href="<?php echo theme_get_setting('logo');?>">em um bloco de código PHP para mostrar o logotipo em seu próprio bloco.
Coomie
4
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]
  // …
}

A chamada para drupal_theme_initialize () não é estritamente necessária e não faz nada se a variável global $themejá estiver inicializada.
O código está removendo o URL base porque o valor relatado theme_get_setting('logo')é um caminho absoluto; se você não precisar de um caminho relativo para acessar o arquivo, a parte entre elas // [1]poderá ser removida.

Quando o logotipo foi desativado nas configurações do tema, theme_get_setting('logo')ele não retorna nada.

kiamlaluno
fonte
Troquei o código [1]com $logo = file_create_url($logo);a fim de obter o caminho completo da URL do logotipo (com o http: //).
Matt Fletcher