<?php
class ControllerModulelpbc extends Controller {
  protected function index($setting) {

    static $module = 0;
    $this->language->load('module/lpbc');

    $this->data['heading_title'] = $this->language->get('heading_title');
    $this->data['viewall'] = $this->language->get('viewall');
    $this->data['button_cart'] = $this->language->get('button_cart');

    $this->data['button_wishlist'] = $this->language->get('button_wishlist');
    $this->data['button_compare'] = $this->language->get('button_compare');

    if (isset($this->request->get['path'])) {
      $pathparts = explode('_', (string)$this->request->get['path']);

      $this->data['cat_id'] = $cat_id = array_pop($pathparts);
    } else {
      $this->data['cat_id'] = $cat_id = $setting['category_id'];
    }

    $this->load->model('catalog/category');

    $category_info = $this->model_catalog_category->getCategory($cat_id);

    if (!empty($category_info)){
      $this->data['category_name'] = $category_info['name'];
      $this->data['category_url'] = $this->url->link('product/category', 'path=' . $category_info['category_id']);

      $this->load->model('catalog/product');

      $this->load->model('tool/image');

      $this->data['products'] = array();
        $data = array(
          'filter_category_id' => $cat_id,
          'sort'  => 'p.date_added',
          'order' => 'DESC',
          'start' => 0,
          'limit' => $setting['limit']
        );

      $product_total = $this->model_catalog_product->getTotalProducts($data);

      $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']).'?version='.preg_replace("/[^0-9]/", "", $result['data_atualizacao_replicacao']);
        } else {
          $image = false;
        }

        $images = $this->model_catalog_product->getProductImages($result['product_id']);

        if(isset($images[0]['image']) && !empty($images[0]['image'])){
          $images =$images[0]['image'];
        }

        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_tax')) {
          $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price']);
        } else {
          $tax = false;
        }

        if ($this->config->get('config_review_status')) {
          $rating = (int)$result['rating'];
        } else {
          $rating = false;
        }

        $this->data['products'][] = array(
          'product_id'  => $result['product_id'],
          'model'       => $result['model'],
          'thumb'   	  => $image,
          'name' 				=> utf8_substr(strip_tags(html_entity_decode($result['name'], ENT_QUOTES, 'UTF-8')), 0, 35) . '..',
          'description' => strlen($result['name']) > 40 ? mb_substr($result['description'],0,40,'UTF-8')."..." : $result['description'],
          'price'       => $price,
          'special'     => $special,
          'tax'         => $tax,
          'rating'      => $result['rating'],
          'productcart' => $result['productcart'],
          'reviews'     => sprintf($this->language->get('text_reviews'), (int)$result['reviews']),
          'href'        => $this->url->link('product/product' . '&product_id=' . $result['product_id']),
          // for swap image
          //'thumb_swap'  => $this->model_tool_image->resize($images, $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')),
          //
          // for saving percentage
          'saving'	=> round((($result['price'] - $result['special'])/$result['price'])*100, 0),
          //
        );
      }

      $this->data['module'] = $module++;

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

      $this->render();


    }

  }

}
?>
