<?php

class ControllerCommonHeader extends Controller
{
    protected function index()
    {
        $this->data['title'] = $this->document->getTitle();
        $this->load->helper('ftr_geral');
        $this->load->type('tipocomum');

        $this->loadScripts();

        $this->data['types'] = $this->document->getTypes();

        $this->load->model('setting/extension');
        $this->load->model('setting/efutura');

        $this->data['nameuserlogado'] = $this->user->getUserName();

        // Novidades da versão
        $result_version = $this->model_setting_efutura->getVersion();
        if ($result_version) {
            $this->data['link_version'] = Type_LinkManual::getNickFromValue(Type_LinkManual::Tp_LinkManualVersion) . $result_version;
        }

        $this->data['description'] = $this->document->getDescription();
        $this->data['keywords'] = $this->document->getKeywords();
        $this->data['links'] = $this->document->getLinks();
        $this->data['lang'] = $this->language->get('code');
        $this->data['direction'] = $this->language->get('direction');

        $this->data['pagseguro_status'] = $this->config->get('pagseguro_status');
        $this->data['wg24_top_cart_bgcol'] = $this->config->get('wg24_top_cart_bgcol');
        $this->data['wg24_topcart_te_colo'] = $this->config->get('wg24_topcart_te_colo');

        $language = $this->language->load('common/header');
        $this->data = array_merge($this->data, $language);

        //Marketplaces menu Inicio
        $this->data['tipo_menu_tab']['mkt'] = Type_TitleModules::Tp_Marketplace;


        /* INICIO - Load infos hospedagem */
        $infos_hospedagem = $this->model_setting_efutura->getInfosHospedagem();
        if ($infos_hospedagem) {
            //$listaDominios = $this->model_setting_efutura->getDominios();
            $this->data['listaDominios'] = $this->model_setting_efutura->getDominios();
            //$this->data['hospedagem_dominio_principal'] = $infos_hospedagem['dominio'];
            $this->data['hospedagem_plano'] = $infos_hospedagem['plano_hospedagem'];

            if ($infos_hospedagem['total_disco_usado'] && $infos_hospedagem['total_disco']) {
                $this->data['hospedagem_percentual_disco_usado'] = round((($infos_hospedagem['total_disco_usado'] / $infos_hospedagem['total_disco']) * 100), 2);
                $this->data['hospedagem_disco_utilizado'] = sprintf($this->language->get('text_hospedagem_disco'), $infos_hospedagem['total_disco_usado'], $infos_hospedagem['total_disco']);
            } else {
                $this->data['hospedagem_disco_utilizado'] = false;
            }

            $link_temporario_ssl = $this->config->get('config_linktemporario_ssl');
            if (strpos($link_temporario_ssl, 'futurasistemas')) {
                $this->data['hospedagem_link_cpanel'] = str_replace('https://', 'https://cpanel.', $link_temporario_ssl);
            } else if (strpos($link_temporario_ssl, 'www')) {
                $this->data['hospedagem_link_cpanel'] = str_replace('https://www.', 'https://cpanel.', $link_temporario_ssl);
            } else {
                $this->data['hospedagem_link_cpanel'] = 'http://manual.futurasistemas.com.br/?s=cPanel';
            }
        }
        /* FIM - Load infos hospedagem */


        $data = array(
            'validate_dominio' => true
        );
        $infos_dominio = $this->model_setting_efutura->getDominiosDisponiveis($data);
        if ($infos_dominio) {
            $this->data['infos_dominio'] = true;

            $this->data['expirar']  = false;
            $this->data['expirado'] = false;

            foreach ($infos_dominio as $dominio){
              if ($dominio['expirado']){
                $this->data['expirado'] = true;
              } else {
                $this->data['expirar'] = true;
              }
            }
        }

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

        if (!$this->user->isLogged() || !isset($this->request->get['token']) || !isset($this->session->data['token']) || ($this->request->get['token'] != $this->session->data['token'])) {
            $this->data['logged'] = '';

            $this->data['home'] = $this->url->link('common/login', '', 'SSL');
        } else {
            $info_parametros = $this->db->query("SELECT idempresa FROM `parametros_efutura` WHERE 1 order by id desc limit 1")->row;

            $this->data['infos_empresa'] = $info_parametros['idempresa'] . " - " . substr($this->config->get('config_owner'), 0, 20);
            $this->data['logout'] = $this->url->link('common/logout', 'token=' . $this->session->data['token'], 'SSL');
            $this->data['alterar_senha'] = $this->url->link('user/trocasenha', 'token=' . $this->session->data['token'], 'SSL');
            $this->data['userinfo'] = ($this->user->getCheckInfo() != Type_UserCheck::Tp_Confirmed) ? true : false;
            $this->data['token'] = $this->session->data['token'];

            $this->data['logged'] = sprintf($this->language->get('text_logged'), $this->user->getUserName());
            $this->data['pp_express_status'] = $this->config->get('pp_express_status');

            $this->data['home'] = $this->url->link('common/home', 'token=' . $this->session->data['token'], 'SSL');
            $this->data['theme'] = $this->user->getTheme();

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

            $this->data['client_id'] = $info_parametros['idempresa'];

            $this->load->model('setting/store');

            $results = $this->model_setting_store->getStores();

            foreach ($results as $result) {
                $this->data['stores'][] = array(
                    'name' => $result['name'],
                    'href' => $result['url']
                );
            }

            if (isset($this->session->data['success'])) {
                $this->data['success'] = $this->session->data['success'];
                unset($this->session->data['success']);
            } else {
                $this->data['success'] = '';
            }

            $this->data['notifications'] = $this->getChild('common/notification');
            $this->data['nav'] = $this->getChild('common/nav');

        }

        $this->data['Type_ServerDnsAddress'] = $this->load->typeForTwig('Type_ServerDnsAddress');

        $this->data['styles'] = $this->document->getStyles();
        $this->data['scripts'] = $this->document->getScripts();

        $this->data['globals'] = $this->getGlobals();

        $this->render('common/header');
    }

