2011-10-30 2 views
3

私は過去のカスタムphpフレームワークとdjangoテンプレートを使って作業しました。どちらも "ベーステンプレート"として記述することができます。つまり、ヘッダーとフッターを持つファイルがあり、divはidの "content"で言うことができます。ビューファイル内のすべてに、その "content" divを埋め込むコードの部分だけが含まれているので、ヘッダーとフッターはそのベーステンプレートによって配置されます。Codeigniterにインクルードとベーステンプレートを使用するには?

この種の「ベースレイアウト」をコードネイターで実装するにはどうすればよいですか。それが不可能な場合、どのように私のすべてのビューにheader.phpとfooter.phpファイルをそれぞれのビューの上下に追加する必要がありますか?

答えて

4

答えみんなのおかげで、私はこの質問にjruzafaによって与えられた以下の答えを行くことにしました。それは私が望んでいたまさにんので

How to Deal With Codeigniter Templates?

とdoesnの追加の拡張子を必要としません:

私はcodeigniterテンプレートを行うためにいくつかの方法を試みました。 滞在は、以下のように、最も簡単で簡単です。コントローラで

:ビューtemplate.phpで

>  //Charge the view inside array 
>  $data['body'] = $this->load->view('pages/contact', '', true); 
> 
> 
>  //charge the view "contact" in the other view template 
>  $this->load->view('template', $data); 

> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
> "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"><html 
> xmlns="http://www.w3.org/1999/xhtml" xml:lang="es"> <head> 
>  <title>Template codeigniter</title> </head> <body> 
>  <div> 
>   <?=$body?> 
>  </div> 
>  <div class="clear"></div> 
>  <div>Footer</div> 
>  </div> </body> </html> 

$体ビュー・コンタクトです。

+0

私は分かりません。このメソッドを使用すると、コントローラのすべての変数が失われ、多くの '未定義の変数'メッセージが生成されます。 – russellmania

0

私はあなたを完全に理解していませんでしたが、ビュー( 'base_view')を作成してから、ベースビュー自体から共通ビューを読み込みながら変数を使用してコンテンツを提供できます。

コントローラー部分:

$data['content'] = "<div>My content</div>"; 
$this->load->view('base_view', $data); 

Base_view部分:このような

$this->load->view('header'); 
echo $content; 
$this->load->view('footer'); 

は、この情報がお役に立てば幸いです。

関連する問題