Объединить URL-адрес $base и путь к теме()


Я привык писать такой код в .tpl.php файлы для отображения изображений (например):

<?php echo $base_url .'/'. path_to_theme();?>

Интересно, можно ли было бы объединить $base_url и path_to_theme() в одну команду/переменную?

 3
Author: vanz, 2011-04-14

2 answers

В hook_preprocess($vars) создайте новую переменную с именем path_to_theme в $vars, включив следующее (где $hook - страница, узел, блок и т. Д.)

function mymodule_preprocess(&$vars, $hook) {
  $vars['path_to_theme'] = base_path().path_to_theme();
}

Теперь практически во всех шаблонах вашей темы вы можете использовать переменную $path_to_theme, и она будет содержимым base_path().path_to_theme()

Обратите внимание, что вы можете поместить это в пользовательский модуль или заменить mymodule именем вашей темы, и вы можете разместить его в своей теме template.php

Вы можете использовать узел, страницу и другой "привязанный" конкретный предварительный процесс функции, если вы хотите добавить эту переменную только к определенному контенту вашего сайта.

Существует множество вариантов предварительной обработки узлов, страниц и т.д. который можно прочитать в: Настройка переменных для использования в шаблоне (функции предварительной обработки и обработки)

Также обязательно ознакомьтесь с базовыми переменными по умолчанию , такими как:

$ каталог Путь к теме относительно базовой установки. пример: "сайты/все/темы/мифема"

 4
Author: electblake, 2011-04-14 14:31:12

Вы можете использовать функцию theme_preprocess_node() или функцию theme_preprocess_page() в своем template.php файл в вашей теме и создайте там свой объединенный путь, чтобы он был доступен в файлах шаблонов.

function yourthemename_preprocess_node(&$vars) {
  $vars['theme_path'] = base_path() . path_to_theme();
}

function yourthemename_preprocess_page(&$vars) {
  $vars['theme_path'] = base_path() . path_to_theme();
}

Тогда $theme_path всегда доступен в ваших файлах шаблонов.

 0
Author: Jepedo, 2011-04-14 14:30:19