Manual OpenCart para Desenvolvedores – Guia Inicial

Olá Pessoal. Este é um post bem técnico direcionado para desenvolvedores, logo se você é um Lojista que utiliza OpenCart, não precisa se preocupar com tudo isso. Mas para o mundo dos códigos a documentação é algo muito importante então estamos compartilhando essa informação que pode ajudar muito na hora de resolver problemas ou criar novos módulos para OpenCart!

 

OpenCart 1.5.x desenvolvedor guia rápido para iniciantes na plataforma.

Este guia foi escrito para desenvolvedores já familiarizados com PHP, OOP (orientação a objeto) e da arquitetura MVC (Model – View – Control).

Esse conteúdo é voltado para o ambiente da pasta CATALOG. O lado administrativo é idêntico em função, com exceção dos VIEWS que serão informados nas sessões relevantes.

Entendendo as bibliotecas

Todas as funcionalidades da biblioteca são acessíveis através do Controller, Model e Views usando $this->library_name. Tudo isso pode ser encontrado no diretório /System/Library/ pasta. Por exemplo, para ter acessar os produtos no carrinho de compras, você vai precisar usar o carrinho de classe, que está em /System/Library/cart.php e pode ser acessado usando $this->cart->getProducts()


Itens comumente usados:

customer.php – Funções relacionadas ao cliente
user.php – funções relacionadas usuário admin
cart.php – funções relacionadas Carrinho
config.php – Todas as configurações são carregadas a partir deste
url.php – funções de geração de URL

Entendendo o parâmetro de rota

O FrameWork do OpenCart depende da rota = aaa/bbb/ccc no parâmetro de string de consulta para saber o que carregar, e é o recurso que encontrar os arquivos que você precisa editar para cada página. A maioria das rota usa somente o formato aaa/bbb que deve ser visto como duas partes, no entanto alguns contêm três partes aaa/bbb/ccc  A primeira parte aaa geralmente relacionada com a pasta dentro de uma pasta genérica, como o controlador ou pastas de modelos. A segunda parte geralmente relaciona-se com o nome do arquivo, sem a extensão . Php ou extensão TPL.. A terceira parte é explicado como funciona os Controllers abaixo.

Entendendo o Languages (idiomas)

