Como faço para obter o caminho do tema drupal atual?
-
08-07-2019 - |
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?
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.
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 }}">