Распечатать переменную в файле темы из модуля drupal

Это код файла 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 моей темы, он не возвращает никаких значений. Есть ли способ загрузить переменную модуля

1

Решение

Если вы хотите распечатать эту переменную в page.tpl.php — используйте hook_preprocess_page

функция custom_preprocess_page (&$ переменные), а не узел.

1

Другие решения

Вам нужно использовать 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 в вашей теме. Будет проще посмотреть, как изменяются переменные узла

0

Мое название темы на заказ. Вот что я вставил в файл 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);
0
По вопросам рекламы [email protected]