0
media

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õesInstalador.

Vamos lá!

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õesModificaçõ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

Pronto!

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õesModificaçõ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.