Хм.
А как тогда сделать, чтобы удобно было использовать.
Например в классе просто
function buildBreadcrumb()
{
// или с return? buildBreadcrumb нужно будет потом в __construct инициализировать его.
$this->_breadcrumb->add('Страница', 'account');
}
вне класса
$breadcrumb->add('Страница', 'account');
Вот класс собственно
PHP:
скопировать код в буфер обмена
class breadcrumb { var $_crumb; function breadcrumb() { $this->reset(); } { } public function add($title, $link = '') { $this->_crumb [] = array('title' => $title, 'link' => $link); } public function trail($separator = ' - ') { $array['trail'] = $this->_crumb; $array['separator'] = $separator; $separator = $array['separator']; $this->_crumb = $array['trail']; $trail_string = ''; for ($i=0 , $n=sizeof($this->_crumb ); $i<$n; $i++) { if (isset($this->_crumb [$i]['link']) && os_not_null ($this->_crumb [$i]['link'])) { $trail_string .= '<a href="' . $this->_crumb[$i]['link'] . '">' . $this->_crumb[$i]['title'] . '</a>'; } else { $trail_string .= $this->_crumb[$i]['title']; } if (($i+1) < $n) $trail_string .= $separator; } return $trail_string; } }
В шаблон сейчас передается просто
$tpl->assign('breadcrumb', $breadcrumb->trail());
(Добавление)
------------
Со Smarty получилось сделать правильно
PHP:
скопировать код в буфер обмена
public static function getInstance($newInstance = null) { static $instance = null; $instance = $newInstance; if ( $instance == null ) $instance = new MySmarty(); return $instance; }
нашел на форуме решение.(Отредактировано автором: 09 Января, 2012 - 09:45:48)
|