Página 1 de 1

Erro no módulo de fabricantes [Resolvido]

Enviado: 14 Out 2011, 23:44
por m.lirangi
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???

Re: Erro no módulo de fabricantes

Enviado: 15 Out 2011, 11:36
por Manoel Vidal
Posta o módulo para que possamos avaliar e ajudar ;)

Re: Erro no módulo de fabricantes

Enviado: 15 Out 2011, 17:26
por m.lirangi
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.

Re: Erro no módulo de fabricantes

Enviado: 16 Out 2011, 04:07
por Manoel Vidal
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 ;)

Re: Erro no módulo de fabricantes

Enviado: 16 Out 2011, 15:14
por m.lirangi
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!

Re: Erro no módulo de fabricantes

Enviado: 16 Out 2011, 19:30
por m.lirangi
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 ?? :(

Re: Erro no módulo de fabricantes

Enviado: 16 Out 2011, 20:01
por Manoel Vidal
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 ?? :(

Re: Erro no módulo de fabricantes

Enviado: 16 Out 2011, 20:21
por m.lirangi
Não é não... limpei cache, testei em 3 browsers, desinstalei totalmente e até instalei em loja crua e sempre dá o bug!!!
:cry:

Re: Erro no módulo de fabricantes

Enviado: 16 Out 2011, 22:04
por Manoel Vidal
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:

Re: Erro no módulo de fabricantes

Enviado: 17 Out 2011, 10:20
por m.lirangi
baixei o seu corrigido e o problema sumiu!! rsrsrs
devem ser suas mãos mágicas kkkk
vlw!!!