Мне просто нужно было выяснить это для нового сайта, который мы создаем, и я придумал следующее;используйте на свой страх и риск (я сообщу, если у меня возникнут какие-либо серьезные проблемы, но я не могу предвидеть никаких ... знаменитых последних слов)
В основном хлебные крошки встроены в контроллеры, и нам нужнорезультирующий массив $breadcrumbs
в контроллере заголовка.Измените system/engine/controller.php
следующим образом:
[...snip...]
protected function render() {
foreach ($this->children as $child) {
$this->data[basename($child)] = $this->getChild($child,array('parent_data'=>&$this->data));
}
[...snip...]
Это отправит все данные в родительском контроллере до вызова render()
на каждый контроллер / метод $children
.Тогда нам просто нужно поднять это в контроллере заголовка следующим образом:
<?php
class ControllerCommonHeader extends Controller {
protected function index($args=array()) {
// parent data
$this->data['parent_data'] = $args['parent_data'];
[...snip...]
И мы можем получить доступ ко всему в шаблоне с помощью $parent_data['whatever']
.В этом случае $parent_data['breadcrumbs']
будет массивом хлебных крошек, которые я могу зациклить с кодом, который я удалил из каждого page.tpl
и добавил к моему header.tpl
.