2012-02-14 125 views
0

我正在使用這個Template library用於Codeigniter。Codeigniter加載多個模板

我不能完全弄清楚如何使用他的高級使用示例#3加載多個模板。我覺得下面的load_main()函數中缺少第二個模板的加載:

function load_main($view = '', $view_data = array(), $return = FALSE) 
{ 
$this->set('nav_list', array('Home', 'Photos', 'About', 'Contact')); 
$this->load('template', $view, $view_data, $return); 
    //shouldn't this be there?=> $this->load('template2', $view, $view_data, $return); 
} 

我對嗎?如果是這樣,你能提供一些關於控制器和視圖文件的外觀的提示嗎?

下面是筆者對控制器:

$this->template->set('nav', 'About'); 
$this->template->set('title', 'About me'); 
$this->template->load_main('about'); 

而且模板視圖:

<html> 
<body> 
    <div id="contents"><?= $contents ?></div> 
    <div id="footer">Copyright 2008</div> 
<ul class="navigation"> 
<?php foreach($nav_list as $i => $nav_item): ?> 
    <li class="<?= ($nav == $nav_item ? 'selected' : '')?>"> 
     <?= anchor($nav_item, $nav_item) ?> 
    </li> 
<?php endforeach ?> 
</ul> 
</body> 
</html> 

回答

2

我不認爲它失去了一些東西,但它是一個有點不清楚它是如何做的工作...

function load_main($view = '', $view_data = array(), $return = FALSE) 
{ 
    $this->set('nav_list', array('Home', 'Photos', 'About', 'Contact')); 
    $this->load('template', $view, $view_data, $return); 
} 

所以這種方法使用「模板」模板,並設置一些導航的東西。 $this->template->load_main('test');將使用「模板」模板加載views/test.php。

因此,要使用不同的模板,在模板文件中創建一個新的負載方法(和模板,很明顯)

function load_radical_template($view = '', $view_data = array(), $return = FALSE) 
{ 
    $this->load('radical_template', $view, $view_data, $return); 
} 

現在$this->template->load_radical_template('test');將加載的意見/使用「radical_template」模板test.php的。

+0

感謝Stormdrain,看起來像是這樣做的一種方式,我希望我們不必添加另一種方法,因爲傑羅姆的文檔並不意味着這一點,但我想有時候你必須做你必須做的事情。 。謝謝,-tim – 2012-02-15 05:08:46

+1

哦,但確實如此:「要輕鬆處理多個模板,請在庫/ Template.php中定義新的加載方法」。從第3部分的第一句引用 - 高級使用3:在您鏈接到的頁面上有多個模板_。 – stormdrain 2012-02-15 14:14:40

+0

好的,是的,我認爲你是對的,再次感謝! – 2012-02-15 17:27:46