Fórum OpenCart Brasil

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

Suporte geral sobre problemas técnicos para OpenCart v1.x.
#10376
Socorro!!!
Minha cliente quer um módulo igual ao CATEGORIAS, mas com FABRICANTES, tipo tinha nas versões 1.4 e não sei pq não tem nas versões 1.5... um horror não ter!!

Bom eu peguei o modulo CATEGORIAS, copiei, mudei tudo pra FABRICANTES e não é q deu certo?!! Com um único detalhe, o link não tá funfando. Vejam:

o código é esse: 'href' => $this->url->link('product/manufacturer', 'path=' . $manufacturer['manufacturer_id'] . '_' . $child['manufacturer_id'])

aí aparece isso: index.php?route=product/manufacturer&path=21 mas mostra toda a LISTA DE FABRICANTES e não o fabricante "21"

Na verdade eu preciso que apareça isso: index.php?route=product/manufacturer/product&manufacturer_id=21 para que liste os produtos deste fabricante.

Eu já fiz de tudo, mas como não sou programadora eu não consegui... alguem pode me dizer como tenho que colocar esse raio desse script pra que sejam listados os produtos desse fabricante???
Avatar do usuário
Por m.lirangi
Mensagens
#10398
Vamos lá!

O arq já modificado:

catalog/controller/module/manufacturer.php
<?php
class ControllerModulemanufacturer extends Controller {
protected function index() {
$this->language->load('module/manufacturer');
$this->data['heading_title'] = $this->language->get('heading_title');
if (isset($this->request->get['path'])) {
$parts = explode('_', (string)$this->request->get['path']);
} else {
$parts = array();
}
if (isset($parts[0])) {
$this->data['manufacturer_id'] = $parts[0];
} else {
$this->data['manufacturer_id'] = 0;
}
if (isset($parts[1])) {
$this->data['child_id'] = $parts[1];
} else {
$this->data['child_id'] = 0;
}
$this->load->model('catalog/manufacturer');
$this->load->model('catalog/product');
$this->data['manufacturers'] = array();
$manufacturers = $this->model_catalog_manufacturer->getmanufacturers(0);
foreach ($manufacturers as $manufacturer) {
$children_data = array();
$children = $this->model_catalog_manufacturer->getmanufacturers($manufacturer['manufacturer_id']);

$data = array(
'filter_manufacturer_id' => $manufacturer['manufacturer_id'],
'filter_sub_manufacturer' => true
);

$product_total = $this->model_catalog_product->getTotalProducts($data);
$this->data['manufacturers'][] = array(
'manufacturer_id' => $manufacturer['manufacturer_id'],
'name' => $manufacturer['name'] . ' (' . $product_total . ')',
'children' => $children_data,
'href' => $this->url->link('product/manufacturer', 'path=' . $manufacturer['manufacturer_id'])
);
}

if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/manufacturer.tpl')) {
$this->template = $this->config->get('config_template') . '/template/module/manufacturer.tpl';
} else {
$this->template = 'default/template/module/manufacturer.tpl';
}
$this->render();
}
}
?>

apresenta a seguinte tela:


Imagem



ao clicar em qualquer dos fabricantes, o que aparece é:


Imagem



o que deveria aparecer:


Imagem



Se quiser, vc pode ver esses exemplos direto no link http://www.espacomamifera.com.br/loja1

Acredito q seja um erro na linha 39 do código acima, mas não consegui encontrar ... pleaseeeeeee.
#10428
Suas informações ajudaram e muito em uma rápida solução:
Código: Selecionar todos
<?php
class ControllerModulemanufacturer extends Controller {
protected function index() {
$this->language->load('module/manufacturer');
$this->data['heading_title'] = $this->language->get('heading_title');
if (isset($this->request->get['path'])) {
$parts = explode('_', (string)$this->request->get['path']);
} else {
$parts = array();
}
if (isset($parts[0])) {
$this->data['manufacturer_id'] = $parts[0];
} else {
$this->data['manufacturer_id'] = 0;
}
if (isset($parts[1])) {
$this->data['child_id'] = $parts[1];
} else {
$this->data['child_id'] = 0;
}
$this->load->model('catalog/manufacturer');
$this->load->model('catalog/product');
$this->data['manufacturers'] = array();
$manufacturers = $this->model_catalog_manufacturer->getmanufacturers(0);
foreach ($manufacturers as $manufacturer) {
$children_data = array();
$children = $this->model_catalog_manufacturer->getmanufacturers($manufacturer['manufacturer_id']);

$data = array(
'filter_manufacturer_id' => $manufacturer['manufacturer_id'],
'filter_sub_manufacturer' => true
);

$product_total = $this->model_catalog_product->getTotalProducts($data);
$this->data['manufacturers'][] = array(
'manufacturer_id' => $manufacturer['manufacturer_id'],
'name' => $manufacturer['name'] . ' (' . $product_total . ')',
'children' => $children_data,
'href' => $this->url->link('product/manufacturer/product', 'manufacturer_id=' . $manufacturer['manufacturer_id'])
);
}

if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/manufacturer.tpl')) {
$this->template = $this->config->get('config_template') . '/template/module/manufacturer.tpl';
} else {
$this->template = 'default/template/module/manufacturer.tpl';
}
$this->render();
}
}
?>
Veja se vai funcionar ;)
Avatar do usuário
Por m.lirangi
Mensagens
#10439
Já que a gente abusa, o mínimo a fazer é dar todas as informações possíveis pra ajudar na solução... é assim que penso!!
Funcionou, está perfeito!
Vou colocar para download na parte de CONTRIBUIÇÕES. Se quiser disponibilizar no site depois, fique a vontade.
Mais uma vez obrigada!
Avatar do usuário
Por m.lirangi
Mensagens
#10454
Manoel... acho q o módulo tá dando um bugzinho :(

Com o módulo habitilado, a HOME fica com aqueles caracteres desconfigurados nos acentos. Se desabilito, volta ao normal.
Houve até uma vez que desabilitei, depois habilitei e ficou normal, mas qdo fechei o browser e abri novamente estava configurado.
Isso ocorre tanto nos 2 modulos de fabricante.
Não é a tradução, pois verifiquei e as 2 estao com *BOM

E agora ?? :(
#10458
Já tentou limpar o cache do navegador, pois uma vez perdi um tempão abrindo e fechando o navegador e não mudava, daí limpei o cache totalmente e parou o bug, outra coisa é se você instalou ele várias vezes no OpenCart, neste caso desinstale-o e delete os arquivos e instale tudo novamente.
m.lirangi escreveu:Manoel... acho q o módulo tá dando um bugzinho :(

Com o módulo habitilado, a HOME fica com aqueles caracteres desconfigurados nos acentos. Se desabilito, volta ao normal.
Houve até uma vez que desabilitei, depois habilitei e ficou normal, mas qdo fechei o browser e abri novamente estava configurado.
Isso ocorre tanto nos 2 modulos de fabricante.
Não é a tradução, pois verifiquei e as 2 estao com *BOM

E agora ?? :(
#10479
Acabei de testar novamente e aqui comigo apareceu tudo normal tanto no tema default como no que desenvolvi.
m.lirangi escreveu:Não é não... limpei cache, testei em 3 browsers, desinstalei totalmente e até instalei em loja crua e sempre dá o bug!!!
:cry: