CodeIgniterは軽量で速いPHPフレームワークですが、そのままの設定だとちょっと使いづらいかもしれません。
そこで、ちょっと使いやすくする為に、わたしが普段使っている共通のコントローラーを作る方法をご紹介します。

コントローラーのファイルは初期の状態ではwelcome.phpがあると思います。

welcome.phpの中で、

[php]

public function index()
{
$this->load->view(‘welcome_message’);
}

[/php]

このように、welcome_messageというViewファイルを呼び出し、ページをレンダリングしています。
これでは、共通のテンプレートファイルがあるときにちょっと使いづらいかもしれませんね。

そこで、共通のコントローラーファイルを作り、新しく作るコントローラーファイルはすべてこの共通のコントローラーを継承して作るようにします。

まず、共通コントローラー、ページをレンダリングするファンクションを作ります。
コントローラーファイルはすべてapplication/controllers/以下に配置します。
例)base.php
[php]

<?php

class Base extends CI_Controller {
// コンストラクタ
public function __construct() {
// Controllerクラスのコンストラクタを呼び出す
parent::__construct();
}
// テンプレートファイルレンダリング用のファンクション
function _render ( $view, $data=null) {
// レンダリングするデータをセットする
$content["content"] = $this->load->view($view, $data, true);
// 読み込むレイアウトを指定してページ描画
$this->load->view( ‘template’, $content);
}
}

?>

[/php]

次に、今作ったbase.phpを継承し、index.phpを作成してみましょう。
例)index.php
[php]

<?php

// include(base.phpをインクルードする)
require_once(‘base.php’);

class Index extends Base {
// コンストラクタ
public function __construct() {
// Baseクラスのコンストラクタを呼び出す
parent::__construct();
}
// 初期画面
public function index(){
// 表示用配列データの初期化
$data = Array();
// 表示させたいメッセージを配列に格納する。
$data['welcome_message'] = ‘welcome TEST’;
// ページ描画(base.phpのファンクションを呼び出す)
$this->_render("indexView", $data);
}
}

?>

[/php]

base.phpで呼び出している、テンプレートファイルを作成します。
このファイルは、常にページで表示されている部分、ヘッダーやフッダーを別にして表示する時などに便利です。
ビューファイルはすべてapplication/views/フォルダに配置します。
例)template.php
[php]
<html>
<head>
<title>CodeIgniter共通ファイルテスト</title>
</head>
<body>

<!– base.phpでレンダリングしたデータを表示する –>
<?php echo $content; ?>

</body>
</html>

[/php]

最後に、index.phpのビューファイルを作成します。
例)indexView.php
[php]

<p>
<!– index.phpで配列に格納したデータを表示 –>
<?php echo $welcome_message; ?>
</p>

[/php]

これで、共通テンプレートを表示しつつ、中身のコンテンツを自由に入れ替えれるページ構成が完了しました。
index.phpで設定したデータを、indexView.phpで取り出しレンダリングし、base.phpでそのレンダリングしたデータをphpで扱えるデータに変換し、配列に格納。
その後で、template.phpに最終的に表示させるという仕組みです。

template.phpはすべてのページで同じ物が表示されますので、サイトメンテナンスがぐっと楽になり、負担も軽減されます。
さらに、base.phpのページを描画する処理の前に共通の処理(例えばセッションのチェック等)の処理を入れておけば、ページを表示するたびにこの処理を通せるような構成も可能です。

このように自由な構成で、ページがくめるのもCodeIgniterの長所と言えると思います。