2015-10-08 52 views
1

這是vegas.module文件的代碼。它用於從特定文件夾加載圖像。從drupal模塊打印主題文件中的變量

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

如果你想打印varibale在page.tpl.php中 - 使用hook_preprocess_page

function custom_preprocess_page(& $ variables),not node。

+0

爲什麼我應該把這個函數放在template.php –

+0

如果有些開發者在你改變你的模板文件之後 - 他會在一個文件中看到模板變量的所有變化,他不會在模塊中搜索這個變化。 – DrHolera

+0

謝謝DrHolera博士 –

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將avaliable $背景陣列。

我覺得更正確的把這個代碼放到template.php文件中。這將是最容易查看如何chaged節點變量

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);