Página 1 de 2

Produtos randomicos na home (latest) 1.5.1.3

Enviado: 03 Fev 2012, 08:49
por braziel
Bom dia, eu pesquisei e encontrei na internet dois tutoriais de como colocar produtos aleatorios na página principal, primeiro não encontrei as linhas que eles pediam para alterar, o outro eu modifiquei metade porque a outra metade não encontrei. Agora estou recorrendo a vocês!

Meu opencart é 1.5.1.3, alguém pode me ajudar a fazer isso nessa versão?

Re: Produtos randomicos na home (latest) 1.5.1.3

Enviado: 03 Fev 2012, 14:57
por Renato Frota
É só Imagem a palavra aleatórios

Re: Produtos randomicos na home (latest) 1.5.1.3

Enviado: 03 Fev 2012, 15:39
por braziel
Eu já fiz isto..
Mas o tutorial não funciona porque a versão do exemplo deve ser mais antiga, a linha que tenho que procurar não existe, e a unica possivel linha que seja a correta resulta em erro no site.

Warning: shuffle() expects parameter 1 to be array, null given in /srv/ftp/h3equipame/public_html/catalog/controller/module/latest.php on line 28Warning: array_slice() [function.array-slice]: The first argument should be an array in /srv/ftp/h3equipame/public_html/catalog/controller/module/latest.php on line 29Warning: Invalid argument supplied for foreach() in /srv/ftp/h3equipame/public_html/catalog/controller/module/latest.php on line 31

Re: Produtos randomicos na home (latest) 1.5.1.3

Enviado: 03 Fev 2012, 15:54
por Renato Frota
braziel escreveu:Eu já fiz isto..
Mas o tutorial não funciona porque a versão do exemplo deve ser mais antiga, a linha que tenho que procurar não existe, e a unica possivel linha que seja a correta resulta em erro no site.

Warning: shuffle() expects parameter 1 to be array, null given in /srv/ftp/h3equipame/public_html/catalog/controller/module/latest.php on line 28Warning: array_slice() [function.array-slice]: The first argument should be an array in /srv/ftp/h3equipame/public_html/catalog/controller/module/latest.php on line 29Warning: Invalid argument supplied for foreach() in /srv/ftp/h3equipame/public_html/catalog/controller/module/latest.php on line 31
Você tem mais de 1 produto?

Re: Produtos randomicos na home (latest) 1.5.1.3

Enviado: 03 Fev 2012, 15:59
por braziel
Deve ter uns 80/100 produtos cadastrados

Re: Produtos randomicos na home (latest) 1.5.1.3

Enviado: 03 Fev 2012, 16:05
por Renato Frota
braziel escreveu:Deve ter uns 80/100 produtos cadastrados
O latest_limit (limite de produtos a serem exibidos no módulo latest (novidades / ultimos produtos)) está configurado (com um valor maior que zero)?

Re: Produtos randomicos na home (latest) 1.5.1.3

Enviado: 03 Fev 2012, 16:27
por braziel
Meu arquivo catalog/controller/module/latest.php
Código: Selecionar todos
<?php
class ControllerModuleLatest extends Controller {
	protected function index($setting) {
		$this->language->load('module/latest');
		
      	$this->data['heading_title'] = $this->language->get('heading_title');
		
		$this->data['button_cart'] = $this->language->get('button_cart');
				
		$this->load->model('catalog/product');
		
		$this->load->model('tool/image');
		
		$this->data['setting'] = $setting;
		
		$this->data['products'] = array();
		
		$data = array(
			'sort'  => 'p.date_added',
			'order' => 'DESC',
			'start' => 0,
			'limit' => $setting['limit']
		);

		$results = $this->model_catalog_product->getProducts($data);

		foreach ($results as $result) {
			if ($result['image']) {
				$image = $this->model_tool_image->resize($result['image'], $setting['image_width'], $setting['image_height']);
			} else {
				$image = false;
			}
						
			if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
				$price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')));
			} else {
				$price = false;
			}
					
			if ((float)$result['special']) {
				$special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')));
			} else {
				$special = false;
			}
			
			if ($this->config->get('config_review_status')) {
				$rating = $result['rating'];
			} else {
				$rating = false;
			}

			
			$this->data['products'][] = array(
				'product_id' => $result['product_id'],
				'thumb'   	 => $image,
				'name'    	 => $result['name'],
				'price'   	 => $price,
				'special' 	 => $special,
				'rating'     => $rating,
				'reviews'    => sprintf($this->language->get('text_reviews'), (int)$result['reviews']),
				'href'    	 => $this->url->link('product/product', 'product_id=' . $result['product_id']),
			);
		}

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

		$this->render();
	}
}
?>

Re: Produtos randomicos na home (latest) 1.5.1.3

Enviado: 03 Fev 2012, 16:53
por Renato Frota
Esse arquivo tá igual ao meu original da 1.5.1.3 exceto pela linha:
Código: Selecionar todos
      $this->data['setting'] = $setting;
logo no início.

Você não respondeu a minha pergunta, e colar o arquivo original (ou quase) não vai resolver o seu problema.

Re: Produtos randomicos na home (latest) 1.5.1.3

Enviado: 03 Fev 2012, 17:10
por braziel
Renato eu não sou programador.. você fez uma pergunta e eu não soube responder, por isso eu colei o arquivo.
Mas essa linha ai já estava, estou usando os arquivos originais da opencart.

Sobre esse latest_limit onde eu encontro ele para eu te responder?

Desculpe minha noobice =[

Re: Produtos randomicos na home (latest) 1.5.1.3

Enviado: 03 Fev 2012, 18:16
por Renato Frota
braziel escreveu:Renato eu não sou programador.. você fez uma pergunta e eu não soube responder, por isso eu colei o arquivo.
Mas essa linha ai já estava, estou usando os arquivos originais da opencart.

Sobre esse latest_limit onde eu encontro ele para eu te responder?

Desculpe minha noobice =[
Eu tentei te responder considerando isso...

latest_limit (no código) se refere ao que, no painel administrativo, é: "limite de produtos a serem exibidos no módulo latest (novidades / ultimos produtos)"

então, vá no módulo em questão, e verifique se está configurado um limite. se esse limite for 0 ou vazio, o código dá erro.