Codeigniter web frameworkü için basit ve kullanışlı bir template kütüphanesi hazırladım. Bu kütüphaneyi kullanarak projelerinize farklı temalar uygulayabilir, header,footer ve content alanlarını ayırabilir, css ve javascript dosyalarınızı yönetebilirsiniz.

Öncelikle aşağıdaki linkten kütüphane dosyalarını indirip codeigniter dizini içerisinde uygun yerlere kopyalamamız gerekiyor;
https://github.com/tkaratug/Codeigniter-Simple-Template-Library

Dizin yapısı şu şekilde;

|__ application/
|   |__ controllers/
|       |__ Home.php
|   |__ libraries/
|       |__ Template.php
|   |__ views/
|       |__ _parts/
|           |__ public_header_view.php
|           |__ public_footer_view.php
|       |__ home_view.php
|__ assets/
|   |__ admin/
|       |__ themes/
|           |__ default/
|               |__ css/
|               |__ images/
|               |__ js/
|   |__ public/
|       |__ themes/
|           |__ default/
|               |__ css
|               |__ images
|               |__ js

 

Dosya ve dizinleri ilgili yerlere kopyaladıktan sonra "config/autoload.php" dosyası içerisindeki library dizisine "template" kütüphanemizi ekliyoruz;

$autoload['libraries'] = array('template');

 

Kullanımı:

Aşağıda bir örnek controller oluşturup kütüphanenin nasıl kullanıldığını görelim;

class Home extends CI_Controller
{
    function __construct()
    {
        parent::__construct();
		
		// Kütüphaneyi sayfaya dahil ettik
        $this->load->library('template'); 
		
        // Sayfamızın ön yüzde mi yoksa admin panelde mi olduğunu belirttik
		$this->template->set_platform('public');
		
		// Tema olarak default temamızı seçtik.
        $this->template->set_theme('default');
    }

    public function index()
    {
        $data['content']    = 'Hello World !';
		
		// Sayfa başlığımızı belirledik
        $this->template->set_title('Simple Template Library');
		
		// Header'a css dosyalarımızı ekledik.
        $this->template->set_css('bootstrap.min.css');
        $this->template->set_css('bootstrap-theme.css');
        $this->template->set_css('navbar.css');
		
		// Footer'a jquery kütüphanesini ve bootstrap.js dosyamızı ekledik
        $this->template->set_js('https://code.jquery.com/jquery-1.11.3.min.js','footer','remote');
        $this->template->set_js('bootstrap.min.js','footer');
		
		// Meta author bilgisini ekledik
        $this->template->set_meta('author','Turan Karatuğ');
		
		// View dosyamızı belirttik
        $this->template->set_layout('home_view');
		
		// Verilerimizi view dosyasına gönderdik.
        $this->template->render($data);
    }
}

Yukarıda kodda gördüğünüz css ve javascript dosyaları örnek olması açısından seçilmiştir. View dosyamızın içeriği de aşağıdaki gibi olacaktır;

<?php $this->load->view('_parts/public_header_view'); ?>
	
<HTML İçeriği>
		
<?php $this->load->view('_parts/public_footer_view'); ?>

Methodlar:

Kütüphane içerisinde yer alan methodları kullanımları ile birlikte açıklayalım;

set_css($css_file, $source = 'local')

Bu method ile sayfamıza dahil edilecek css dosyalarımızı belirliyoruz. '$source' parametresi 'local' ve 'remote' olmak üzere 2 değer alabilir. Bu değer 'local' olursa '$css_file' parametresine css dosyamızın adı, 'remote' olursa css dosyamızın url bilgisi verilir. Eğer source parametresi verilmezse default olarak 'local' gibi işlem yapar.

set_js($js_file, $location = 'header', $source = 'local')

Bu method ile sayfamıza dahil edilecek javascript dosyalarımızı belirliyoruz. '$location' parametresi 'header' ve 'footer' olmak üzere 2 değer alabilir. Bu değer 'header' olursa javascript dosyası '<head></head> tagları arasına, 'footer' olursa '</body>' tagının üzerine eklenir. Eğer location parametresi verilmezse default olarak 'header' gibi işlem yapar. '$source' parametresi ise set_css() methodu ile aynı şekilde çalışır.

set_meta($meta_name, $meta_content)

Bu method ile sayfamıza dahil edilecek meta tagları belirliyoruz. Parametreler anlaşılacağı gibi meta name ve meta content değerlerini alır.

set_title($title)

Bu method ile sayfamızın başlığını belirliyoruz. Parametre olarak verdiğimiz değer sayfa başlığımız olacaktır.

get_css()

Sayfaya dahil edilen tüm css dosyalarını bir dizi olarak döndürür.

get_js($location = 'header')

Sayfaya dahil edilen tüm javascript dosyalarını bir dizi olarak döndürür. Parametre olarak 'header' ve 'footer' değerlerini alır. Verilen parametreye göre ilgili bölüme eklenen javascript dosyalarını döndürür. Eğer parametre verilmezse default olarak 'header' gibi işlem yapar.

get_meta()

Sayfaya dahil edilen tüm meta tagları bir dizi olarak döndürür.

get_title()

Sayfa başlığı için belirlediğimiz title değerini döndürür.

set_layout($layout)

Bu method ile view dosyamızı belirliyoruz.

get_layout()

Belirlediğimiz view dosyasının ismini döndürür.

set_theme($theme)

Bu method ile kullanacağımız temayı beliriyoruz. '$theme' parametresi temamızın ismi olmalıdır.

get_theme()

Belirlediğimiz tema ismini döndürür.

set_platform($platform)

Bu method ile sayfamızın ön yüz mü yoksa yönetici paneli mi olduğunu belirliyoruz. Buna göre ilgili bölüme ait tema dosyaları içerisinden seçim yapılıyor.

get_platform()

Belirlediğimiz tema alanını döndürür.

render($data = array())

Bu method ile controller içerisindeki işlemlerimizin sonucu view dosyasına gönderilir. '$data' parametresi controller'dan view'a gönderilecek değişkenleri tutar.

View Dosyaları:

Bu kütüphane ile sayfalarınızın header, footer ve content(içerik) alanlarını ayrı ayrı yönetebilirsiniz. Controllerda belirlediğiniz css ve javascript dosyaları, meta taglar ve sayfa başlığınız kullandığınız methodlarda belirttiğiniz parametrelere göre public_header_view.php ve public_footer_view.php dosyalarına eklenir. Örnekte ön yüzde tema kullanımını anlattığım için ben public ön takısını ekledim. Siz bu dosya isimlerini kendinize göre değiştirebilirsiniz.