Codeigniter Dersleri – 9 – Header, Footer Dosyaları ve Verimli Yapı Oluşturma
Bu dersimizde pizza sipariş projemizin header footer dosyalarına yazı ekleyip, daha verimli controller dosyası oluşturmaya çalışacağız.
Şimdi Codeigniter/application/controllers altındaki pizza.php dosyamızı şu şekilde tekrar düzenliyoruz.
function index() { $data['title']='Kodmerkezi.net Pizza Sipariş Sayfası'; $data['header']='<h1>Pizza Siparis Projesi</h1>'; $data['footer']='© copyright kodmerkezi.net'; $this->load->model('pizza_model');//pizza_model classımızı projemize yüklüyoruz. $data['orders']=$this->pizza_model->get_all_orders();//get_all_orders fonksiyonunu çağırıyoruz ve sonucu $data değişkenimize atıyoruz. $this->load->library('MyMenu');//kütüphanemizi yüklüyoruz. $menu = new MyMenu; //classımızdan yeni bir obje oluşturuyoruz. $data['menu'] = $menu->show_menu();//objenin fonksiyonunu çağırarak menümüzü döndürüyoruz. $this->load->view('pizza_header',$data); $this->load->view('pizza_menu',$data);//kütüphaneden dönen menümüzü view dosyamıza yolluyoruz. $this->load->view('pizza_view',$data); $this->load->view('pizza_footer',$data); } function order() { $data['title']='Kodmerkezi.net Pizza Sipariş Sayfası'; $data['header']='<h1>Pizza Siparis Projesi</h1>'; $data['footer']='© copyright kodmerkezi.net'; $this->load->library('MyMenu'); $menu = new MyMenu; $data['menu'] = $menu->show_menu(); $this->load->view('pizza_header',$data); $this->load->view('pizza_menu',$data); $this->load->view('pizza_order',$data); $this->load->view('pizza_footer',$data); } |
Daha sonra buna uygun olarak Codeigniter/application/views altındaki pizza_header.php dosyasını şu şekilde:
<title><?=$title?></title> <?=$header?> |
pizza_footer.php dosyasını şu şekilde:
<?=$footer?> |
pizza_order.php dosyasını şu şekilde:
<?php echo "Siparis Sayfası </br>"; ?> |
pizza_view.php dosyasını şu şekilde:
<body> <h3>Siparişler</h3> <table border="1"> <tr><th>İsim</th><th>Pizza</th><th>İnce Kenar</th><th>Adet</th><th>Adres</th><th>Tip</th><th>Fiyat</th></tr> <?php foreach($orders as $row){ ?> <tr> <td> <?php echo $row->name;?> </td> <td> <?php echo $row->pizza;?> </td> <td> <?php if($row->thin_edge) { echo "Evet"; } else { echo "Hayır"; } ?> </td> <td> <?php echo $row->unit;?> </td> <td> <?php echo $row->address;?> </td> <td> <?php if($row->type=="1") { echo "Küçük"; } else if($row->type=="2") { echo "Normal"; } else if($row->type=="3") { echo "Büyük"; } ?> </td> <td> <?php echo $row->cost;?> </td> </tr> <?php } ?> </table> </body> </html> |
Sayfamız tekrar düzgün bir şekilde çalışır duruma geldi ancak, controller dosyamız olan pizza.php dosyamız biraz hantal oldu. Bunu şimdi biraz daha verimli hale getireceğiz.
İlk olarak Codeigniter/application/models altındaki pizza_model.php dosyamıza genel() adlı bir fonksiyon ekliyoruz. Controller dosyamız olan pizza.php içindeki bazı bilgileri buraya taşıyoruz.
<?php class Pizza_model extends CI_Model { function __construct() { parent::__construct(); $this->load->database();//database bağlantısı yapıyoruz. } function get_all_orders() { $query = $this->db->get('pizza');//pizza tablosundaki bütün verileri çekiyoruz. return $query->result();//sonucu return ediyoruz. } function get_specific_order($id)//fonksiyona gelen id ye göre tablomuzdan ilgili satırı çekiyoruz. { $query = $this->db->get_where('pizza',array('id'=>$id));//id = 1 olan verileri seçiyoruz sadece. return $query->result(); } function genel() { $data['title']='Kodmerkezi.net Pizza Sipariş Sayfası'; $data['header']='<h1>Pizza Siparis Projesi</h1>'; $data['footer']='© copyright kodmerkezi.net'; $this->load->library('MyMenu');//kütüphanemizi yüklüyoruz. $menu = new MyMenu; //classımızdan yeni bir obje oluşturuyoruz. $data['menu'] = $menu->show_menu();//objenin fonksiyonunu çağırarak menümüzü döndürüyoruz. return $data; } } ?> |
Şimdi pizza.php dosyamızı biraz temizleyebiliriz. Aşağıdaki hale gelir.
function index() { $this->load->model('pizza_model'); $data['orders']=$this->pizza_model->get_all_orders(); $data+=$this->pizza_model->genel();//verilerin üstüne dönen verileride dahil ediyoruz. $this->load->view('pizza_header',$data); $this->load->view('pizza_menu',$data); $this->load->view('pizza_view',$data); $this->load->view('pizza_footer',$data); } function order() { $this->load->model('pizza_model'); $data=$this->pizza_model->genel(); $this->load->view('pizza_header',$data); $this->load->view('pizza_menu',$data); $this->load->view('pizza_order',$data); $this->load->view('pizza_footer',$data); } |
Bu sayede her defasında aynı şeyleri yazmaktan kurtulduk. Sitemiz biraz daha efficient hale gelmiş oldu.
Bir sonraki dersimizde ayrıntılı şekilde form ve css lerden bahsedeceğim.
Bunlara da Göz Atmak İsteyebilirsiniz.
<<< Önceki: Codeigniter Dersleri – 8 – Kütüphane Oluşturma
Sonraki: Codeigniter Dersleri – 10 – Css Dosyası Hazırlama ve Kullanma >>>
code igniter ı yeni öğrenmeye başladım. sizin yazılarınızı takip ediyorum. 9 ders oldu. oldukça faydalı bilgiler var. aynı şekilde devam etmeinizi temenni ediyorum. iyi çalışmalar…
Yorum Bırakın!