Codeigniter ile Master page yapımı!

Codeigniter ile Master page benzeri sayfalar oluşturma (Codeigniter Template Oluşturma)


Merhabalar, bu makalede bazı sitelerde karşılaştığım sorular ile ilgili cevap niteliği oluşturabilecek yazı yazmak istedim. Soru şöyle; Codeigniter ile master page nasıl oluşturabilirim şeklindeydi. Aslında bu soruyu biraz açıklayacak olursak, Master page içerisinde header, footer ve her sayfada bulunmasını istediğimiz content bilgilerini barındıran bir template sistemidir. Yani bir sayfada değişmeyecek aynı kalacak özellikleri bir arada bulunduran bir template özelliği diye adlandırılabilir.Master page asp ile kullanılan bir özellik. Biz burada php framework'ü olan codeigniter ile master page benzeri bir yapı nasıl oluşturabiliriz? bunun üzerinde durarak makalemizi oluşturacağız. Kısa bir önbilgilendirme akabinde ders niteliğindeki makalemizi oluşturalım.

Örneğimizi local sunucuda oluşturacağımızdan dolayı localhost paket bileşenlerinin sisteminize kurulu olduğunu farz ederek devam ediyorum. Codeigniter dosyalarını resmi sitesinden indirdikten sonra local sunucumuza zip dosyasından çıkarıyoruz. CI config ayarlarını uygulama örneğinize göre ayarladıktan sonra views dizininde template diye bir dizin oluşturuyoruz. Template dizinimizin içerisine header_view.php ve footer_view.php dosyalarını oluşturuyoruz. İsimlerinden de anlaşıldığı üzere header_view.php dosyamızda sayfa üst bilgilerini, footer_view.php dosyamızda da sitemizin sayfa alt bilgilerini bulunduracağız. Views dizini içerisinde page_view.php oluşturuyoruz. Bu dosya Master page görevi yapacak dosyamız olacak. Ayrıca sitemiz de anasayfa_view.php ve hakkimizda_view.php dosyalarını bulunduruyoruz. Yani dizin yapımız son haliyle aşağıdaki resimdeki gibi olacak.











Şimdi header_view.php dosyasını oluşturalım.

header_view.php
<!DOCTYPE HTML>
<html lang="tr-TR">
<head>
    <meta charset="UTF-8">
    <title>Codeigniter Template Örneği</title>
    <link rel="stylesheet" href="<?php echo base_url('css/style.css'); ?>" />
    <script type="text/javascript" src="<?php echo base_url('js/ornek.css'); ?>"></script>
</head>
<body>
   <div class="sayfa">
       <div class="header">
            <div class="menu">
                <ul>
                    <li><a href="<?php echo site_url('page/index'); ?>">Anasayfa</a></li>
                    <li><a href="<?php echo site_url('page/hakkimizda'); ?>">Hakkımızda</a></li>
               </ul>
            </div>
            <div class="logo"><img src="<?php echo base_url('images/logo.png'); ?>" alt="ornek logo" /></div>
        </div>
        <div class="icerik">
footer_view.php sayfasını oluşturalım. footer_view.php
</div><!--icerik div inin sonu--> 
        <div class="footer">Copyright 2013</div>
   </div><!--sayfa div inin sonu--> 
</body>
</html>
ve sıra page_view.php sayfamızı oluşturalım, bu sayfa aşağıdaki gibi olacak.
page_view.php
<?php $this->load->view("template/header_view"); ?>
    <?php $this->load->view($sayfa); ?>  
<?php $this->load->view("template/footer_view"); ?> 

Buradaki sayfa değişkenine dikkat edelim. $sayfa değişkenini controller ımız gönderecek.
Diğer view' lerimizi oluşturalım. Tabi bu sayfalar çok daha farklı özellikleri barındırabilir fakat biz burada örnek bir uygulama geliştirdiğimiz için anasayfa ve hakkımızda sayfalarında sadece metin bulunduruyorum.

anasayfa_view.php ve hakkimizda_view.php
<div class="anasayfa">Burada anasayfa içeriği yer alacak.</div>
<div class="hakkimizda">Burada hakkımızda içeriği yer alacak.</div>

Evet views dosyalarımız hazır ve istediğimiz gibi yapılandırdık. Şimdi controller oluşturalım. Controller ismimiz page.php ve bu dosyayı application dizininde controllers dizininde oluşturuyorum.

page.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Page extends CI_Controller {
    
        function __construct(){
        
            parent::__construct();
        
        }

 public function index()
 {
            $data['sayfa'] ='anasayfa_view';
            
            $this->load->view("page_view",$data);
 }
        
        public function hakkimizda(){
            
            $data['sayfa']='hakkimizda_view';
            
            $this->load->view("page_view",$data);
           
        }
}
?>
Böylelikle oluşturduğumuz sayfa değişkenine view ismini atıyoruz ve page_view ine gönderiyoruz. page_view.php dosyamızda da  header ve footer viewlerimizi eklemiş oluyoruz. Yukarıda iki sayfa oluşturmuş olduk. index sayfasına anasayfa_view ini gönderdik ve anaysafa viewimin içeriği basılmış oldu. Aynı şekilde hakkımızda sayfasında da hakkimizda_view.php sayfasını göndermiş olduk. Siz yapacağınız site özelliğine göre farklı farklı sayfalar oluşturabilirsiniz. Basit şekliyle codeigniter ile template oluşturduk. Faydalı olması dileğiyle..

2 yorum:

  1. ellerine sağlık güzel olmuş.

    YanıtlaSil
  2. header_view sayfasındaki navigasyon linklerini veri tabanından çekmek istersek kodu nasıl düzenleyeceğiz

    YanıtlaSil