Página 1 de 1

[Resolvido] Layouts Diferentes para Produtos

Enviado: 16 Out 2017, 17:11
por R0G3RRR
Olá Boa Tarde.

Estou precisando de uma ajudinha..

Antes usava o opencart 1.5.1.3 alterei no controller para que dependendo do tipo do produto mostraria uma pagina diferente..

Estou migrando para o 3.0.2 e gostaria de uma ajuda com uma solução mais facil.. No caso uso um OC Theme.

A parte de "Designer -> Editor de Temas " não altera o tema atual.

Criei um layout em "Designer -> Layouts" coloquei a rota em product/product mas não imagino onde colocar o nome do arquivo..




=============================Solução==================================

Depois de bater um pouco a cabeça e procurar em foruns e o pai dos burros(google) percebi que dentro do controller product.php existe uma chamada para o view


Código: Selecionar todos
$this->response->setOutput($this->load->view('product/product', $data));


Alterando o product/product para product/Nome-Do-Layout e limpando o cache aparece o .tiwg desejado agora basta utilizar a função getProductLayoutId que está no model para saber qual o template e setar no controle com um IF :D

Re: Layouts Diferentes para Produtos

Enviado: 20 Out 2017, 09:16
por albertosrosa
Estou com o mesmo problema, não consegui fazer :? tem como você colocar como ficou os arquivos?

Re: Layouts Diferentes para Produtos

Enviado: 20 Out 2017, 14:01
por R0G3RRR
Sim Claro...

Pra facilitar pra próximas atualizações fiz via OCMOD

Código: Selecionar todos
<?xml version="1.0" encoding="utf-8"?>
<modification>
	<name>Alterações Opencart G-FIRE</name>
	<version>3.x</version>
	<author>RogerSantos</author>
	<code>oc_alteracoes</code>
	
	<file path="catalog/controller/product/product.php">
		<operation>
			<search><![CDATA[$this->response->setOutput($this->load->view('product/product', $data));]]></search>
			<add position="replace"><![CDATA[
				$layoutid = $this->model_catalog_product->getProductLayoutId($this->request->get['product_id']);

			if($layoutid == 28){

                $this->response->setOutput($this->load->view('product/novolayout', $data));
            }else{
                $this->response->setOutput($this->load->view('product/product', $data));
            }
			]]></add>
		</operation>
	</file>

</modification>


vc precisa criar um layout com o nome do arquivo q vc deseja ai vc colocar o nome do arquivo em "novolayout"


Só umas coisas pra esclarecer... 28 É o codigo do layout que criei no painel de admin

Re: Layouts Diferentes para Produtos

Enviado: 10 Nov 2017, 14:26
por albertosrosa
Obrigado R0G3RRR

Re: Layouts Diferentes para Produtos

Enviado: 19 Ago 2018, 10:19
por fabiofas
Consegui, valeu, abração