2011-01-06 4 views
0

Codeigniter(昨日)を使い始めたばかりで、人々が使用しているテンプレート機能が不思議です。CodeIgniter:テンプレートを使用するためのヒント

ビューを作成し、必要に応じてロードするだけですか?

おかげで、

Jonesy

+1

重複したhttp://stackoverflow.com/questions/3957000/what-c​​odeigniter-template-library-is-best。 – treeface

答えて

1

テンプレートのアイデアは、共通のヘッダーを持つ共有レイアウトを作成することです。ページごとに変更される "本文"があるだけです。あなたはこのようなあなたの意見のそれぞれの内側にヘッダーとフッターを含めることができる最も基本的なレベルで

荷重 - >ビュー(「ヘッダ」); ?>

これは私のページです。

load-> view( 'footer'); ?>

これは問題ありませんが、実際のサイズのアプリケーションを構築し始めると問題が発生します。

テンプレート作成には数多くの方法がありますが、私が何年も使ってきた方法はこれですTemplate library。さまざまなプロジェクトで20〜30のプロジェクトを見ていて、多くの人が使っているので、試してテストしたことが分かります。

+0

ページリンクは404になります。実際のリンク:https://github.com/philsturgeon/codeigniter-template –

0

はそれがビューを作成し、whenerever必要なだけで、それをロードすることは可能ですか?

はい。これは、CIだけでなく、MVC構造の典型的な動作です。あなたのビューは、ロジック/処理がほとんどないプレゼンテーションレイヤーです。

+0

私はヘッダーと呼ばれるビューを持っていたと私は別のビュー内のヘッダーを読み込むことができますか? – iamjonesy

+0

はい、正確です。それは一般的にどのように行われているのですか。基本的に<?php include( "header.php"); ?>あなたの意見に。このビューは、標準のPHPファイルと同じものですが、直接アクセスすることはありません。 :) –

+1

@iamjonesy:いいえ、あなたのビューに 'include'構文を使う必要はありません。別のビュー内でビューをロードする場合は、CodeIgniterのビューローダーを使用します: '$ this-> load-> view( 'header')'。 – treeface

0

これを行う別の方法は次のとおりです。お使いのコントローラで

、そう

$template_data = array('contains', 'data', 'for', 'template', 
         'while', 'the', 'specific' => array('may', 'contain', 
         'data', 'for', 'the', 'view_file')); 
$this->load->view('template/needed.php'); 

あなたのテンプレートのように、あなたのテンプレートをロードし、[必要であれば!]、あなたは今、それを移入する$template_data配列を持っています。あなたは今では

<div id="yield"> 
    <?php echo $this->view('specific/viewer.php', $template_data['specific']); ?> 
</div> 

ノートのような特定のビューをロードすることがあります。

  1. template/needed.phpapplication/viewsフォルダにする必要があります。
  2. specific/viewer.phpファイルも(すなわち、このファイルへのパスがWEB_ROOT/application/views/specific/viewer.phpのようなものでなければなりません)あなたのviewsディレクトリにする必要があります

これの美しさは、必要であれば任意のビューファイルをテンプレートとして使用することができることです。

関連する問題