Присутсвие "-" считаю не критичным, поэтому убрал их вырезание, а пробелы считаю лишними, поэтому их вырезание оставил.
Что с чем не вяжется?
Ой, ну не надо быть таким строгим. Вы же не экзамен по программированию принимаете. А копипаст breadcrumbs в каждой вьюхе - это признак высокого стиля? OpenCart в целом не безгрешен.
Вот, честно, не понимаю я Вашего подхода - из-за "говнокода" (который подправить - 2 сек) Вы отвергаете решение проблемы "говнологики". Ну ладно бы просто заметить, что не мешало бы исправить, а то сразу объявить никчемным бредом, назвать статью вредной и т.д. Между прочим, кроме этих ребят никто и не заметил этого лага ...
Т.е. по Вашему все же из-за ненавистного Вам !$n пусть кеш отдает инфу из файлов, которые нужно сносить ...? По-моему это намного больший "бред", чем шалость в виде !$n.
Ну а если так скурпулезно подходить, то в OpenCart нужно многое почеркать, скомкать и в ...
Опять же зачем все сносить, если можно поменять
strtolower(trim(preg_replace('~[^0-9a-z\.]+~i', '-', html_entity_decode(preg_replace('~&([a-z]{1,2})(?:acute|cedil|circ|grave|lig|orn|ring|slash|th|tilde|uml);~i', '$1', htmlentities($string, ENT_QUOTES, 'UTF-8')), ENT_QUOTES, 'UTF-8')), '-'));
на
strtolower(trim(preg_replace('~[^0-9a-z\.\/]+~i', '-', html_entity_decode(preg_replace('~&([a-z]{1,2})(?:acute|cedil|circ|grave|lig|orn|ring|slash|th|tilde|uml);~i', '$1', htmlentities($string, ENT_QUOTES, 'UTF-8')), ENT_QUOTES, 'UTF-8'))));