CodeIgniter 3 Template Yapısı

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

<?php 
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

<div class="footer">
<span>footer</span>
</div>
</body>
</html>

Header

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title><?php echo $title; ?></title>
</head>
<body>
<div class="header">
<span>header</span>
</div>

Sidebar

<div class="sidebar">
<span>sidebar</span>
</div>

Index

<?php
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

	<div class="content-home">
<span><?php echo $a; ?></span>
<ul id="conU">
<?php for($x = 1; $x <= 10; $x++){ ?>	
<li><a href="#"></a><?php echo $x; ?></li>
<?php } ?>	
</ul>
</div>

Single

	<div class="content-single">
<span><?php echo $a; ?></span>
<ul id="conU">
<?php for($x = -5; $x <= 10; $x++){ ?>	
<li><a href="#"></a><?php echo $x; ?></li>
<?php } ?>	
</ul>
</div>

Controllers

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

<?php
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.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir