<?php
class ControllerModuleStoreRating extends Controller {
  private $error = array();

  public function index() {
    $this->load->type('tipocomum');
    $this->load->helper('ftr_geral');

    $language = $this->language->load('module/store_rating');

    $this->data = array_merge($this->data, $language);

    $this->data['languageForJS'] = array(
      'module/store_rating' => $language
    );

    $this->document->addScript('admin/public/js/module/store-rating.js');
    $this->data['ftr_geral'] = new ftr_geral();
    $this->data['Type_Status'] = $this->load->typeForTwig('Type_Status');

    $this->document->addTypesForJs(array(
      Type_Status::getTypeForJs(),
    ));

    $this->document->setTitle($this->language->get('heading_title'));
    $this->load->model('setting/setting');

    if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) {
      $this->model_setting_setting->editSetting('store_rating', $this->request->post);

      $this->session->data['success'] = $this->language->get('text_success');

      $this->redirect($this->url->linkAnchor('extension/module', 'token=' . $this->session->data['token'], 'tab-info=' . $this->request->get['type'], 'SSL'));
    }

    // $this->data['positions'] = Type_ModulePosition::getEnumList(true);
    $this->data['positions'] = Type_ModulePosition::getRemoveArray([Type_ModulePosition::Tp_ColumnRight, Type_ModulePosition::Tp_ColumnLeft], true);

    if (isset($this->error['warning'])) {
      $this->data['error_warning'] = $this->error['warning'];
    } else {
      $this->data['error_warning'] = '';
    }

    $this->data['breadcrumbs'] = array();

    $this->data['breadcrumbs'][] = array(
      'text'      => $this->language->get('text_home'),
      'href'      => $this->url->link('common/home', 'token=' . $this->session->data['token'], 'SSL'),
      'separator' => false
    );

    $this->data['breadcrumbs'][] = array(
      'text'      => $this->language->get('text_module'),
      'href'      => $this->url->linkAnchor('extension/module', 'token=' . $this->session->data['token'], 'tab-info=' . $this->request->get['type'], 'SSL'),
      'separator' => ' :: '
    );

    $this->data['breadcrumbs'][] = array(
      'text'      => $this->language->get('heading_title'),
      'href'      => $this->url->link('module/store_rating', 'token=' . $this->session->data['token'] . '&type=' . $this->request->get['type'], 'SSL'),
      'separator' => ' :: '
    );

    $this->data['action'] = $this->url->link('module/store_rating', 'token=' . $this->session->data['token'] . '&type=' . $this->request->get['type'], 'SSL');

    $this->data['cancel'] = $this->url->linkAnchor('extension/module', 'token=' . $this->session->data['token'], 'tab-info=' . $this->request->get['type'], 'SSL');

    $this->data['module'] = $this->config->get('store_rating_module_status');
    $this->data['modules'] = array();

    if (isset($this->request->post['store_rating_module'])) {
      $this->data['modules'] = $this->request->post['store_rating_module'];
    } elseif ($this->config->get('store_rating_module')) {
      $this->data['modules'] = $this->config->get('store_rating_module');
    }

    $this->load->dmodel('design/layout');

    $this->data['layouts'] = $this->dmodel_design_layout->getLayouts();

    $this->load->model('design/banner');

    $this->data['store_ratings'] = $this->model_design_banner->getBanners();

    $this->children = array(
      'common/header',
      'common/footer'
    );

    $this->response->setOutput($this->render('module/store_rating'));
  }

  protected function validate() {
    if (!$this->user->hasPermission('modify', 'module/store_rating')) {
      $this->error['warning'] = $this->language->get('error_permission');
    }

    if (!$this->error) {
      return true;
    } else {
      return false;
    }
  }
}
