Example #1
0
 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'));
 }