Pregunta

La API de Drupal tiene drupal_get_path ($ type, $ name) que dará la ruta de cualquier tema o módulo en particular. ¿Qué sucede si quiero la ruta del tema actual?

¿Fue útil?

Solución

Utilice la función path_to_theme .

Otros consejos

esto debería funcionar ( doc ):

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

// there's also a $theme_path global

global $theme_path;

En D6, es posible que path_to_theme () no se comporte de la forma esperada, dependiendo de cómo lo esté utilizando. Si lo está utilizando fuera de cualquier función de preproceso de tema, entonces probablemente le dará lo que desea, pero si se llama dentro del contexto de la función de enganche de preproceso / tema de un módulo ... apuntará a la ruta del módulo que declaró el tema.

Ej. Si tengo un tema "my_theme" y mi módulo " my_module " que anula los temas del foro utilizando los ganchos de preproceso, llamando a path_to_theme () dentro de mi módulo: p. my_module_preprocess_forums () ... devolverá " foros " ;, y no " my_theme " como cabría esperar.

Muy afrutado si me preguntas.

En Drupal 7, para obtener la ruta del tema actual, podemos usar: path_to_theme () función.

En Drupal 8

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

En Drupal 5, simplemente puede usar: path_to_theme ()

Esto le dará una ruta completa desde la raíz de Drupal hasta el directorio del tema específico. Tenga en cuenta que no incluye una barra inclinada final.

En Drupal 6, esto se comporta de manera un poco diferente. Si lo llama desde sus páginas, llamará a lo que sea que esté haciendo el tema actualmente ... si ese es su tema, un módulo, etc. Aquí está la cita clave de los documentos de la API:

  

Puede apuntar al tema activo o   el módulo manejando un tema   implementación. Por ejemplo, cuando   invocado dentro del alcance de un tema   llamar dependerá de dónde el   Se maneja la función temática. Si   implementado desde un módulo, lo hará   Señalar el módulo. Si se implementa   del tema activo, apuntará   al tema activo. Cuando se llama   fuera del alcance de una llamada temática,   siempre apuntará a la activa   tema.

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

Para D8, la carpeta de temas está disponible en funciones de preproceso:

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

page.html.twig:

<img src="{{ logo_src }}">
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top