这是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中打印它,它不会返回任何值。有没有办法加载模块的变量
答案 0 :(得分:1)
如果要在page.tpl.php中打印此varibale - 请使用hook_preprocess_page
函数custom_preprocess_page(&amp; $ variables),而不是节点。
答案 1 :(得分:0)
您需要使用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将是可用的$ backgrounds array。
我认为更准确地将此代码放在主题中的template.php中。最简单的方法是查看节点变量的变化情况
答案 2 :(得分: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);