    public function getGlobals()
    {

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

        return array(
            'no_image' => $this->dmodel_tool_image->resize('no_image.jpg', 100, 100)
        );

    }

    public function loadScripts()
    {
        /*
        função para carregar os scripts/styles que a pagina necessita
        foi criado um array para cada um onde especificamos no key o caminho do arquivo e no value
        se esse arquivo necessita de alguma validação sendo que caso ele necessite podemos o usar o
        $this->config->get(campo_validacao) onde ele buscara se é verdadeiro ou falso passando o paramentro corrreto
        para a função, caso ele não necessite de validação basta passar o paramentro false.
        */
        $this->data['base'] = $this->url->link('/admin/', '', 'SSL', false);
        $this->data['baseloja'] = $this->urlloja->link('', '', 'SSL', false);

        $arrayCss = array(
            'view/stylesheet/stylesheet.css' => true,
            'view/javascript/jquery/ui/themes/ui-lightness/jquery-ui-1.8.16.custom.css' => true,
            '../catalog/view/theme/vista/js/fancybox/jquery.fancybox.css' => true,
            '../node_modules/@fortawesome/fontawesome-free/css/all.css' => true,
            'view/stylesheet/isloading.css' => true,
            'view/public/css/styles.css' => true,
            '../catalog/view/theme/vista/stylesheet/reset-product-description.css' => true
        );

        foreach ($arrayCss as $key => $value) {
            if (!is_null($value)) {
                if ($value) {
                    $this->document->addStyle($key);
                }
            }
        }

        $this->document->addScriptPrioridade('admin/public/js/main-header3.js');
        $this->document->addScriptPrioridade('admin/public/js/main-header2.js');
        $this->document->addScriptPrioridade('admin/public/js/main-header.js');
        $this->document->addScriptPrioridade('admin/public/js/main-header-es6.js');
        $this->document->addScript(array(
            'view/public/js/common/header.js',
            'view/public/js/submitMainForm.js',
        ));

        $this->data['vue_file_manager'] = $this->ftrgeralregistry->getScriptManifest('public/js/vue-file-manager.js', false);

    }

}
