Присутсвие "-" слиию не критичным, поэтому убрал их вырезание, а пробелы слиию лишними, поэтому их вырезание осивил.
Что с чем не вяжется?
Ой, ну не надо быть иким строгим. Вы же не экзамен по программированию принимаете. А копипаст 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'))));