public function run() { //Определение правила по URL $currentRule = Yii::app()->urlManager->parseUrl(Yii::app()->request); $currentMask = null; //Маска URL (ключ в Rules) foreach (Yii::app()->urlManager->rules as $ruleParam => $ruleRow) { if ($currentRule == trim($ruleRow, '/')) { $currentMask = $ruleParam; break; } } if (!empty($currentMask)) { //Если маска найдена, то формируем крошку для корня через модель Pages $currentMaskArray = explode('/<', $currentMask); $currentMask = trim($currentMaskArray[0], '/'); /** @var $page Pages */ $page = Pages::model()->find('url = :url', array(":url" => $currentMask)); if (!empty($page)) { if (count($currentMaskArray) > 1) { $this->addLink(array($page->title => Yii::app()->urlManager->createUrl('/' . $currentMask))); } } } if (!empty($this->params['model'])) { //если у модели есть родители - находим их и добавляем в очередь if (!empty($this->params['model']->parent)) { $this->setParentLink($this->params['model']->parent); } //Инвертируем очередь и добавляем крошки в список if (!empty($this->parentLinks)) { $this->parentLinks = array_reverse($this->parentLinks); foreach ($this->parentLinks as $parentLink) { $this->addLink($parentLink); } } } parent::run(); }
/** * Init the widget */ public function init() { parent::init(); EBootstrap::mergeClass($this->htmlOptions, array('breadcrumb')); }