O Magento Commerce é robusto, estável e confiável. Certamente não era possível montar um software com essas credenciais usando apenas meia dúzia de arquivos e outra meia dúzia de linhas e tabelas em um banco de dados. A equipe de desenvolvimento da Magento Inc. exagerou – e continua exagerando, porque a cada nova versão aumenta o número de arquivos e o número de tabelas no DB -, deixando quem não está acostumado com o software perdido e maluco.
A versão 1.5 do Magento traz uma coleção de 10.448 arquivos, distribuídos em 3.701 pastas e sub-pastas. O interessante é que depois que se conhece o software percebe-se que eles estão distribuídos de forma inteligente e com um pouco de prática é muito fácil localizar o que se quer. Quando o Magento foi desenvolvido, a equipe optou por usar mais arquivos, porém menores, de modo que cada arquivo acaba por responder por uma pequena parte, específica, do funcionamento do software. Sabendo isso, é fácil localizar, ao se alterar um tema, por exemplo, onde está o arquivo responsável por exibir a caixa de produtos no carrinho.
Vamos ver as principais pastas e onde estão localizados os arquivos?
- /app – fazendo uma analogia ao Windows, é como se fosse uma pasta “Arquivos de Programas” e contém quatro sub-pastas: code, design, etc e locale
- /app/code – é o código de funcionamento do Magento, onde estão os arquivos que fazem o software funcionar, dividida em outras três sub-pastas: community, core e local
- /app/code/community – pasta destinada a abrigar os módulos desenvolvidas pela comunidade Magento, ou seja, módulos públicos (pagos ou gratuitos) e destinados a serem usados em diferentes instalações
- /app/code/core – código principal do Magento, seu coração, desenvolvido e atualizado pela Magento Inc. Nessa pasta, não devem ser colocados novos arquivos, nem efetuadas modificações, pois todo o conteúdo é substituído quando há uma atualização do software
- /app/code/local – nessa pasta ficam os módulos locais, ou seja, aqueles desenvolvidos especialmente para este sistema específico; é aqui que ficam as alterações feitas para apenas uma loja em particular
- /app/design – é uma das pontas da construção de um tema Magento. Já expliquei rapidamente como um tema Magento é estruturado, então vou passar mais rápido. Nessa pasta, existem outras três sub-pastas: adminhtml (com os arquivos de layout do painel de administração), frontend (com a loja em si, que veremos a seguir) e a pasta install (com os arquivos de layout da instalação do sistema)
- /app/design/frontend – divide-se em duas pastas: a pasta base contém os arquivos básicos do tema e não deve ser modificada, pois ela serve como base para o funcionamento da loja e tem seus arquivos alterados pela Magento Inc. quando uma nova versão é lançada. A pasta default deverá conter o nosso tema, apenas com os arquivos necessários à modificação do visual de nossa loja, divididos em layout (os arquivos XML) e template (os arquivos PHTML) e suas múltiplas (quase infinitas) sub-pastas
- /app/etc – contém os arquivos de configuração do sistema, como por exemplo o local.xml, que faz a autenticação no banco de dados
- /app/etc/modules – aqui ficam os arquivos responsáveis por informar o sistema que módulos existem e quais são suas configurações
- /app/locale – nessa pasta, estão os arquivos de tradução, que permitem que o Magento seja multi-idioma. Os arquivos devem ficar em pastas nomeadas conforme a codificação padrão, como en_US, pt_BR ou es_ES
- /downloader – contém o gerenciador de arquivos do Magento, também chamado de Magento Connect
- /js e /lib – conteḿ diferentes bibliotecas e galerias de recursos para o sistema
- /media – essa pasta é usada pelo Magento para armazenar as imagens dos produtos e arquivos direcionados ao usuário, como itens para download
- /skin – outra ponta do layout, contendo os arquivos que formam a “pele” da loja virtual, aqueles elementos responsáveis pelo visual da página, como CSS, JS e imagens. Também é dividido em três pastas, sendo adminhtml, frontend e install, como explicado ali em cima
- /var – pasta usada pelo sistema para armazenar arquivos transitórios e temporários, como o cache, os relatórios de erros, as sessões abertas no sistema e o gerenciamento de índice
Que tal praticar? Sabe onde está o arquivo que controla a caixa de produtos no carrinho, exibido na lateral das páginas? O caminho é o /app/design/frontend/base/default/template/checkout/cart/sidebar.phtml. Basta copiar esse arquivo no caminho correspondente, dentro de seu template, e fazer as alterações necessárias.