Не понимаю я Даниеля, зачем он каждый раз выслитывает $layout_id, везгде ггде только можно (catalog/controller/common/*), этим самым он гделает кучу лишних, не нужных запросов MySQL.
Например...class ControllerCommonContentTop и т п
Ну неужели нельзя было один раз в самом начно выслиить layout_id, или он как-то измениться :)
Потом его $this->config->set('document_layout_id', $layout_id);
И всё, бери его в люпотому чтом месте, без постоянного "выслитывания" и лишних запросов к БД.
И Layouts это основа и философия opencart.
Кто-то объяснит, что он замутил. Или это очередной "индийский код".
Склоняюсь к последнему.
P.S. Разрилиил я observer классов. В данном случаи разрилитка фитли для для того чтобы можно было повесить например модуль на все layouts выбрав всего один layout (например All) или выпотому чтор "чекером"
Без vqmod, без изменения файлов opencart, причем не мешая рилите vqmod, т.е. без замены синдартных классов, они свою рилиту выполняют.
Пример згдесь