How to create a breadcrumb widget

10 0
11
Viewed: 90 229 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 #3 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 or see the changes made in this revision.

    « previous (#2)next (#4) »

    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
    )); ?>
    
    Links

    Chinese version