2013-01-06 101 views
2

我正在開發一個模塊,我需要從每page.So主題目錄調用不同的.tpl.php佈局我目前擁有的是:的Drupal 7主題返回()到

return theme('adverts_index', array('adverts' => $advertsThemeArray));  

也就是說我在頁面回調函數中返回的內容。現在,這個工作完全沒有問題,但在模塊內的另一個頁面回調函數中,我嘗試使用不同主題鉤子的同一事物,但它不調用主題鉤子指定的佈局。

$r = theme('adverts_view_advert', array(
     'advert' => array(
     'id' => $advert->aid, 
     'seller' => $advertiser, 
     'more_from_user' => array(), 
     'year' => $advert->year, 
     'condition' => $advert->condition, 
     'region' => $advert->region, 
     'city' => $advert->city, 
     'content' => $advert->description, 
     'bids' => $allBidsArray, 
    ), 
    ) 
); 
    return $r; 

的頁面是不完整的空白,這其中包含了頭,什麼不能確實還顯示在每一頁上使用的主要page.tpl.php中。只是我試圖調用其內容的模板不顯示。

這是我hook_theme:

function adverts_theme() { 
    $theme = array(); 
    $theme['adverts_index'] = array(
     'template' => 'adverts-index', 
     'variables' => array(
      'advert' => array(
      'title' => null, 
      'formatted_price' => null, 
      'image' => null, 
      'permalink' => null, 
      'formatted_date' => null, 
      'description' => null, 
     ), 
     ), 
    ); 

    $theme['adverts_view_advert'] = array(
     'template' => 'adverts-single', 
     'variables' => array(
      'advert' => array(
       'id' => null, 
       'seller' => null, 
       'more_from_user' => null, 
       'year' => null, 
       'condition' => null, 
       'region' => null, 
       'city' => null, 
       'content' => null, 
       'bids' => null, 
      ), 
     ), 
     ); 
    return $theme; 

} 

任何幫助,將不勝感激!

回答

2

arguments改爲variables在Drupal 7,由於無論是variablesrender element需要註冊表不會拿起你的主題。

hook_theme()實施中做兩個更改,清除緩存,並且應該很好。

+0

我試過這個,但是這並沒有解決這個問題。 –

+0

你的廣告中有什麼 - single.tpl.php文件? – Clive

+0

要測試的靜態html頁面,通常它有一堆需要填寫的變量,但它甚至不會調用頁面。 –