6
9月
0
CodeIgniter2 #04 Layout レイアウトライブラリ
標準では Layout 機能がないのでここからもらってくる。
// file /application/libraries/Layout.php
<?php
if (!defined('BASEPATH')) exit('No direct script access allowed');
class Layout
{
var $obj;
var $layout;
function Layout($layout = "layout_main")
{
$this->obj =& get_instance();
$this->layout = $layout;
}
function setLayout($layout)
{
$this->layout = $layout;
}
function view($view, $data=null, $return=false)
{
$loadedData = array();
$loadedData['content_for_layout'] = $this->obj->load->view($view,$data,true);
if($return)
{
$output = $this->obj->load->view($this->layout, $loadedData, true);
return $output;
}
else
{
$this->obj->load->view($this->layout, $loadedData, false);
}
}
}
?>
使い方はこんな感じ。
// 最初にライブラリの読み込み
$this->load->library('layout', 'layout_main');
// もしいつも使うのであれば、application/config.php にて以下の設定を行う
$autoload['libraries'] = array('layout');
// ビューの出力
$data->title_for_layout='ページタイトル';
$this->layout->view('/shop/view_cart', $data);
// layout ファイル /application/views/layout_main.php
<html>
<head>
<title><?=$title_for_layout?></title>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<link rel="stylesheet" href="/css/main.css" type="text/css" />
</head>
<body>
<div id="pagewidth" >
<div id="header" ><img src="/images/header.jpg" width="700" height="200"></div>
<div id="wrapper" class="clearfix" >
<div id="twocols" class="clearfix">
<?php echo $content_for_layout?>
</div>
</div>
<div id="footer" > Footer >/div>
</div>
</body>
</html>
Enjoyed reading this post?
Subscribe to the RSS feed and have all new posts delivered straight to you.
Subscribe to the RSS feed and have all new posts delivered straight to you.
Post your comment