Это код файла vegas.module. используется для загрузки изображений из определенной папки.
function vegas_init() {
// Load all the images to be added to Vegas.
$backgrounds = array();
$fade = variable_get('vegas_fade', 0);
for ($i = 0; $i < 10; $i++) {
$fid = variable_get('vegas_images_' . $i, '');
if (!empty($fid)) {
$image = file_load($fid);
if ($image) {
$background = array(
'src' => file_create_url($image->uri),
);
if (!empty($fade)) {
$background['fade'] = intval($fade);
}
$backgrounds[] = $background;
}
}
}
Я печатаю это в файле .module. Это дает ожидаемый результат.
print_r($backgrounds);
Если я печатаю его в page.tpl.php моей темы, он не возвращает никаких значений. Есть ли способ загрузить переменную модуля
Если вы хотите распечатать эту переменную в page.tpl.php — используйте hook_preprocess_page
функция custom_preprocess_page (&$ переменные), а не узел.
Вам нужно использовать hook_preprocess_page для добавления переменных в шаблон страницы или hook_preprocess_node для добавления переменной в шаблон узла.
https://api.drupal.org/api/drupal/modules!node!node.module/function/template_preprocess_node/7
function MYMODULE_preprocess_node(&$variables) { //can be MYTHEME_preprocess_node and locate in template.php
// Load all the images to be added to Vegas.
$backgrounds = array();
$fade = variable_get('vegas_fade', 0);
for ($i = 0; $i < 10; $i++) {
$fid = variable_get('vegas_images_' . $i, '');
if (!empty($fid)) {
$image = file_load($fid);
if ($image) {
$background = array(
'src' => file_create_url($image->uri),
);
if (!empty($fade)) {
$background['fade'] = intval($fade);
}
$variables['backgrounds'][] = $background;
}
}
}
Попробуйте этот код, и в yoot node.tpl.php будет доступен массив $ background.
Я думаю, правильнее поместить этот код в template.php в вашей теме. Будет проще посмотреть, как изменяются переменные узла
Мое название темы на заказ. Вот что я вставил в файл template.php
function custom_preprocess_node(&$variables) { //can be MYTHEME_preprocess_node and locate in template.php
// Load all the images to be added to Vegas.
$backgrounds = array();
$fade = variable_get('vegas_fade', 0);
for ($i = 0; $i < 10; $i++) {
$fid = variable_get('vegas_images_' . $i, '');
if (!empty($fid)) {
$image = file_load($fid);
if ($image) {
$background = array(
'src' => file_create_url($image->uri),
);
if (!empty($fade)) {
$background['fade'] = intval($fade);
}
$variables['backgrounds'][] = $background;
}
}
}
}
и распечатать его файл page.tpl.php
print_r($backgrounds);