- 17 Abr 2013, 09:56
#38180
É exatamente isto, o sistema de templates é bastante arcaico. Apesar da estrutura MVC+L ser muito boa, da maneira que ela foi aplicada complicou mais do facilitou.
Primeiro de tudo, vc tem sempre no mínimo 3 arquivos para poder formar uma página: header, content e footer. O ideal seria ter um arquivo com estas 3 partes juntas. Pq? Tanto facilita na visualização quanto ajuda muito em partes que se repetem. Além disto, às vezes vc precisa ter acesso ao header de uma das páginas do content e isso não é nada fácil. Vc teria que adicionar linhas no controller e no model, o que não é nada bom, pois já não é mais função do template. Além de ter um arquivo "content" separado para cada página, construído de uma forma que se vc mudar um pouco a estrutura da página como um todo, vc tem mudar praticamente todos os contents.
Segundo, "módulos" e "componentes" escritos em cada página. Vamos dizer que por uma decisão de design (algo muito comum) vc decide que o breadcrumbs ficará no final na página e não no top. O que vc tem fazer? Mudar cada arquivo do template para isto. Cada página terá que ser modificada. Não é algo que se faz via CSS, é HTML mesmo e não há outra opção.
O breadcrumbs é só um exemplo, pois muitas vezes temos que mexer no HTML para poder deixar o layout como desejado. Então imagine o trabalho que isto não dá...
A sensação que vc tem qd faz um template pro OC é que é muito trabalho pra pouco resultado. É até meio frustante. Sem falar no exagero de javascript usado no default. Tem muita coisa do layout que estruturalmente o HTML é criado via javascript, o que é uma má prática, e que poderia facilmente ser resolvido com uma simples adição de classes via jQuery. Resumindo, vc não tem muita liberdade e não tem o trabalho facilitado.
Se vc comparar um pouco com o Joomla, que apesar de ser um sistema com propósito completamente diferente do OC, tb segue a lógica MVC+L, a diferença é absurda.
Nunca precisei, por exemplo, mexer em um controller para alguma função do template, ou qualquer coisa relacionada à templates. E olha que eu já fiz layouts loucos...
No Joomla, funciona de uma maneira bem simples, vc cria um xml com as especificações do template, pois o Joomla tem um instalador, e um arquivo index.php.
O index, tem basicamente tudo, é uma página HTML, com as variáveis que serão impressas. Como o joomla realmente funciona com módulos, o que eu tenho que fazer é simplesmente adicionar as posições dos módulos aonde eu achar necessário e adicionar o componente. Pronto já tenho um template "pronto".
Se eu precisar de um override em algum output de um component ou módulo, eu posso fazer simplesmente um arquivo com esse override, e o melhor de tudo é q é possível vc criar vários overrides e escolher, na hora de publicar, o override que vc deseja. Desta forma é possível fazer designs super complexos de uma maneira muito simplificada...
O pior de tudo é que aparentemente a versão 2.0 do OC vai incluir o Twitter Bootstrap, o que só vai deixar tudo mais difícil de se customizar. Ainda não sei se isto é oficial, mas no GitHub o admin já está com ele...