Skip to content

Как формировать breadcrumbs в topicViewTemplate

В глобальном шаблоне передается массив $items, в частности он используется для формирования "breadcrumbs". Мне же надо формировать их непосредственно в шаблоне "topicViewTemplate".

Вообщем если кому-то еще пригодится:

Лезем в файлик

admin/applications/forums/modules_public/forums/topics.php и ищем строки

if ( is_array( $this->nav ) AND count( $this->nav ) )
{
 foreach( $this->nav as $_nav )
 {
   $this->registry->output->addNavigation( $_nav[0], $_nav[1], $_nav[2], $_nav[3] );
 }
}

 

Вырезаем их и вставляем немного выше, над строкой:

$template = $this->registry->output->getTemplate('topic')->topicViewTemplate( $this->forum, $this->topic, $post_data, $displayData );

 

В итоге это должно будет выглядеть примерно так:

if ( is_array( $this->nav ) AND count( $this->nav ) )
{
 foreach( $this->nav as $_nav )
 {
   $this->registry->output->addNavigation( $_nav[0], $_nav[1], $_nav[2], $_nav[3] );
 }
}

$template = $this->registry->output->getTemplate('topic')->topicViewTemplate( $this->forum, $this->topic, $post_data, $displayData );

 

Теперь идем в наш шаблон 'topicViewTemplate'.

Добавляем в переменные $items.

 

И в том месте где нам необходимо вставить "хлебные крошки" пишем:

<php>
$items = $this->registry->output->_navigation;
</php>

<ul id='breadcrumb' class='left'>
<foreach loop="$items as $idx => $data">
 <li>
   <span class='nav_sep'>{parse replacement="f_nav_sep"}</span>
   <a href='{parse url="{$data[1]}" base="$data[4]" seotitle="$data[2]" template="$data[3]"}' title='{$this->lang->words['nav_return_to']}{$data[0]}'>{$data[0]}</a>
 </li>
</foreach>
 <li>>{$topic['title']}</li>
</ul>

 

Возможно придеться еще немного подправить стили.

Если например надо будет продублировать "хлебные крошки" внизу страницы то нужно добавить код без верхних трех строк (он конечно не навредит но всё же).

Я проверял и это замечательно работает на 3х уровнях вложенности.

User Feedback

Recommended Comments

There are no comments to display.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.