How to create a breadcrumb widget

10 0
11
Viewed: 90 231 times
Version: Unknown (update)
Category: Tutorials
    Written by: knut knut
    Updated by: Yang He Yang He
    Created: Mar 19, 2009
    Updated: 14 years ago

    You are viewing revision #1 of this wiki article.
    This version may not be up to date with the latest version.
    You may want to view the differences to the latest version.

    next (#2) »

    Here's a simple way to create a breadcrumb widget to be used in your templates. The idea is just to isolate how the breadcrumb is generated based on an array of crumbs.

    components/BreadCrumb.php:

    <?php
    class BreadCrumb extends CWidget {
    	
    	public $crumbs = array();
    	public $delimiter = '/';
    	
    	public function run() {
    		$this->render('breadCrumb');
    	}
    
    }
    ?>
    

    components/views/breadCrumb.php:

    <div id="breadCrumb">	
    	<?php 
    	foreach($this->crumbs as $crumb) {
    		if(isset($crumb['url'])) {
    			echo CHtml::link($crumb['name'], $crumb['url']);
    		} else {
    			echo $crumb['name'];
    		}
    		if(next($this->crumbs)) {
    			echo " {$this->delimiter} ";
    		}
    	}
    	?>
    </div>
    

    Usage in views ΒΆ

    <?php $this->widget('application.components.BreadCrumb', array(
      'crumbs' => array(
        array('name' => 'Home', 'url' => array('site/index')),
        array('name' => 'Login'),
      ),
      'delimiter' => '&rarr;', // if you want to change it
    )); ?>