Anasayfa » Codeigniter, Php

Codeigniter Dersleri – 15 – Tablo Kütüphanesi

13 Temmuz 2011 3.858 kez okundu 5 yorum
1 Star2 Stars3 Stars4 Stars5 Stars (1 oy,5 üzerinden : 5,00 )
Loading ... Loading ...

Bu dersimizde tablo kütüphanesi kullanarak, html tablo kodlarını kullanmadan tablo yaratacağız. Projemizde siparişlerin göründüğü sayfanın tablosunu elle dizayn etmiştik. Şimdi bu işi codeigniterin tablo kütüphanesine bırakacağız.

Hemen model dosyamız olan pizza_model.php dosyamızı düzenleyerek işe koyulalım. Model dosyamızda daha önceden var olan get_all_orders() fonksiyonunu biraz güncelleyelim.

	function get_all_orders()
	{
		$this->load->library('table');  //tablo kütüphanemizi yüklüyoruz.
		$query = $this->db->get('pizza');
		$table = $this->table->generate($query);  //tablomuz oluşturulup $table değişkenine atılıyor.
        return $table;  
 
	}

Şimdi controller dosyamız olan pizza.php dosyasındaki index() fonksiyonunu düzenleyeceğiz.

	function index()
	{		
		$this->load->model('pizza_model');
		$data=$this->pizza_model->genel();
		$data['tablo'] = $this->pizza_model->get_all_orders(); //bütün siparişler tablo halinde hazır geliyor.
		$this->load->view('pizza_view',$data);
 
	}

Şimid sadece view dosyamızda bulunan onca tablo için kullandığımız html kodunu silmek kaldı. Bütün tablo kodlarını siliyoruz ve yerine sadece echo $tablo yazıyoruz. Şu şekilde

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<html>
<head>
<link rel="stylesheet" type="text/css"  href="<?php echo $base.'css/'.$css?>"><!-- Css dosyamızı burada include ettik -->
</head>
<body>
<div id="header">
<?php $this->load->view('pizza_header'); ?><!-- header dosyamızı burada include ettik -->
</div>
<div id="menu">
<?php 	$this->load->view('pizza_menu'); ?><!-- menü dosyamızı burada include ettik -->
</div>
 
<h3>Siparişler</h3>
 
<?=$tablo ?>
 
<div id="footer">
<?php $this->load->view('pizza_footer'); ?><!-- footer dosyamızı burada include ettik -->
</div>
 
</body>
</html>

Böylece fazlalıklardan kurtulduk ve daha temiz bir sayfaya sahip olduk. Bu gibi kütüphaneler bizleri uzun uzun kodlar yazmaktan kurtarıyor. İşte framework yapısı burada devreye girmiş oluyor. Çok kullanılan yapıların kütüphaneleri hazırlanıyor ve kod yazan kişiye tablo yapmak ile değil de işin detaylarını yapmak ile uğraşıyor.

<<< Önceki:

Sonraki: >>>


Facebookta Paylaş

5 yorum »

  • Serkan Ersan dedi ki:

    Selam,

    Peki kütüphane ile otomatik oluşturulan bu tablonun özelliklerini nasıl değiştirebiliriz veya değiştirebilir miyiz? (border, alignment v.s.)

  • admin dedi ki:

    \system\libraries altındaki table.php dosyası içerisindeki _default_template() fonksiyonu tablonun görünümünü belirler. Burada değişiklik yapılarak, tablonun özelleştirilmesi yapılabilir. Benim tavsiyem _default_template() fonksiyonundaki ilk satırdaki table tagının içerisinde bulunan
    table border="1" ,cellpadding="2"
    gibi özelliklerin yanına
    class="mytable"
    gibi bir özellik daha ekleyerek tabloya class eklemiş oluruz. Daha sonra hazırladığımız css dosyası ile tablomuza istediğimiz özelliği atayabiliriz.

    Değişiklikler direk _default_template() fonksiyonu içerisinde de yapılabilir ancak önerilmez.

  • levent dedi ki:

    codeigniter projemi sayenizde yetiştirdim teşekkür ederim

  • berkturk dedi ki:

    bu olay muhteşemmiş.
    @admin jquery ile tabloya stil atayabiliriz.
    örnek

    jQuery(function(){
    $('table').addClass('table table-hover');
    $('tr').addClass('info');
    })

    ayrıca hangi alanların tabloda gözükeceğini de ayarlayabiliyorsunuz.
    model dosyasında ki sql sorgusunu şu şekilde ayarlayabilirsiniz.

    $this->load->library('table'); //tablo kütüphanemizi yüklüyoruz.
    $this->db->select("isim_soyisim,username,email");
    $this->db->from('user');
    $query = $this->db->get();
    $table = $this->table->generate($query); //tablomuz oluşturulup $table değişkenine atılıyor.
    return $table;

  • Hacı Bekir dedi ki:

    Etkilendim 🙂

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.