2012-03-08 2 views

ответ

1

Из-за того, что код 1.5.X закодирован, вам необходимо переписать каждый контроллер и добавить метод обратно в класс документа, чтобы разрешить переход от контроллера продукта к контроллеру заголовка. Есть ли какая-то конкретная причина, по которой вы хотите это сделать?

+0

Да. Посмотрите на store.imayne.com. Мне нужна сводка, чтобы показать на этом сером баре, как и мой сайт vbulletin: iMayne.com – iMayne

+1

Я вижу. Это будет огромной головной болью для вас, поскольку вам, вероятно, придется редактировать все контроллеры. Альтернативой было бы использовать 1.4.9.6 OC, который по умолчанию имел патчи в заголовке. Честно говоря, я даже не уверен, почему они ограничены заголовком или контентом, их следует настраивать в любом месте с помощью модуля IMHO –

1

, если все остальное не просто взломать CSS, что-то вроде

.breadcrumb { 
    margin-left: -270px; 
    margin-top: -65px; 
} 

будет перемещаться хлебную крошку вверх и влево.

3

Мне просто нужно было понять это для нового сайта, который мы строим, и я придумал следующее; используйте на свой страх и риск (я отчитаюсь, если столкнусь с какими-либо серьезными проблемами, но я не могу предвидеть никаких ... известных последних слов)

В основном панировочные сухари встроены в контроллеры, и нам нужны результирующие $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.