codeigniter bread crump library
Codeigniter i projelerimde kullanmaya devam ediyorum. Bu süreçte de bazı kütüphaneler ihtiyacım oluyor ve kendim yazmam gerekebiliyor.
Bunlardan birisi de bread crump olarak adlandırılan uygulama için yazdığım library. Bread crump, siz sayfalarda gezindikçe hiyerarşik olarak gezdiğiniz sayfaların sırasını sayfanın bir köşesinde gösteren uygulamadır. Örnek için tıklayınız.
İlk olarak kütüphanemizi oluşturuyoruz. İsmini bread_crump.php koyuyoruz ve application/libraries içine kaydediyoruz. Kütüphanemizin içeriği ise şu şekildedir:
<?php
/**
* A bread crump generation library for CodeIgniter.
*
* Copyright (c) 2010 Onur DEGERLI
*
* jci! bread_crump - v1
*
* Usage example:
* -------------------
* $config['breadcrump_start'] = '<a href="'.$this->config->item('base_url').'">Anasayfa</a>';
* $this->load->library('bread_crump');
* $this->bread_crump->initialize($config);
* $this->bread_crump->add_bread_crump(array('keyword'=>'Deneme','link'=>'deneme'))
* echo $this->bread_crump->generate_bread_crump();
* -------------------
*
* @author Onur DEGERLI <onurdegerli@gmail.com>
*/
class Bread_crump {
var $CI;
var $bread_crump;
var $ayrac = '»';
/**
* Class constructor with optional parameter, which calls the initialize() method
* @param $config array optional array containing configuration
*/
function Bread_crump($config = array())
{
$this->CI =&amp; get_instance();
$this->initialize($config);
}
/**
* Initializes the library with the configuration given either in a parameter or in config.php
* @param $config array optional array containing configuration and global default bread crump
*/
function initialize($config = array())
{
if(empty($config))
{
$config['breadcrump_start'] = $this->CI->config->item('breadcrump_start');
$config['ayrac'] = $this->CI->config->item('ayrac');
}
if(isset($config['ayrac']))
{
$this->ayrac = $config['ayrac'];
}
if(isset($config['breadcrump_start']))
{
$this->bread_crump = $config['breadcrump_start'].' '.$this->ayrac.' ';
}
}
/**
* Adds a unit to the bread_crump array
* @param $arr_bread_crump string
*/
function add_bread_crump($arr_bread_crump,$flag_ayrac=false)
{
if($arr_bread_crump['link']!='') {
$this->bread_crump .= "<a href='".$arr_bread_crump['link']."'>";
}
$this->bread_crump .= $arr_bread_crump['keyword'];
if($arr_bread_crump['link']!='') {
$this->bread_crump .= "</a>";
}
if($flag_ayrac==true) {
$this->bread_crump .= ' '.$this->ayrac.' ';
}
}
/**
* Generates bread crump following the HTML conventions
* @return string the compiled bread crump for insertion into your view
*/
function generate_bread_crump()
{
return $this->bread_crump;
}
}
/* End of file bread_crump.php */
/* Location: ./system/application/libraries/bread_crump.php */
Ardından bread crump uygulamak istediğimiz controller class'ına oluşturuyoruz. add_bread_crump fonksiyonunu kaç link oluşturacaksak o kadar çağırıyoruz. Application/controllers içerisinde detay.php isimli bir controller class'ı oluşturuyoruz. index() fonksiyonunun içerisinde bread crump datalarımızı oluşturuyoruz.
<?php
/*
*
* detay class'i
* @abstract
*
* @author Onur DEGERLI
* @email <onurdegerli@gmail.com>
* @copyright Copyright (c) 2010 Onur DEGERLI
* @version 1.0
* @access public
* */
class Detay extends Controller {
public function __construct()
{
parent::Controller();
}
function index()
{
$this->load->library('bread_crump');
$config['breadcrump_start'] = '<a href="'.$this->config->item('base_url').'">Anasayfa</a>';
$this->bread_crump->initialize($config)
$this->bread_crump->add_bread_crump(
array(
'link'=>$this->config->item('base_url').'urunler',
'keyword'=>'Ürünler'
),true
);
$this->bread_crump->add_bread_crump(
array(
'link'=>'',
'keyword'=>'Bilgisayar'
)
);
$this->data['bread_crump'] = $this->bread_crump->generate_bread_crump();
$this->load->view('detay');
}
}
?>
Son olarak ise application/views dizini içerisinde detay.php isimli view dosyamızı oluşturuyoruz ve bread crump'ı yazdıracağımız yere aşağıdaki kodu yazıyoruz.
<?=$bread_crump?>
Sonuç olarak ise size Anasayfa»Ürünler»Bilgisayar şeklinde bir çıktı verecektir. İsterseniz başlangıç linkini ve ayracı istediğiniz gibi parametre vererek oluşturabilirsiniz.
Umarım kolaylıkla uygulayarak projelerinizi daha kullanışlı hale getirirsiniz. Kolay gelsin...
Comments(4)
Güzel bir kütüphane, gayet güzel çalışıyor.
Teşekkürler. Güle güle kullan
tam yazmaya üşenipte hazır bir şeyler ararken tanıdık birilerinden bir çözüm yolu bulmuşken selam edeyim dedim
teşekkürler
eyvallah enver