Anasayfa » Codeigniter, Php

Codeigniter Dersleri – 9 – Header, Footer Dosyaları ve Verimli Yapı Oluşturma

4 Temmuz 2011 8.092 kez okundu Bir yorum
1 Star2 Stars3 Stars4 Stars5 Stars (7 oy,5 üzerinden : 4,43 )
Loading...

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.

<<< Önceki:

Sonraki: >>>


Facebookta Paylaş

Bir yorum »

  • Sadullah dedi ki:

    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!

Yorum yaz, yada kendi sitende trackback (Geri besleme) olarak ekle. Ayrıca RSS ile bu konuya üye olabilirsin. .

Nazik olun. Temiz tutun. Konu dışına çıkmayın. Spam yaratmayın.

Bu tagları kullanabilirsiniz:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Bloğumuz gavatarı desteklemektedir. Kendi gavatarınızı edinmek için lütfen Gravatar a üye olun.