La API de Drupal ha drupal_get_path($tipo, $nombre) que va a dar al camino de cualquier tema en particular o módulo. Lo que si quiero que la ruta de acceso del tema actual?

InformationsquelleAutor Steven Noble | 2008-11-19

7 Comentarios

  1. 25

    Utilizar el path_to_theme función.

    • tenga en cuenta que cuando se llama desde dentro «theme_*» la función path_to_there va camino de retorno a módulo actual en lugar de la ruta de acceso en la actualidad tema activo que puede conducir a errores, ver más detalles en este informe de error:drupal.org/node/194098
  2. 20

    esto debería funcionar (doc):

    global $theme;
    $path = drupal_get_path('theme', $theme);
    
    //there's also a $theme_path global
    
    global $theme_path;
    • Hola Owen Gracias por la info
    • Es mejor usar path_to_theme(), el uso de la $theme_path.
    • ¿Por qué es mejor utilizar path_to_theme(), en lugar de $ ‘theme_path’?
    • la única diferencia es que si el $theme_path no se establece el tema se inicializa y, a continuación, la nueva $theme_path se devuelve. Consulte path_to_theme.
    • Me di cuenta de path_to_theme() e $ ‘theme_path’ se utiliza dentro de una plantilla de campo me está dando la ruta de acceso a campo de módulo/módulo. El único que se muestra correctamente fue de $tema.
  3. 10

    En D6 path_to_theme() no se comportan de la manera que usted espera, dependiendo de cómo usted lo está utilizando. Si usted lo está utilizando fuera de cualquier tema preprocesar funciones, entonces probablemente le dará lo que quieres, pero si es que se llama en el contexto de un módulo de la tematización/preprocesar función de enlace… va a estar apuntando a la ruta de acceso del módulo que se declara el tema.

    Ex. Si tengo un tema «my_theme» y mi módulo «my_module», que es primordial en el foro temas usando el preprocesar los ganchos, llamando path_to_theme() dentro de mi módulo: por ejemplo, my_module_preprocess_forums()… va a volver «foros», y no «my_theme» como uno podría esperar.

    Muy afrutado, si usted me pregunta.

  4. 3

    En Drupal 8

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

    En Drupal 5, usted puede simplemente utilizar: path_to_theme()

    Esto le dará una ruta completa desde la raíz de Drupal para el tema específico de directorio. Ser conscientes, no incluye una barra diagonal.

    En Drupal 6, este se comporta de forma un poco distinta. Si se llama desde dentro de sus páginas, se hará un llamado a lo que se está haciendo actualmente en la tematización… si ese es su tema, módulo, etc. Aquí está la clave de la cita de la API docs:

    Se puede señalar el tema activo o
    el módulo de manejo de una temática
    aplicación. Por ejemplo, cuando
    invoca dentro del ámbito de una tematización
    de la llamada dependerá de donde el
    la tematización de la función que se maneja. Si
    implementado a partir de un módulo, se
    seleccione el módulo. Si se aplica
    desde el tema activo, será el punto de
    para el tema activo. Cuando se llama
    fuera del ámbito de una tematización de la llamada,
    siempre seleccione el activo
    tema.

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

  6. 0

    Para D8, la carpeta del tema está disponible en preprocesar funciones:

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

    página.html.rama:

    <img src="{{ logo_src }}">

Dejar respuesta

Please enter your comment!
Please enter your name here