Pergunta

A API Drupal tem drupal_get_path($type, $name) que vai dar o caminho de qualquer tema específico ou módulo. E se eu quiser o caminho do tema atual?

Foi útil?

Solução

Use a path_to_theme função.

Outras dicas

isso deve funcionar ( doc ):

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

// there's also a $theme_path global

global $theme_path;

Em D6 path_to_theme () não pode se comportar de uma maneira que você espera, dependendo de como você o está usando. Se você estiver usando-o fora quaisquer funções tema pré-processar, então ele provavelmente irá dar-lhe o que quiser, mas se ele está sendo chamado dentro do contexto de um módulo está theming / função de gancho pré-processar ... ele vai estar apontando para o caminho módulo que declarou o tema.

Ex. Se eu tenho um tema "Meu_Tema" e meu módulo "my_module", que está substituindo os temas fórum usando os ganchos preprocess, chamando path_to_theme () dentro do meu módulo: por exemplo, my_module_preprocess_forums () ... vai voltar "fóruns", e não "Meu_Tema" como se poderia esperar.

Muito frutado, se você me perguntar.

No Drupal 7, para obter o caminho de tema atual, podemos usar: path_to_theme () função .

Em Drupal 8

global $base_url;
$theme = \Drupal::theme()->getActiveTheme();
$image_url = $base_url.'/'. $theme->getPath() .'/images/image.jpg';

Em Drupal 5, você pode simplesmente usar: path_to_theme ()

Isto lhe dará um caminho completo desde a raiz do Drupal para o diretório tema específico. Esteja ciente, ele não inclui uma barra final.

No Drupal 6, este comporta-se apenas um pouco diferente. Se você chamá-lo de dentro de suas páginas, ele irá chamar o que está fazendo atualmente o theming ... mesmo que seja o seu tema, um módulo, etc. Aqui está a citação chave a documentação da API:

Ele pode apontar para o tema ativo ou o manuseamento de um módulo temático implementação. Por exemplo, quando invocada no âmbito de um theming chamá-lo vai depender de onde o função theming é tratado. E se implementado a partir de um módulo, ele será apontar para o módulo. Se implementada a partir do tema ativo, ele irá apontar com o tema ativo. quando chamado fora do âmbito de uma chamada theming, ele vai sempre apontam para o ativo tema.

Fonte: http://api.drupal.org/api/function/path_to_theme

Para D8, a pasta tema está disponível em funções pré-processar:

function hook_preprocess_page(&$variables) {
  $variables['some_logo_file'] = "/{$variables['theme']['path']}/images/logo.png";
}

page.html.twig:

<img src="{{ logo_src }}">
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top