Fórum OpenCart Brasil

Por um e-commerce livre, confiável e profissional

Suporte geral sobre problemas técnicos para OpenCart v2.x.
#67549
Bom dia. O dilema é o seguinte:
Estou tentando puxar o campo "meta_description" da tabela "oc_product_description". Preciso puxar ele dentro do arquivo "\catalog\view\theme\*\template\product\product.tpl ", porem retorna o seguinte erro: "Notice: Undefined property: Template\Basic::$db in ...."

Obs: Fiz o mesmo código em outro arquivo da Home e funcionou, alguém poderia me ajudar com isso?


Segue o Código que fiz:

$sql = 'select * from oc_product_description where product_id ='.$id.'';
$query = $this->db->query($sql);
$meta_description = $query->row['meta_description'];
#67550
Olá.

O OpenCart é feito utilizando o modelo de camadas MVC, logo, toda modificação para ele deve ser feita seguindo esse modelo:
https://www.opencartbrasil.com.br/artigo ... s-opencart

No exemplo, o código que você citou, deve ser colocado dentro do controller, do model e por último na view, em resumo:
- Dentro do catalog/model/catalog/product.php fica a consulta ao banco de dados.
- Dentro do catalog/controller/product/product.php fica o código php responsável por enviar os dados para a view.
- Dentro do catalog/view/theme/PASTA_TEMA/template/product/product.tpl fica o código com dados recebidos do controller que serão exibidos na loja.

Explicação feita, saiba que não é necessário fazer o que você fez, pois o controller da página de produto já carrega o campo que você deseja, bastando que dentro da function index(), logo após a linha abaixo:
Código: Selecionar todos
$data['heading_title'] = $product_info['name'];
Você coloque o código:
Código: Selecionar todos
$data['meta_description'] = $product_info['meta_description'];
Sendo que para exibir a informação no seu view, ou seja, no arquivo product.tpl, você coloca o código abaixo:
Código: Selecionar todos
<?php echo $meta_description; ?>
Como dica, lhe digo para não fazer nenhuma alteração diretamente no core do OpenCart, pois isso inviabiliza atualizações da plataforma, neste caso utilize o vqmod ou ocmod que é nativo do OpenCart 2, para fazer alterações no core do OpenCart:
https://www.opencartbrasil.com.br/artigos/conheca-vqmod
https://github.com/opencart/opencart/wi ... ion-System

Não tenha receio de estudar sobre vQmod e OCMod, é muito simples de utilizar e aprender, torna o trabalho muito mais fácil e facilita na hora de atualizar o OpenCart. ;)

Espero ter ajudado. :)
#67553
Que bom, estude também o OCMod que é nativo do OpenCart 2, eles são muito similares na estrutura e funcionamento, a diferença é que o vQmod tem mais recursos e não é nativo do OpenCart.

Espero ter ajudado e lhe desejo bons estudos, pois tenho certeza que você não vai se arrepender. :)