<?php
    /*
     *
     * copyright (c) 2013-2022 Heliac Technologies
     * license http://opensource.org/licenses/gpl-license.php GNU GPL v3 
     *
     * linee guida per l'utilizzo del logo http://www.geecom.org/articolo.php?id=34&alias=linee-guida-per-l%27uso-del-logo-geecom
     */

    class VisualizzatoreSezioneAQuattroColonne extends VisualizzatoreComponente {
        private $gestoreTraduzioni;
        private $linguaCorrente;
        private $impostazioni;
        private $impostazioniRicerca;
        private $configurazioneAspetto;
        private $gestoreJavascript;
        
        function __construct($db) {
            parent::__construct($db);
        }

        function generaContenutoSezione($dati) {
            $datiSezione = parent::getDb()->leggiSingolaRiga("geec_sezioniAQuattroColonne",$dati["idElemento"]);
            $classiDiv = explode(", ", $datiSezione["proporzioni"]);
            ?>
            <div class="col-md-3 justify-content-around px-0 <?php echo $datiSezione["allineamento"] ?>">
                <div class="row w-100">
                    <?php
                        if($datiSezione["idComponenteSezione1"]!=0) {
                            $query = "SELECT c.nome,posizione,tipo,testo,ch.script,idElemento,idSezione,classeSezione,animazione,coloreSfondo,immagineSfondo,videoSfondo,altreOpzioni,aTuttaLarghezza FROM geecAd_composizionePagine AS ch JOIN geecAd_componenti AS c ON ch.idComponente =c.id WHERE ch.id={$datiSezione["idComponenteSezione1"]} ";
                            $risQuery = parent::getDb()->eseguiQueryLettura($query);
                            $componenteSinistra = $risQuery->fetch_assoc();
                            UtilTemplate::stampaSingoloComponente(parent::getDb(),$this->gestoreJavascript,$this->impostazioni,$this->impostazioniRicerca,$this->configurazioneAspetto,$componenteSinistra,$this->gestoreTraduzioni,$this->linguaCorrente,"no"); 
                        }
                        else {
                            parent::messaggioDiErrore("Questo componente non è stato impostato");
                        }
                    ?>
                </div>
            </div>
            <div class="col-md-3 justify-content-around px-0 <?php echo $datiSezione["allineamento"] ?>">
                <div class="row w-100">
                    <?php 
                        if($datiSezione["idComponenteSezione2"]!=0) {
                            $query = "SELECT c.nome,posizione,tipo,testo,ch.script,idElemento,idSezione,classeSezione,animazione,coloreSfondo,immagineSfondo,videoSfondo,altreOpzioni,aTuttaLarghezza FROM geecAd_composizionePagine AS ch JOIN geecAd_componenti AS c ON ch.idComponente =c.id WHERE ch.id={$datiSezione["idComponenteSezione2"]}";
                            $risQuery = parent::getDb()->eseguiQueryLettura($query);
                            $componenteDestra = $risQuery->fetch_assoc();
                            UtilTemplate::stampaSingoloComponente(parent::getDb(),$this->gestoreJavascript,$this->impostazioni,$this->impostazioniRicerca,$this->configurazioneAspetto,$componenteDestra,$this->gestoreTraduzioni,$this->linguaCorrente,"no"); 
                        }
                        else {
                            parent::messaggioDiErrore("Questo componente non è stato impostato");
                        }
                    ?>
                </div>
            </div>
            <div class="col-md-3 justify-content-around px-0 <?php echo $datiSezione["allineamento"] ?>">
                <div class="row w-100">
                    <?php 
                        if($datiSezione["idComponenteSezione3"]!=0) {
                            $query = "SELECT c.nome,posizione,tipo,testo,ch.script,idElemento,idSezione,classeSezione,animazione,coloreSfondo,immagineSfondo,videoSfondo,altreOpzioni,aTuttaLarghezza FROM geecAd_composizionePagine AS ch JOIN geecAd_componenti AS c ON ch.idComponente =c.id WHERE ch.id={$datiSezione["idComponenteSezione3"]}";
                            $risQuery = parent::getDb()->eseguiQueryLettura($query);
                            $componenteDestra = $risQuery->fetch_assoc();
                            UtilTemplate::stampaSingoloComponente(parent::getDb(),$this->gestoreJavascript,$this->impostazioni,$this->impostazioniRicerca,$this->configurazioneAspetto,$componenteDestra,$this->gestoreTraduzioni,$this->linguaCorrente,"no"); 
                        }
                        else {
                            parent::messaggioDiErrore("Questo componente non è stato impostato");
                        }
                    ?>
                </div>
            </div>
            <div class="col-md-3 justify-content-around px-0 <?php echo $datiSezione["allineamento"] ?>">
                <div class="row w-100">
                    <?php 
                        if($datiSezione["idComponenteSezione4"]!=0) {
                            $query = "SELECT c.nome,posizione,tipo,testo,ch.script,idElemento,idSezione,classeSezione,animazione,coloreSfondo,immagineSfondo,videoSfondo,altreOpzioni,aTuttaLarghezza FROM geecAd_composizionePagine AS ch JOIN geecAd_componenti AS c ON ch.idComponente =c.id WHERE ch.id={$datiSezione["idComponenteSezione4"]}";
                            $risQuery = parent::getDb()->eseguiQueryLettura($query);
                            $componenteDestra = $risQuery->fetch_assoc();
                            UtilTemplate::stampaSingoloComponente(parent::getDb(),$this->gestoreJavascript,$this->impostazioni,$this->impostazioniRicerca,$this->configurazioneAspetto,$componenteDestra,$this->gestoreTraduzioni,$this->linguaCorrente,"no"); 
                        }
                        else {
                            parent::messaggioDiErrore("Questo componente non è stato impostato");
                        }
                    ?>
                </div>
            </div>
            <?php
        }

        public function getImpostazioni() {
            return $this->impostazioni;
        }

        public function getGestoreJavascript() {
            return $this->gestoreJavascript;
        }

        public function getGestoreTraduzioni() {
            return $this->gestoreTraduzioni;
        }

        public function getLinguaCorrente() {
            return $this->linguaCorrente;
        }

        public function setImpostazioniRicerca($impostazioniRicerca): void {
            $this->impostazioniRicerca = $impostazioniRicerca;
        }

        public function setConfigurazioneAspetto($configurazioneAspetto): void {
            $this->configurazioneAspetto = $configurazioneAspetto;
        }

        public function setLinguaCorrente($linguaCorrente): void {
            $this->linguaCorrente = $linguaCorrente;
        }
        
        public function setGestoreTraduzioni($gestoreTraduzioni): void {
            $this->gestoreTraduzioni = $gestoreTraduzioni;
        }
        
        public function setImpostazioni($impostazioni): void {
            $this->impostazioni = $impostazioni;
        }

        public function setGestoreJavascript($gestoreJavascript): void {
            $this->gestoreJavascript = $gestoreJavascript;
        }
        
        public function getImpostazioniRicerca() {
            return $this->impostazioniRicerca;
        }

        public function getConfigurazioneAspetto() {
            return $this->configurazioneAspetto;
        }

    }
