Empacotando extensões para o OpenCart
Versão do OpenCart utilizada neste tutorial:
OpenCart 2.x e OpenCart 3.x
Pré-requisitos para executar os exemplos deste artigo:
Ter desenvolvido uma extensão ou modificação para o OpenCart.
Introdução:
A partir da versão 2 do OpenCart, foi criada a possibilidade de fazer a instalação de extensões e modificação através do Instalador nativo do OpenCart, isso trouxe padronização e facilidades tanto para o desenvolvedor, quanto para o usuário final do OpenCart.
Para utilizar o Instalador do OpenCart, acesse a administração da loja, e vá no menu Extensões→Instalador.
Para que o processo de instalação automatizada funcione, basta seguir o padrão de organização de diretórios e arquivos (extensão com ou sem modificação), e a nomenclatura padrão para o nome dos arquivos, vamos aos exemplos:
1º Exemplo: Preparando uma modificação para ser instalada através do Instalador do OpenCart:
Em resumo, o código em OCMod deve ser colocado em um arquivo de texto e salvo com a extensão xml, e com o sufixo .ocmod, sendo um exemplo de nome final para o arquivo:
minha-modificacao.ocmod.xml
Explicando:
- Você pode colocar qualquer nome, contanto que não possua acentos, cedilha, sinal de pontuação ou espaço, e seja escrito todo em minúsculo.
- Para separar o nome, utilize - (hífen) ou _ (anderline), e após o nome coloque ".ocmod".
Vamos ao exemplo prático!
Suponha que escolhi que o nome do arquivo será:
minha-modificacao
Por ser um arquivo no formato xml, ficaria assim:
minha-modificacao.xml
Por ser um arquivo com conteúdo no padrão OCMod para o instalador do OpenCart, ficaria assim:
minha-modificacao.ocmod.xml
Simples não é?
Sua modificação já está pronta para ser instalada através do Instalador do OpenCart, porém, lembre-se que após a instalação de qualquer modificação, o usuário deve acessar o menu Extensões→Modificações, e clicar no botão Atualizar (Refresh), para que a modificação seja incrementada no OpenCart.
Dica rápida:
Uma prática comum, mas não é regra, é colocar como nome do arquivo de instalação, o mesmo nome que está na tag <code></code> do arquivo OCMod.
Um detalhe importante, é sempre salvar seu código OCMod no formato de codificação UTF-8 (sem bom), isso lhe evitará muitas dores de cabeça.
2º Exemplo: Preparando uma extensão sem modificação OCMod para ser instalada através do Instalador do OpenCart:
Uma vez que sua extensão já está pronta, você deve organizá-la seguindo o padrão MVC+L do OpenCart, se você não conhece o padrão, faça uma pausa rápida para a leitura do artigo abaixo, ele é curto e claro:
http://www.opencartbrasil.com.br/artigos/estrutura-diretorios-opencart
Na prática, temos que colocar toda a estrutura da extensão dentro de uma pasta chamada upload, ficando conforme o exemplo abaixo:
|-> upload
|->|-> admin/*.* - todos as pastas e arquivos da extensão respeitando sua estrutura.
|->|-> catalog/*.* - todos as pastas e arquivos da extensão respeitando sua estrutura.
E zipar a pasta upload, deixando a pasta no formato zip.
Em resumo, o arquivo zip criado terá a extensão zip, e você acrescentará o sufixo .ocmod, sendo um exemplo de nome final para o arquivo:
minha-extensao.ocmod.zip
Explicando:
- Você pode colocar qualquer nome, contanto que não possua acentos, cedilha, sinal de pontuação ou espaço, e seja escrito todo em minúsculo.
- Para separar o nome, utilize - (hífen) ou _ (anderline), e após o nome coloque ".ocmod".
Vamos ao exemplo prático!
Suponha que escolhi que o nome do arquivo será:
minha-extensao
Por ser um arquivo no formato zip, ficaria assim:
minha-extensao.zip
Por ser um arquivo com estrutura de pastas no padrão MVC+L do OpenCart para ser utilizado no instalador do OpenCart, ficaria assim:
minha-extensao.ocmod.zip
Sua extensão já está pronta para ser instalada através do Instalador do OpenCart.
3º Exemplo: Preparando uma extensão com modificação OCMod para ser instalada através do Instalador do OpenCart:
O que muda quando sua extensão possuir um arquivo com modificação no formato OCMod que deve ser instalado juntamente com a extensão, é o acréscimo do arquivo install.xml, que contém o conteúdo no formato OCMod, esse nome install.xml é padrão, e não deve ser alterado.Na prática, a estrutura ficaria assim:
|-> upload
|->|-> admin/*.* - todos as pastas e arquivos da extensão respeitando sua estrutura.
|->|-> catalog/*.* - todos as pastas e arquivos da extensão respeitando sua estrutura.
|-> install.xml - O seu arquivo xml com conteúdo no formato OCMod.
Uma vez preparada a estrutura, basta executar o mesmo procedimento descrito o 2º Exemplo.
Muito simples não é?
Sua extensão com modificação já está pronta para ser instalada através do Instalador do OpenCart, porém, lembre-se que após a instalação de qualquer extensão que contenha modificação, o usuário deve acessar o menu Extensões→Modificações, e clicar no botão Atualizar (Refresh), para que a modificação seja incrementada no OpenCart.Importante:
Algumas extensões tem a necessidade de acrescentar pastas e arquivos dentro dos diretórios image e system do OpenCart, se este for o caso da sua extensão, basta colocar a estrutura para as pastas citadas dentro da pasta upload, que o Instalador do OpenCart as colocará no lugar.
Na prática, a estrutura ficaria assim:
|-> upload
|->|-> admin/*.* - todos as pastas e arquivos da extensão respeitando sua estrutura.
|->|-> catalog/*.* - todos as pastas e arquivos da extensão respeitando sua estrutura.
|->|-> image/*.* - todos as pastas e arquivos da extensão respeitando sua estrutura.
|->|-> system/*.* - todos as pastas e arquivos da extensão respeitando sua estrutura.
|-> install.xml - O seu arquivo xml com conteúdo no formato OCMod (só se houver).
Bônus: (Somente para OpenCart 2.x, no OpenCart 3.x este recurso foi removido)
Você pode executar funções do framework do OpenCart, durante o processo de instalação da extensão, para isso, basta colocar os códigos dentro do arquivo install.php, esse nome install.php é padrão, e não deve ser alterado.
Na prática, a estrutura ficaria assim:
|-> upload
|->|-> admin/*.* - todos as pastas e arquivos da extensão respeitando sua estrutura.
|->|-> catalog/*.* - todos as pastas e arquivos da extensão respeitando sua estrutura.
|->|-> image/*.* - todos as pastas e arquivos da extensão respeitando sua estrutura (só se houver).
|->|-> system/*.* - todos as pastas e arquivos da extensão respeitando sua estrutura (só se houver).
|-> install.xml - O seu arquivo xml com conteúdo no formato OCMod (só se houver).
|-> install.php - O seu arquivo php com conteúdo no conforme o framework do OpenCart.
Conclusão:
Espero que tenham gostado, e utilizem o novo padrão para facilitar não só sua vida como desenvolvedor, mas a vida do usuário final.
Leitura super recomendada:
https://github.com/opencart/opencart/wiki/Modification-System
Dúvidas:
Caso ainda tenha dúvidas, pesquise no fórum OpenCart Brasil.