2011-03-31 155 views
1

我有關於在Codeigniter中查看的一些問題。關於視圖的問題

如何構建我的設計,以後如何返回?我想建立我的標題,主要內容和菜單,頁腳等等。

要建立一個設計,然後將其複製到我創建的每個新視圖並不是一個好的解決方案。如果我更改了頁腳中的內容,則更改將對整個網站生效。

有沒有人有任何好的指導的任何鏈接如何使用最好的視圖或在這裏以一個好的方式解釋。

+1

如果你先搜索過網站,你可能會找到[這個答案](http://stackoverflow.com/questions/1029960/how-to-deal-with-codeigniter-templates)。 – Kelly 2011-03-31 15:42:20

回答

1

你的感覺是對的,這根本不是一個好主意。這就是爲什麼大多數人使用某種模板系統結合他們的視圖。

我用這個庫:http://williamsconcepts.com/ci/codeigniter/libraries/template/(習慣,因爲我不CI代碼多了)

它從來沒有給我麻煩,這是很容易設置。

+0

謝謝,它似乎工作得很好。 – Cornelis 2011-03-31 19:08:30

0

你應該使你的頁眉,頁腳,菜單等各自的視圖。通過這種方式,當您想要更改頁腳時,可以編輯該視圖,然後每個使用該視圖的控制器都將被更新。

有關多個視圖文件的更多信息,請參閱CodeIgniter docs

0

這裏有兩個半選項(假設你不想安裝某種插件)。

選項1是在您的意見中使用<?php $this->load->view('header'); ?>等。

選項2將在您的控制器中覆蓋output函數,該函數接受一個參數(頁面內容)並從那裏操作它(添加視圖和什麼)。 選項2.5將覆蓋基地CI_Controller並執行output函數的標準覆蓋與上面相同。

在做選項2/2.5之前檢查輸出類的文檔;您需要在回顯之前將輸出內容設置爲空或空字符串,否則內容將顯示兩次。

0

走出控制器

if($query->result()) 
{ 
    **$data['blog']** = $query->result(); 
} 
    $data['title'] = 'LemonRose'; 
    $data['content'] = 'home/home_content'; //this is the content section, a separate view from header and footer 
    //$this->output->cache(60); 
    **$this->load->view('template1', $data);** 
} 

注意模板1

模板1(這是整個頁面)

$this->load->view('tops/home'); 
$this->load->view($content); $content is the $data['content'] from above 
$this->load->view('bottoms/main_home'); 

那麼,內容部分(家庭/ home_content)將有收到$數據的地方[博客]

foreach (**$blog** as $row){ //controller main 

$row->title = ucwords($row->title); //more code goes below