CodeIgniter öğrenmeye yeni başladığım sıralarda template yapısına gerek duymamıştım fakat blog sistemi yazmaya karar verdiğimde ne kadar elzem bir ihtiyaç olduğunu anlamam uzun sürmedi. Birkaç döküman ve video taramasından sonra amacıma ulaştım. Bu konuda pek Türkçe kaynak olmamasından mütevellit blogumda paylaşmaya karar verdim. Olay şöyle ki;

Öncelikle kütüphanemizi oluşturalım. CodeIgniter dizininde libraries klasöründe “TempK” isminde bir PHP dosyası oluşturalım.

TempK

class tempK {

protected $CI;

public function __construct()
{
$this->CI =& get_instance();
}

public function get($temp, $data=null)
{

$data['header'] = $this->CI->load->view('template/header',$data,true);
$data['sidebar'] = $this->CI->load->view('template/sidebar',$data,true);
$data['content'] = $this->CI->load->view('content/'.$temp,$data,true);
$data['footer'] = $this->CI->load->view('template/footer',$data,true);
$this->CI->load->view('template/index',$data);


}

}

?>


Yukarıda yer alan kodlarımızda, template klasörümüzde bulunan header.php, sidebar.php, footer.php ve content klasöründe bulunan dosya ismi dinamik olan home.php dosyamıza veri gönderelim. En alt satırda da index.php dosyamızda gösterelim.

Template
View klasörümüzün içerisine Template isminde bir klasör daha oluşturalım ve içerisinde header.php, sidebar.php, footer.php ve index.php dosyaları oluşturalım.

Footer




Header







<?php echo $title; ?>



header

Sidebar





Index




echo $header;
echo $sidebar;
echo $content;
echo $footer;

?>

Content
Template yapımızda içerik kısmımızda yer alacak PHP dosyalarını oluşturalım. Ben, single.php ve home.php olarak iki farklı sayfa oluşturdum.
Home












Single











Controllers
Şimdi de controller için kodlarımızı yazalım. Template isminde bir PHP dosyası oluşturuyorum.


defined('BASEPATH') OR exit('No direct script access allowed');

class Template extends CI_Controller {
function __construct()
{
parent::__construct();
$this->load->library('tempK');
}

public function index()
{
$data['title'] ="Ben home başlığım.";
$data['a'] ="Ben home içeriğim.";
$this->tempK->get('home',$data);

}
public function single()
{
$data['title'] ="Ben single başlığım.";
$data['a'] = "Ben single içeriğim.";
$this->tempK->get('single',$data);

}

}

?>


Sonuç
Genel anlamda yapımız bu şekilde. template/index‘e ya da template/single adreslerine baktığımızda başarılı bir şekilde çalıştığını görebilirsiniz. Bu şekilde devam ettiğinizde temeli sağlam bir yapı çıkartabilirsiniz.

Paylaşın, sevin, mutlu olun.

Kaynak: http://www.mkoseoglu.com/codeigniter-template-yapisi