2010-11-27 61 views
0

我放在MyTheme的template.php文件的代碼Drupal的6 -----爲什麼主題()不能輸出

function mytheme_theme(){ 
    return array(
     'mytheme_example' => 'example', 
     'argument' => array('myvar' => null), 
    ); 
    } 

我放在node.tpl.php代碼

<?php 
$html = ""; 
$myvar = "hello,world"; 
$html .= theme('mytheme_example', myvar); 

    return $html; 
?> 

我投入example.tpl.php

<div> 
    here is the <b><?php print myvar; ?></b>being created. 
    </div> 

我已清除緩存,但節點的文章頁面上的代碼,也沒有關於Hello world任何輸出。

ps:哪些文件我可以使用hook_theme,template.php,模塊文件。有什麼文件我可以使用這個鉤子?

回答

0

它看起來像你已經在template.php中正確地聲明瞭你的hook_theme,所以我不認爲這是問題。

我也發現了一個語法問題與你的node.tpl.php,豈不是:

<?php 
    $vars = array('myvar' => 'hello, world'); 
    $html = theme('mytheme_example', $vars); 
    return $html; 
?> 

注意關聯數組,與「MYVAR」(在hook_theme聲明的變量),是被作爲關鍵傳入。

另一點,標準模板文件的名稱與鉤子名稱相同,所以我建議調用模板mytheme-example.tpl.php。

瞭解更多信息

+0

我改變了你指出的錯誤,但仍然不能輸出$ myvar的值。 – runeveryday 2010-11-27 14:10:12

+0

已更新解決方案以反映關聯數組,因爲我認爲這是問題 – wiifm 2010-11-27 21:21:49

0

我不知道你是否已經解決了這個問題尚未見drupal.org

我想嘗試宣告我的主題是這樣的:

function mytheme_theme(){ 
    return array(
     'mytheme_example' => array(
     'arguments' => array('arguments'=>array()), 
     'template' => 'example', 
     ), 
    } 

那怎麼我通常做,它工作正常在我身上。