*

codeigniterのヘッダー、フッターはhookでなくloadで対応する

公開日: : CodeIgniter, footer, header, 未分類

small__364815092
photo credit: mrlerone via photopin cc

 

codeigniterでheaderとfooterを設定するときに、hookで対応する記事をよく見かけるが、

タイトルやデスクリプションなどURL毎に設定したい場合、やっかいだったりする。

view関数を呼び出したときにheaderとfooterを呼ぶ

$this->load->view();を呼び出したときにその前後にフッターとヘッダーを入れれば
各々コントローラで呼び出した時にタイトルやデスクリプションが設定できます。

view関数はloadオブジェクトつまりCI_Loaderクラスで定義しており、
それと application/core/my_loader.php を作成してCI_Loader クラスを親クラスとしてカスタマイズすれば対応可能です。

class MY_Loader extends CI_Loader {

	function __construct(){
		parent::__construct();
		$this->header_path = APPPATH . "views/header.php";
		$this->footer_path = APPPATH . "views/footer.php";
	}

	public function set_header($view)
	{
		$this->header_path = APPPATH . "views/".$view.".php";
	}

	public function set_footer($view)
	{
		$this->footer_path = APPPATH . "views/".$view.".php";
	}

	public function view($view, $vars = array(), $return = FALSE)
	{
		$ci =& get_instance();
		$class = $ci->router->fetch_class(); // Get class
		$action = $ci->router->fetch_method(); // Get action

		// 共通headerを読み込まない処理をいれる
		if(strpos($action, 'ajax') !== FALSE  || $class == "static") {
		} else{
			$header =  $this->_ci_load(array('_ci_path' => $this->header_path, '_ci_view' => $view, '_ci_vars' => $this->_ci_object_to_array($vars), '_ci_return' => $return));
		}

		// ボディ
		$body =  $this->_ci_load(array('_ci_view' => $view, '_ci_vars' => $this->_ci_object_to_array($vars), '_ci_return' => $return));

		// 共通footerを読み込まない処理をいれる
		if(strpos($action, 'ajax') !== FALSE  || $class == "static") {
		} else{
			$footer =  $this->_ci_load(array('_ci_path' => $this->footer_path, '_ci_view' => $view, '_ci_vars' => $this->_ci_object_to_array($vars), '_ci_return' => $return));
		}

		if($return) {
			return $body;
		}
	}
}
?>

お問い合わせはこちら!

関連記事

small__6757040007

codeigniterで、PC版とスマフォ版のテンプレートを自動で振分ける方法

  スマフォ版とPC版のテンプレートを切り替えるために、毎回コントローラでユ

記事を読む

vs2015xOpenCV

Visual Studio 2015でOpenCVを動かすための環境設定

OpenCVを利用してウェブカメラから画像を取得し、画面上に表示してみました。 コーディング環

記事を読む

medium_389294731 (1)

【Codeigniter】$this->db->where() の第3引数にfalseを指定した時の解説

photo credit: trekkyandy via photopin cc PHPに

記事を読む

medium_3229017611 (1)

PHP初心者は特に必見!CodeIgniter勉強するなら参考になるサイトまとめ

今でもメインで使っているし、使っていて気持ちのよいPHPフレームワークはCodeIgnite

記事を読む

small__9257451603

codeigniterで共通のヘッダーフッターの読み出しはCI_LoaderをextendsしたMY_Loaderで実装する

codeigniterで共通のヘッダー、フッターを読み込むときは、CI_Loaderクラスを

記事を読む

large__2433102356

codeigniterはセッション情報をクッキー保持するので、複数台構成でもセッション保持してくれる

サービスが拡大していくと、いずれサーバの複数台構成にしなければならなくなる状況になります。

記事を読む

medium_7374193248 (1)

PHP初心者の私がCodeIgniterを勉強して感じた4つのメリット、2つのデメリット

photo credit: Tc Morgan via photopin cc PHPを本

記事を読む

PAK12_10naname500

codeigniterで複数データベース切替方法について

codeigniterでデータベース切替を行うためにはどうしたらよいかを試行錯誤してみました

記事を読む

small__518053737

codeigniterでselect文にunionを使いたい

select文でunionを使いたいが、調べてみてると普通にできなさそうなので、librar

記事を読む

laravel_dev

Windows10にLaravel開発環境を構築

本記事は筆者のノートパソコンにLaravelプロジェクトの開発環境を構築した時のメモです。 構

記事を読む

お問い合わせはこちら!

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

お問い合わせはこちら!

35643
SourceTreeで差分ファイルを抽出

GitのクライアントでSourceTreeを利用する時、コミットの差分

2536_normal_1392167345_phpstudy
第104回 PHP勉強会に参加しました!

昨日「第104回 PHP勉強会@東京」に参加し、メイン発表をしました。

laravel_dev
Windows10にLaravel開発環境を構築

本記事は筆者のノートパソコンにLaravelプロジェクトの開発環境を構

1463577479_XAMPP
複数のXAMPPインストール

Windows環境でPHP開発をする際にXAMPPをインストールするこ

Laravel
Laravel 5.1 プロジェクト作成(インストール)

本記事ではLaravel 5.1 LTSを利用して開発するためにLar

→もっと見る

  • AWS構築 - クラウドアドバイザー
PAGE TOP ↑