Секунду, какую логику? if ($products) - это логика?
$helper = ThemeControlHelper::getInstance( $this->registry, $themeName );
$LANGUAGE_ID = $this->config->get( 'config_language_id' );
Это логика? Увы, повторюсь, OC является одношаблонным, все настройки касательно вывода различных блоков находятся в глобальных настройках. А должны находиться в настройках шаблона Размер изображений Кастомизация вывода кнопок. Даже, например, подсчет количества товаров - это тоже часть шаблона, и некоторые языковые переменные, такие как название кнопок, или названия ссылок в футере/хидере. (ну.. это так... ни о чем)
-upd-
Или вот в соседней теме - кнопка "продолжить", которая не всегда и не везде нужна. Логику ее вывода выносить в контроллеры? или все же отдать шаблонизатору? -/upd-
Вот потому и строят надстройку, и получается во такой слоеный пирог. А показанный Васо код, очень даже оправдан - if ($products) - вызвать шаблон отвечающий за вывод списка А это... аж в трех местах копипаст - категории, производители, поиск , может еще где-то И в самом шаблоне - инклудится код вывода миникарточки товара, которая возможно используется во всех шаблонах, работающих со списком товаров. Т.е. все громко возмущаются отсутствием одного шаблона для ХК, копипастом разбросанным по всем шаблонам, и громко возмущаются наличием инклуда в шаблоне, или подключением библиотеки (хелпера) для шаблона Да, в данном случае нарушена OpenCart Unofficial Style Guide (http://wiki.opencarthelp.com/doku.php?id=style_guide)
Или, у меня создается такое впечатление, что вы не видели smarty-шаблонов Ах, да - я бы павиков тоже бы убивал бы, но совсем за другие вещи. То что Василий называет быдлкодерством то вот оно есть такое.. не в павиках только комменты:
//echo "подключись, сука!<br />";
//echo "Текущая кодировка: $charset\n";
//echo "подключилась!<br />";
Или например, назвать переменную - pizdec Вот это и есть быдлокодерство.