Idiomas são armazenados em /catalog/language/pasta na subpasta do idiomas. Dentro disso, os valores de texto gerais utilizados em várias páginas são armazenadas no arquivo seu-idioma.php dentro da pasta, então, para a linguagem Inglês no lado do catálogo, você encontrará os valores em catalog/language/ English/english.php . Para o texto página específica, você vai precisar da rota para a página (Este é geralmente o caso, mas não sempre, como você pode especificar qualquer arquivo de Language que você gosta). Por exemplo, a página de pesquisa tem o produto Route/Search e, portanto, o texto linguagem específica para essa página pode ser encontrada no catalog/language/English/product/search.php (Observe o nome do arquivo e subpasta deve coincidir com a rota seguida por. php.

Para carregar o idioma em um controlador, você pode usar

$this->language->load(‘produto/search’);
Então você pode usar a função de biblioteca de linguagem que começa a recuperar textos de linguagem específicas, tais como

$titulo = $this->language->get (‘heading_title’);
As variáveis ​​linguísticas são atribuídos no arquivo de idioma usando uma variável especial $_ que é um conjunto de chaves e valores de texto. Em seu /catalog/language/english/product/search.php você deve encontrar algo semelhante ao

$_ [‘heading_title’] = ‘Pesquisar’;
Os valores no arquivo de língua global english/english.php são automaticamente carregados e disponíveis para uso sem o $this->language->load metodo.

Entendendo os Controllers

Os controladores são carregados com base na rota e são bastante simples de entender. Controladores estão localizados no diretório /catalog/controller/ pasta. Continuando a partir do último exemplo, o controlador para a página de pesquisa está em /product/ search.php dentro desta pasta. Observe mais uma vez que a rota seguida por .Php é usado.

Abrindo o arquivo do controlador, você verá um caso classname camelo estendendo a classe Controller, chamado ControllerProductSearch. Este novo é específico para a rota, com Controller seguido pelo nome da subpasta e o nome do arquivo sem a extensão capitalizados. A capitalização não é realmente necessário, mas é recomendado para facilitar a legibilidade. É interessante notar que classnames não tomar quaisquer valores do nome da subpasta e arquivo diferente de letras e números. Sublinhados são removidos.

Dentro da classe são os métodos. Métodos na classe declarada pública são acessíveis a ser executado pela via – privado não são. Por padrão, com um padrão de dois rota parte (aaa / bbb acima), um método de índice de inadimplência () é chamado. Se a terceira parte de uma rota (ccc acima) é usado, este método será executado em seu lugar. Por exemplo, a conta de retorno / / insert irá carregar o / catalog / controller / account / file return.php e classe, e tentar chamar o método de inserção

Compreensão de modelos

Modelo em OpenCart são encontrados no diretório / catalog / modelo / folder e são agrupados de acordo com a função e não a rota e, portanto, você terá que carregá-los em seu controlador via

$ This-> load-> model (‘xxx / yyy’);
Isto irá carregar o arquivo no xxx subpasta chamada yyy.php. É então disponíveis para uso através do objeto

$ This-> model_xxx_yyy
e como com os controladores só pode chamar seus métodos públicos. Por exemplo, para redimensionar uma imagem, você deve usar a ferramenta / modelo de imagem e chamá-lo de método de redimensionamento da seguinte forma

$ This-> load-> model (‘ferramenta / imagem’);
$ This-> model_tool_image-> resize (‘image.png’, 300, 200);
Compreender atribuição de variável em vistas do controlador

A fim de passar valores para a vista do controlador, basta atribuir os seus dados para o $ this-> dados variáveis, que é essencialmente um conjunto de pares chave => valor. Como um exemplo

$ This-> data [‘example_var’] = 123;
Acessando isso em um ponto de vista é um pouco deve ser fácil de entender se você está familiarizado com o método extract () que converte cada tecla em uma variável. Portanto, a chave torna-se example_var $ example_var e pode ser acessado, como tal, na visão

Temas compreensão

Temas estão disponíveis apenas para o lado do catálogo, e são basicamente uma pasta de modelos, folhas de estilo e imagens do tema. Pastas temáticas são colocados no diretório / catalog / view / theme / pasta seguido do nome do tema. O nome da pasta não é de importância com exceção para a pasta padrão

O lado administrador usa / admin / view / template / (ignorando o / tema / theme-name / do caminho, uma vez que não permite que diferentes temas)

Os arquivos de modelo residir em uma pasta de modelo dentro da pasta do tema. Se algum modelo não estar disponíveis para o tema selecionado, modelo da pasta de padrão é usado em vez como um fallback. Isso significa que os temas podem ser criados com muito poucos arquivos e ainda funcionar plenamente. Ele também reduz a duplicação de código e questões como as atualizações são feitas

Vistas Entendimento (templates)

Tal como acontece com linguagem e modelos, do arquivo de exibição geralmente estão relacionadas à rota, que não tem que ser em tudo. Templates no lado do catálogo são normalmente encontrados em / catalog / view / theme / seu-tema / template / a não ser que não existe, no caso em que os modelos do tema padrão será usado. Para o nosso exemplo de busca da página acima, o arquivo é um produto / search.tpl. Para rotas com três partes, é geralmente em aaa / bbb_ccc.tpl que não há nenhuma regra set duro. Na administração, a maioria das páginas seguem este, com a ressalva de que páginas de anúncio itens, como a página de listagem de produtos estão em catalog / product_list.tpl eo produto formulário de edição é no catálogo / product_form.tpl. Novamente, estes não estão definidos, mas um padrão para o carrinho padrão

Vale a pena salientar que o arquivo de modelo é na verdade apenas mais um arquivo PHP, mas com uma extensão TPL. E é realmente executado no arquivo controlador, portanto, todas as coisas que você pode codificar em um controlador pode ser executado em um arquivo de modelo ( Embora não seja recomendável, a menos que seja absolutamente necessário)

Compreender o objeto de banco de dados

Consultas são executadas usando

$ Result = $ this-> db-> query (“SELECT * FROM` “DB_PREFIX” tabela `”..);
DB_PREFIX como o nome sugere é uma constante que contém o prefixo do banco de dados, se houver

$ Resultado irá retornar um objeto para consultas SELECT, que contém algumas propriedades

$ Result-> linha contém os dados da primeira linha se um ou mais são retornados como uma matriz associativa

$ Result-> linhas contém um conjunto de resultados de linha, ideal para fazer loop para usar foreach

$ Result-> num_rows contém o número de resultados retornados

Existem também alguns métodos extra de $ this-> db objeto tem

$ This-> db-> escape () usa mysql_real_escape_string () sobre o valor passado

$ This-> db-> countAffected retorna o número de linhas afetadas por uma consulta UPDATE e assim por diante

$ This-> db-> getLastId () retorna o último ID de auto incremento usando mysql_insert_id ()

Compreender variáveis ​​reservadas

OpenCart tem variáveis ​​pré-definidas para usar no lugar do padrão de $ _GET, $ _POST, $ _SESSION, $ _COOKIE, $ _FILES, $ _SERVER e $ _SERVER

$ _SESSION É editado usando $ this-> Session-> data em que os dados é uma matriz associativa imitando o $ _SESSION

Todos os outros podem ser acessados ​​usando $ this-> pedido e foram “limpas” para cumprir com magic quotes ativado / desativado, por isso

$ _GET Se torna $ this-> request-> get

$ _POST Se torna $ this-> request-> mensagem

$ _COOKIE Se torna $ this-> request-> Cookie

$ _FILES Se torna $ this-> request-> arquivos

$ _REQUEST Se torna $ this-> request-> pedido

$ _SERVER Se torna $ this-> request-> servidor
Espero que esse breve Manual da OpenCart tenha sido útil!

Aparece lá pela fórum oficial da opencart ou pela fórum brasileiro! Nos vemos lá! 🙂

 

CompartilharShare on Facebook0Tweet about this on TwitterShare on Google+0Email this to someone
Comments are closed.