<?php defined('SYSPATH') or die('No direct access allowed.');

/**
 * This class is for rendering a breadcrumb menu.
 *
 * @package    lnApp
 * @subpackage Page
 * @category   Helpers
 * @author     Deon George
 * @copyright  (c) 2010 Deon George
 * @license    http://dev.leenooks.net/license.html
 */
class lnApp_Breadcrumb extends HTMLRender {
	protected static $_data = array();
	protected static $_spacer = ' &raquo; ';
	protected static $_required_keys = array('body');

	/**
	 * Set the breadcrumb path
	 *
	 * @param array Block attributes
	 */
	public static function set($path) {
		if (is_string($path))
			static::$_data['path'] = explode('/',$path);
		else
			static::$_data['path'] = $path;
	}

	/**
	 * Enable a friendly name to be used for a path
	 */
	public static function name($path,$name) {
		static::$_data['name'][$path] = $name;
	}

	/**
	 * Return an instance of this class
	 *
	 * @return Breadcrumb
	 */
	public static function factory() {
		return new Breadcrumb;
	}

	/**
	 * Render this Breadcrumb
	 */
	protected function render() {
		$output = HTML::anchor('/',_('Home'));

		$data = empty(static::$_data['path']) ? explode('/',Request::instance()->uri) : static::$_data['path'];

		foreach ($data as $k => $v) {
			$output .= static::$_spacer;

			$p = join('/',array_slice($data,0,$k+1));
			$output .= HTML::anchor($p,empty(static::$_data['name'][$p]) ? ucfirst($v) : static::$_data['name'][$p]);
		}

		return $output;
	}
}
?>
