Объединить URL-адрес $base и путь к теме()
Я привык писать такой код в .tpl.php файлы для отображения изображений (например):
<?php echo $base_url .'/'. path_to_theme();?>
Интересно, можно ли было бы объединить $base_url и path_to_theme() в одну команду/переменную?
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
Вы можете использовать узел, страницу и другой "привязанный" конкретный предварительный процесс функции, если вы хотите добавить эту переменную только к определенному контенту вашего сайта.
Существует множество вариантов предварительной обработки узлов, страниц и т.д. который можно прочитать в: Настройка переменных для использования в шаблоне (функции предварительной обработки и обработки)
Также обязательно ознакомьтесь с базовыми переменными по умолчанию , такими как:
$ каталог Путь к теме относительно базовой установки. пример: "сайты/все/темы/мифема"
Вы можете использовать функцию 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 всегда доступен в ваших файлах шаблонов.