Взагалі на "сітку" виводу отих усіх контролерів можна було зробити один контролер (так саме як і модулів виводу товарів)
І не писати простирадло (зараз код Даніеля виглядає як неандертальський в контролерах), а ось щось такого плану
public function index($settings) {
return $this
->start(settings)
->load_language()
->header()
->breadcrumb()
->main()
->positions()
->output();
}
...
private function header() {
$this->document->setTitle($this->language->get('heading_title'));
if (method_exists($this->document, 'setRobots')) {
$this->document->setRobots('noindex,follow');
}
return $this;
}
...
А потім подіями як завгодно обробляти
// У файлі установки
$this->model_setting_event->addEvent('your_event_name', 'catalog/controller/your_controller/header/after', 'extension/event/your_event/afterHeader');
// У контролері події
public function afterHeader(&$route, &$data, &$output) {
// Ваш код, який буде виконано після методу header()
}