_("Gen"),"02"=>_("Feb"),"03"=>_("Mar"),"04"=>_("Apr"),"05"=>_("Mag"),"06"=>_("Giu"),"07"=>_("Lug"),"08"=>_("Ago"),"09"=>_("Set"),"10"=>_("Ott"),"11"=>_("Nov"),"12"=>_("Dic")); //$mesiEN_a=array("01"=>"Jan","02"=>"Feb","03"=>"Mar","04"=>"Apr","05"=>"May","06"=>"Jun","07"=>"Jul","08"=>"Aug","09"=>"Sep","10"=>"Oct","11"=>"Nov","12"=>"Dec"); $_CONFIG["traduzioni"] = array(); $_CONFIG["traduzioni"]["mesi"]=array("",_("gennaio"),_("febbraio"),_("marzo"),_("aprile"),_("maggio"),_("giugno"),_("luglio"),_("agosto"),_("settembre"),_("ottobre"),_("novembre"),_("dicembre")); $giorni_settimana_a=array(_("Domenica"),_("Lunedì"),_("Martedì"),_("Mercoledì"),_("Giovedì"),_("Venerdì"),_("Sabato")); $stati_prenotazione_a = array(_("In attesa"),_("Confermato"),_("Annullato")); // ARRAY TIPOLOGIE PAGINA //$elenco_moduli_a = array("titolo","html","slideshow","galleria","vetrina","parallax","iframe","shared","schede","elenco","volantino"); // array unità di misura $unita_misure_a = array("","gr", "l", "cucchiaio", "cucchiaino", "bicchiere", "tazza", "qb", "busta", "vasetto", "kg", "ml"); // array modulo prodotti $page_a=array("inserisci_prodotto.php","inserisci_prodotti_foto.php","inserisci_prodotti_file.php","inserisci_specifiche_prodotti.php","inserisci_prezzi_qta_prodotti.php"); $page_title_a=array("nome, categoria, marca, descrizione","galleria fotografica","schede tecniche","specifiche e varianti","gestione avanzata prezzo e quantità"); /* 0 1 0 179 178 149 IT 1 2 0 180 178 149 */ /* $campi_registrazione_utente = array( 'nome' => array('label' => 'Nome', 'placeholder' => 'Scrivi qui il tuo nome', 'defaultValue' => '', 'required' => true), 'cognome' => array('label' => 'Cognome', 'placeholder' => 'Scrivi qui il tuo cognome', 'defaultValue' => '', 'required' => true), // 'ragione_sociale' => array('label' => 'Ragione Sociale', 'placeholder' => 'Ragione Sociale', 'defaultValue' => '', 'required' => true), 'email' => array('label' => 'E-Mail', 'placeholder' => 'Scrivi qui la tua email', 'defaultValue' => '', 'required' => true, 'username' => true), 'tel_mobile' => array('label' => 'Telefono cellulare', 'placeholder' => 'Scrivi qui il numero di telefono cellulare', 'defaultValue' => '', 'required' => true, 'username' => true), 'cf' => array('label' => 'Codice Fiscale', 'placeholder' => 'Scrivi qui il codice fiscale', 'defaultValue' => '', 'required' => true, 'username' => false), // 'p_iva' => array('label' => 'Partita IVA', 'placeholder' => 'Partita IVA', 'defaultValue' => '', 'required' => true, 'username' => false), // 'provincia' => array('label' => 'Provincia', 'placeholder' => 'Provincia di residenza', 'defaultValue' => '', 'required' => false), // 'comune' => array('label' => 'Comune', 'placeholder' => 'CAP o Comune di residenza', 'defaultValue' => '', 'required' => false), 'data_nascita' => array('label' => 'Data di nascita', 'placeholder' => 'Data di nascita', 'defaultValue' => '', 'required' => false), 'sesso' => array('label' => 'Sesso', 'placeholder' => 'Sesso', 'defaultValue' => '', 'required' => true), 'localita' => array('label' => 'Località di residenza', 'placeholder' => 'CAP o Comune di residenza', 'defaultValue' => '', 'required' => true, 'config' => array('paesi_abilitati' => array('IT'=>'Italia', 'US'=>'Stati Uniti'), 'campo_singolo'=>false, 'livello_area_amministrativa'=>3, 'cap' => true)), 'policy_consenso' => array('label' => 'Consenso al trattamento dei dati personali', 'placeholder' => '', 'defaultValue' => '', 'required' => true), 'policy_condizioni' => array('label' => 'Termini e Condizioni', 'placeholder' => '', 'defaultValue' => '', 'required' => true), 'policy_commerciali' => array('label' => 'Trattamento dei dati personali per finalità commerciali e statistiche del Titolare', 'placeholder' => '', 'defaultValue' => '', 'required' => true), 'policy_terze_parti' => array('label' => 'Trattamento dei dati personali per finalità commerciali di terzi', 'placeholder' => '', 'defaultValue' => '', 'required' => true), // 'nickname' => array('label' => 'Nickname', 'placeholder' => 'Scrivi qui il tuo nickname', 'defaultValue' => '', 'required' => true, 'username' => true), 'password' => array('label' => 'Password', 'placeholder' => 'Password', 'defaultValue' => '', 'required' => true) ); */ // 'cf' => array('label' => 'Codice fiscale', 'placeholder' => 'Scrivi qui il tuo codice fiscale', 'defaultValue' => '', 'required' => true, 'username' => false) // 'cap' => array('label' => 'Codice fiscale', 'placeholder' => 'Scrivi qui il tuo codice fiscale', 'defaultValue' => '', 'required' => true, 'username' => false) // 'comune' => array('label' => 'Codice fiscale', 'placeholder' => 'Scrivi qui il tuo codice fiscale', 'defaultValue' => '', 'required' => true, 'username' => false) // 'provincia' => array('label' => 'Codice fiscale', 'placeholder' => 'Scrivi qui il tuo codice fiscale', 'defaultValue' => '', 'required' => true, 'username' => false) // 'paese' => array('label' => 'Codice fiscale', 'placeholder' => 'Scrivi qui il tuo codice fiscale', 'defaultValue' => '', 'required' => true, 'username' => false) // 'sesso' => array('label' => 'Codice fiscale', 'placeholder' => 'Scrivi qui il tuo codice fiscale', 'defaultValue' => '', 'required' => true, 'username' => false) // 'data_nascita' => array('label' => 'Codice fiscale', 'placeholder' => 'Scrivi qui il tuo codice fiscale', 'defaultValue' => '', 'required' => true, 'username' => false) // 'nickname' => array('label' => 'Nickname', 'placeholder' => 'Scrivi qui il tuo nickname', 'defaultValue' => '', 'required' => true, 'username' => true) // Impostazioni sui moduli ricercabili (quali campi è possibile cercare ed in che modo ordinare i risultati) // array utilizzato sia per definire le regole delle vetrine che nei filtri del modulo elenco // VA TOTLO DA QUI E CREATO DALLE IMPOSTAZIONI DEL MODULO $moduli_ricercabili = array('eventi' => array('nome' => 'Eventi', 'tabelle' => array('eventi' => 'ev_id', 'eventi_periodo' => 'evp_eventoID=ev_id', 'eventi_prenotazioni' => 'ep_eventoID=ev_id'), 'tabelle_specifiche' => array('eventi_specifiche_assegnate' => 'sa_target_id=ev_id', 'eventi_specifiche' => 's_id=sa_target_id', 'eventi_specifiche_valori' => 'sv_id=sa_valore_id'), 'campi' => array('Nome' => array('label' => 'Nome', 'field' => 'ev_titolo', 'field_label'=> 'ev_titolo', 'filter_type' => FILTRO_CAMPO_DIRETTO, 'field_type' => SPECIFICA_TIPO_STRINGA, 'table' => 'eventi'), 'Descrizione' => array('label' => 'Descrizione', 'field' => 'ev_testo', 'field_label'=> 'ev_testo', 'filter_type' => FILTRO_CAMPO_DIRETTO, 'field_type' => SPECIFICA_TIPO_STRINGA, 'table' => 'eventi'), 'Data' => array('label' => 'Data Evento', 'field' => 'evp_dataEvento', 'field_label'=> 'evp_dataEvento', 'filter_type' => FILTRO_CAMPO_DIRETTO, 'field_type' => SPECIFICA_TIPO_DATA, 'table' => 'eventi_periodo'), 'Specifiche' => array('label' => 'Specifiche', 'field' => 'sa_valore_id', 'field_label'=> 'sa_valore_id', 'filter_type' => FILTRO_SPECIFICA, 'field_type' => SPECIFICA_TIPO_NUMERO, 'table' => 'eventi_specifiche_assegnate') ), 'ordinamento' => array('date_asc' => array('label' => 'Data evento crescente', 'field' => 'evp_dataEvento', 'direction' => 'ASC', 'table' => 'eventi_periodo'), 'date_desc' => array('label' => 'Data evento decrescente', 'field' => 'evp_dataEvento', 'direction' => 'DESC', 'table' => 'eventi_periodo'), 'name_asc' => array('label' => 'Nome evento crescente', 'field' => 'ev_titolo', 'direction' => 'ASC', 'table' => 'eventi'), 'name_desc' => array('label' => 'Nome evento decrescente', 'field' => 'ev_titolo', 'direction' => 'DESC', 'table' => 'eventi') ) ), 'booking-servizi' => array('nome' => 'Servizi', 'tabelle' => array('servizi' => 'sfa_id', 'servizi_costi' => 'sfc_servizioID=sfa_id'), 'tabelle_specifiche' => array('servizi_specifiche_assegnate' => 'sa_target_id=sfa_id', 'servizi_specifiche' => 's_id=sa_specifica_id', 'servizi_specifiche_valori' => 'sv_id=sa_valore_id'), 'campi' => array('Nome' => array('label' => 'Nome', 'field' => 'sfa_titolo', 'field_label'=> 'sfa_titolo', 'filter_type' => FILTRO_CAMPO_DIRETTO, 'field_type' => SPECIFICA_TIPO_STRINGA, 'table' => 'servizi'), 'Descrizione' => array('label' => 'Descrizione', 'field' => 'sfa_testo', 'field_label'=> 'sfa_testo', 'filter_type' => FILTRO_CAMPO_DIRETTO, 'field_type' => SPECIFICA_TIPO_STRINGA, 'table' => 'servizi'), 'Comune' => array('label' => 'Comune', 'field' => 'sfa_comune', 'field_label'=> 'sfa_comune', 'filter_type' => FILTRO_CAMPO_DIRETTO, 'field_type' => SPECIFICA_TIPO_STRINGA, 'table' => 'servizi'), 'Prezzo' => array('label' => _('Prezzo'), 'field' => 'sfc_costo', 'field_label'=> 'sfc_costo', 'filter_type' => FILTRO_PREZZO, 'field_type' => SPECIFICA_TIPO_NUMERO, 'table' => 'servizi_costi'), 'location' => array('label' => _('Indirizzo'), 'field' => 'sfa_', 'field_label'=> 'sfa_', 'filter_type' => FILTRO_GEOCODE, 'field_type' => SPECIFICA_TIPO_STRINGA, 'table' => 'servizi'), // 'distanza' => array('label' => _('Distanza'), 'field' => 'distance', 'field_label'=> 'distance', 'filter_type' => FILTRO_GEOCODE, 'field_type' => SPECIFICA_TIPO_NUMERO, 'table' => 'servizi'), 'Specifiche' => array('label' => 'Specifiche', 'field' => 'sa_valore_id', 'field_label'=> 'sa_valore_id', 'filter_type' => FILTRO_SPECIFICA, 'field_type' => SPECIFICA_TIPO_NUMERO, 'table' => 'servizi_specifiche_assegnate') ), 'ordinamento' => array('price_asc' => array('label' => 'Prezzo dal più basso', 'field' => 'sfc_costo', 'direction' => 'ASC', 'table' => 'servizi_costi', 'filter_type' => FILTRO_PREZZO), 'price_desc' => array('label' => 'Prezzo dal più alto', 'field' => 'sfc_costo', 'direction' => 'DESC', 'table' => 'servizi_costi', 'filter_type' => FILTRO_PREZZO), 'distance_desc' => array('label' => 'Più distante', 'field' => 'distance', 'direction' => 'DESC', 'table' => 'servizi'), 'distance_asc' => array('label' => 'Più vicino', 'field' => 'distance', 'direction' => 'ASC', 'table' => 'servizi'), 'name_asc' => array('label' => 'Nome servizio crescente', 'field' => 'sfa_titolo', 'direction' => 'ASC', 'table' => 'servizi'), 'name_desc' => array('label' => 'Nome servizio decrescente', 'field' => 'sfa_titolo', 'direction' => 'DESC', 'table' => 'servizi') ) ), 'prodotti' => array('nome' => 'Prodotti', 'tabelle' => array('prodotti' => 'prodotti_id', 'prodotti_categorie' => 'cat_id=prodotti_categoriaID', 'prodotti_marca' => 'm_id=prodotti_marcaID'), 'tabelle_specifiche' => array('prodotti_specifiche_assegnate' => 'sa_prodotto_id=prodotti_id', 'prodotti_specifiche' => 's_id=sa_specifica_id', 'prodotti_specifiche_valori' => 'sv_id=sa_valore_id'), 'campi' => array('Nome' => array('label' => 'Nome', 'field' => 'prodotti_nome', 'field_label'=> 'prodotti_nome', 'filter_type' => FILTRO_CAMPO_DIRETTO, 'field_type' => SPECIFICA_TIPO_STRINGA, 'table' => 'prodotti'), 'Descrizione' => array('label' => 'Descrizione', 'field' => 'prodotti_descrizione', 'field_label'=> 'prodotti_descrizione', 'filter_type' => FILTRO_CAMPO_DIRETTO, 'field_type' => SPECIFICA_TIPO_STRINGA, 'table' => 'prodotti'), 'Prezzo' => array('label' => _('Prezzo'), 'field' => 'prodotti_prezzo', 'field_label'=> 'prodotti_prezzo', 'filter_type' => FILTRO_CAMPO_DIRETTO, 'field_type' => SPECIFICA_TIPO_NUMERO, 'table' => 'prodotti'), 'DataInserimento' => array('label' => 'Data Inserimento', 'field' => 'prodotti_data', 'field_label'=> 'prodotti_data', 'filter_type' => FILTRO_CAMPO_DIRETTO, 'field_type' => SPECIFICA_TIPO_DATA, 'table' => 'prodotti'), 'Categoria' => array('label' => _('Categoria'), 'field' => 'cat_id', 'field_label'=> 'cat_nome', 'filter_type' => FILTRO_CATEGORIA, 'field_type' => SPECIFICA_TIPO_STRINGA, 'table' => 'prodotti_categorie'), 'Marca' => array('label' => _('Marca'), 'field' => 'm_id', 'field_label'=> 'm_nome', 'filter_type' => FILTRO_CAMPO_DIRETTO, 'field_type' => SPECIFICA_TIPO_STRINGA, 'table' => 'prodotti_marca'), 'Offerta' => array('label' => _('In offerta'), 'field' => 'prodotti_offerta', 'field_label'=> 'prodotti_offerta', 'filter_type' => FILTRO_CAMPO_DIRETTO, 'field_type' => SPECIFICA_TIPO_NUMERO, 'table' => 'prodotti'), 'Specifiche' => array('label' => 'Specifiche', 'field' => 'sa_valore_id', 'field_label'=> 'sa_valore_id', 'filter_type' => FILTRO_SPECIFICA, 'field_type' => SPECIFICA_TIPO_NUMERO, 'table' => 'prodotti_specifiche_assegnate') ), 'ordinamento' => array('price_asc' => array('label' => 'Prezzo dal più basso', 'field' => 'prodotti_prezzo', 'direction' => 'ASC', 'table' => 'prodotti'), 'price_desc' => array('label' => 'Prezzo dal più alto', 'field' => 'prodotti_prezzo', 'direction' => 'DESC', 'table' => 'prodotti'), 'name_asc' => array('label' => 'Nome prodotto crescente', 'field' => 'prodotti_nome', 'direction' => 'ASC', 'table' => 'prodotti'), 'name_desc' => array('label' => 'Nome prodotto decrescente', 'field' => 'prodotti_nome', 'direction' => 'DESC', 'table' => 'prodotti') ) ) ); ?>query($query); $rowM = $result->fetch(PDO::FETCH_ASSOC); $moduli_a = json_decode($rowM['cat_moduli'], true); return $moduli_a; } // aggiorna tutti i moduli function update_modulo_tipologia($tipo,$moduli_a){ global $db,$_CONFIG; $query= "UPDATE ".$_CONFIG["table_suffix"]."categorie SET cat_moduli=:moduli WHERE cat_id= :id"; $res = $db->prepare($query); $res->execute(array(":moduli"=>$moduli_a, ":id"=>$tipo)); return true; } // aggiorna solo il modulo con chiave key function aggiorna_modulo_tipologia($tipologiaID,$key,$array){ global $db,$_CONFIG; $query = "SELECT cat_moduli FROM ".$_CONFIG["table_suffix"]."categorie WHERE cat_id=".$tipologiaID; $result = $db->query($query); $rowM = $result->fetch(PDO::FETCH_ASSOC); $moduli_a = json_decode($rowM['cat_moduli'], true); $moduli_a[$key] = $array; $moduli_a = json_encode($moduli_a); $query= "UPDATE ".$_CONFIG["table_suffix"]."categorie SET cat_moduli = :moduli WHERE cat_id = :tipologiaID"; $res = $db->prepare($query); $res->execute(array(":moduli"=>$moduli_a,":tipologiaID"=>$tipologiaID)); return true; } */ // FUNZIONI CREAZIONE PAGINA function stampa_moduli_pagina($id){ global $db,$_CONFIG; $query = "SELECT p_moduli, p_tipologia FROM ".$_CONFIG["table_suffix"]."pagine WHERE p_id=".$id; $result = $db->query($query); $rowM = $result->fetch(PDO::FETCH_ASSOC); $moduli_a = is_array(json_decode($rowM['p_moduli'], true)) ? json_decode($rowM['p_moduli'], true) : array(); $bt = debug_backtrace(); $caller = array_shift($bt); $header_global = true; if ($header_global) { $moduli_h_json = file_get_contents(PRIVATE_DIR.'/header_global_moduli.json'); $moduli_h = is_array(json_decode($moduli_h_json, true)) ? json_decode($moduli_h_json, true) : array(); $moduli_a = $moduli_a + $moduli_h; // con l'operatore "+" conservo le chiavi numeriche dell'array, gli indici dell'array non vengono ricreati errorLog(PRIVATE_DIR.'/global_moduli_debug.log', $caller['file'] .' riga '. $caller['line'] .' - id: '. $id.' - moduli_h_json: '.$moduli_h_json.' - moduli_h: '.print_r($moduli_h, true)); } $footer_global = true; if ($footer_global) { $moduli_f_json = file_get_contents(PRIVATE_DIR.'/footer_global_moduli.json'); $moduli_f = is_array(json_decode($moduli_f_json, true)) ? json_decode($moduli_f_json, true) : array(); $moduli_a = $moduli_a + $moduli_f; // con l'operatore "+" conservo le chiavi numeriche dell'array, gli indici dell'array non vengono ricreati errorLog(PRIVATE_DIR.'/global_moduli_debug.log', $caller['file'] .' riga '. $caller['line'] .' - id: '. $id.' - moduli_f_json: '.$moduli_f_json.' - moduli_f: '.print_r($moduli_f, true)); } return $moduli_a; } function update_modulo_pagina($paginaID,$moduli_a){ global $db,$_CONFIG; //$bt = debug_backtrace(); //$caller = array_shift($bt); //errorLog(PRIVATE_DIR.'/global_moduli_debug.log', $caller['file'] .' riga '. $caller['line'] .' - Pagina: '. $paginaID.' - moduli_a: '.print_r($moduli_a, true)); $header_global = true; if ($header_global) { $moduli_h = array(); foreach ($moduli_a as $key => $info) { if (substr($key, 0, 1) == 'h') { $moduli_h[$key] = $info; unset($moduli_a[$key]); } } file_put_contents(PRIVATE_DIR.'/header_global_moduli.json', json_encode($moduli_h)); } $footer_global = true; if ($footer_global) { $moduli_f = array(); foreach ($moduli_a as $key => $info) { if (substr($key, 0, 1) == 'f') { $moduli_f[$key] = $info; unset($moduli_a[$key]); } } file_put_contents(PRIVATE_DIR.'/footer_global_moduli.json', json_encode($moduli_f)); } //errorLog(PRIVATE_DIR.'/global_moduli_debug.log', $caller['file'] .' riga '. $caller['line'] .' - Pagina: '. $paginaID.' - moduli_h: '.print_r($moduli_h, true).' - moduli_f: '.print_r($moduli_f, true)); $query= "UPDATE ".$_CONFIG["table_suffix"]."pagine SET p_moduli = :moduli WHERE p_id= :id"; $res = $db->prepare($query); $res->execute(array(":moduli"=>json_encode($moduli_a), ":id"=>$paginaID)); return true; } function get_layout_pagina($id){ global $db,$_CONFIG; $query = "SELECT p_layout FROM ".$_CONFIG["table_suffix"]."pagine WHERE p_id=".$id; $result = $db->query($query); $rowM = $result->fetch(PDO::FETCH_ASSOC); $layout = json_decode($rowM['p_layout'], true); $header_global = true; if ($header_global) { $layout_h = file_get_contents(PRIVATE_DIR.'/header_global_layout.json'); $layout_h = json_decode($layout_h, true); $layout['header'] = $layout_h; } $footer_global = true; if ($footer_global) { $layout_f = file_get_contents(PRIVATE_DIR.'/footer_global_layout.json'); $layout_f = json_decode($layout_f, true); $layout['footer'] = $layout_f; } return $layout; } function update_layout_pagina($paginaID,$layout) { global $db,$_CONFIG; $header_global = true; if ($header_global) { file_put_contents(PRIVATE_DIR.'/header_global_layout.json', json_encode($layout['header'])); unset($layout['header']); } $footer_global = true; if ($footer_global) { file_put_contents(PRIVATE_DIR.'/footer_global_layout.json', json_encode($layout['footer'])); unset($layout['footer']); } $query= "UPDATE ".$_CONFIG["table_suffix"]."pagine SET p_layout = :layout WHERE p_id= :id"; $res = $db->prepare($query); $res->execute(array(":layout"=>json_encode($layout), ":id"=>$paginaID)); return true; /* try { $params =array(":layout"=>$layout, ":id"=>$paginaID); $query= "UPDATE ".$_CONFIG["table_suffix"]."pagine SET p_layout = :layout WHERE p_id= :id"; $r = $query->execute($params); } catch(PDOException $e) { echo $query->queryString.' '.$e->getMessage(); handle_sql_errors($query->queryString, $e->getMessage()); return false; } return true; */ } function indicizzazione_moduli_pagina($paginaID){ global $db,$_CONFIG; $moduli_a = stampa_moduli_pagina($paginaID); $delete = "DELETE FROM ".$_CONFIG["table_suffix"]."plugin_pagina WHERE pp_paginaID = :paginaID"; $res_ins = $db->prepare($delete); if(!$res_ins->execute(array(":paginaID"=>$paginaID))){ return 'errore '. $delete; } $insert = "INSERT IGNORE INTO ".$_CONFIG["table_suffix"]."plugin_pagina (pp_paginaID,pp_elementoID,pp_modulo) VALUES "; $insertQuery = array(); $insertData = array(); $n = 0; foreach ($moduli_a as $v) { $insertQuery[] = '(:paginaID' . $n . ', :moduloID' . $n . ', :nomemodulo' . $n . ')'; $insertData['paginaID' . $n] = $paginaID; $insertData['moduloID' . $n] = $v["id"]; $insertData['nomemodulo' . $n] = $v["modulo"]; $n++; } if (!empty($insertQuery)) { $insert .= implode(', ', $insertQuery); $stmt = $db->prepare($insert); if(!$stmt->execute($insertData)){ return 'errore '. $insert; } } return true; } // FUNZIONI SINGOLI MODULI function aggiorna_modulo($modulo,$paginaID,$key,$array){ global $db,$_CONFIG; /* $query = "SELECT p_moduli, p_categoria FROM ".$_CONFIG["table_suffix"]."pagine WHERE p_id=".$paginaID; $result = $db->query($query); $rowM = $result->fetch(PDO::FETCH_ASSOC); $moduli_a = json_decode($rowM['p_moduli'], true); $moduli_a[$key] = $array; $moduli_a = json_encode($moduli_a); $query= "UPDATE ".$_CONFIG["table_suffix"]."pagine SET p_moduli = :moduli WHERE p_id = :paginaID"; $res = $db->prepare($query); $res->execute(array(":moduli"=>$moduli_a,":paginaID"=>$paginaID)); return true; */ $moduli_a = stampa_moduli_pagina($paginaID); $moduli_a[$key] = $array; //print_r($moduli_a);exit(); return update_modulo_pagina($paginaID,$moduli_a); } function estrai_modulo($moduloID) { global $_CONFIG; $db=apri_connessione_pdo(); $sel = $db->query("SELECT * FROM ".$_CONFIG["db_prefix"]."superadmin.".$_CONFIG["table_suffix"]."moduli WHERE m_modulo = '".$moduloID."'"); $modulo_a = array(); while($modulo = $sel->fetch(PDO::FETCH_ASSOC)){ $modulo_a = array('nome' => $modulo["m_nome"], 'descrizione' => $modulo["m_testo"]); } return $modulo_a; } /* function elenco_moduli_attivi_free() { global $_CONFIG; $db=apri_connessione_pdo(); $moduli_free_a = array(); $select = "SELECT * FROM ".$_CONFIG["db_prefix"]."superadmin.".$_CONFIG["table_suffix"]."moduli WHERE m_flagFree = 1 ORDER BY m_modulo ASC"; $res = $db->query($select); while($row = $res->fetch(PDO::FETCH_ASSOC)){ $moduli_free_a[] = $row["m_modulo"]; } return $moduli_free_a; } */ function estrai_layout_tutti() { global $_CONFIG; $db=apri_connessione_pdo(); $sel = $db->query("SELECT * FROM ".$_CONFIG["db_prefix"]."superadmin.".$_CONFIG["table_suffix"]."layout WHERE 1=1"); $layout_a = array(); while($layout = $sel->fetch(PDO::FETCH_ASSOC)){ $layout_a[$layout["ly_id"]] = array('modulo' => $layout["ly_modulo"], 'nome' => $layout["ly_nome"], 'label' => $layout["ly_label"], 'dipendenze' => $layout["ly_dipendenze"], 'plugin_compatibili' => $layout["ly_plugin_compatibili"]); } return $layout_a; } function estrai_layout_modulo($nome_modulo, $modulo_id='') { global $_CONFIG; $db=apri_connessione_pdo(); $sel = $db->query("SELECT * FROM ".$_CONFIG["db_prefix"]."superadmin.".$_CONFIG["table_suffix"]."layout WHERE ly_modulo = '".$nome_modulo."' ORDER BY ly_nome"); $layout_a = array(); while($layout = $sel->fetch(PDO::FETCH_ASSOC)){ // Verifica se il contenuto specifico di questo modulo prevede [INIZIO] $visualizza_opzione = true; if ($modulo_id != '' && $layout["ly_plugin_compatibili"] != '') { //$visualizza_opzione = false; $plugin_compatibili = explode(';', $layout['ly_plugin_compatibili']); // devo vedere se questo modulo (normalmente vetrina o elenco) include plugin avanzati come prodotti, eventi, ecc... // se si, verifica la compatibilità del template con i contenuti avanzati switch ($nome_modulo) { case 'vetrina': // seleziono la vetrina $query = "SELECT ve_opz FROM ".$_CONFIG["table_suffix"]."vetrine WHERE ve_id = ".$modulo_id; $res = $db->query($query); $row = $res->fetch(PDO::FETCH_ASSOC); $opz = json_decode($row["ve_opz"], true); $filtri_modulo = isset($opz['filtriModulo']) ? $opz['filtriModulo'] : array(); $visualizza_opzione = in_array($filtri_modulo['modulo'], $plugin_compatibili); break; case 'elenco': // seleziono l'elenco $query = "SELECT el_opz FROM ".$_CONFIG["table_suffix"]."elenchi WHERE el_id = ".$modulo_id; $res = $db->query($query); $row = $res->fetch(PDO::FETCH_ASSOC); $opz = json_decode($row["el_opz"], true); $filtri_modulo = isset($opz['filtriModulo']) ? $opz['filtriModulo'] : array(); $visualizza_opzione = in_array($filtri_modulo['modulo'], $plugin_compatibili); break; } } //if (!$visualizza_opzione) continue; // Verifica se il contenuto specifico di questo modulo prevede [FINE] $layout_a[$layout["ly_id"]] = array('nome' => $layout["ly_nome"], 'label' => $layout["ly_label"], 'dipendenze' => $layout["ly_dipendenze"], 'plugin_compatibili' => $layout["ly_plugin_compatibili"], 'compatibile' => $visualizza_opzione); } return $layout_a; } function estrai_layout_by_id($layoutID) { global $_CONFIG; $db=apri_connessione_pdo(); $sel = $db->query("SELECT * FROM ".$_CONFIG["db_prefix"]."superadmin.".$_CONFIG["table_suffix"]."layout WHERE ly_id = '".$layoutID."'"); $layout_a = array(); while($layout = $sel->fetch(PDO::FETCH_ASSOC)){ $layout_a = array('nome' => $layout["ly_nome"], 'modulo' => $layout["ly_modulo"], 'label' => $layout["ly_label"], 'dipendenze' => $layout["ly_dipendenze"], 'plugin_compatibili' => $layout["ly_plugin_compatibili"]); } return $layout_a; } function elenco_pagine_modulo($modulo,$moduloID){ global $_CONFIG; $db=apri_connessione_pdo(); $select = "SELECT * FROM ".$_CONFIG["table_suffix"]."plugin_pagina JOIN ".$_CONFIG["table_suffix"]."pagine ON pp_paginaID = p_id WHERE pp_elementoID = :moduloID AND pp_modulo = :modulo"; $res = $db->prepare($select); $res->execute(array(":modulo"=>$modulo, ":moduloID"=>$moduloID)); $pagine_a = array(); while($row = $res->fetch(PDO::FETCH_ASSOC)){ if($row["p_id"] > 0) $pagine_a[] = $row["pp_paginaID"]; } return $pagine_a; } function dissocia_pagine_modulo($modulo,$moduloID,$elenco_pagine_a){ global $_CONFIG; $db=apri_connessione_pdo(); $select = "SELECT * FROM ".$_CONFIG["table_suffix"]."pagine WHERE p_id IN (".implode(',',$elenco_pagine_a).")"; $res = $db->query($select); while($row = $res->fetch(PDO::FETCH_ASSOC)){ $moduli_a = json_decode($row['p_moduli'], true); //var_dump($moduli_a); foreach($moduli_a as $k => $v){ if($v["modulo"]==$modulo && $v["id"]==$moduloID){ //echo "indice del modulo nella pagina ".$k; unset($moduli_a[$k]); } } update_modulo_pagina($row['p_id'],$moduli_a); indicizzazione_moduli_pagina($row['p_id']); } } ?>query($query); if ($row = $res->fetch(PDO::FETCH_ASSOC)){ return $row["t_traduzione"]; } else return $testo; }else return $testo; } function traduci_testi_multipli($lingua, $traduzioni=array()){ global $_CONFIG; $db=apri_connessione_pdo(); if($lingua != $_CONFIG['lingua_default'] && !empty($traduzioni)){ $condizioni = array(); foreach ($traduzioni as $key=>$testo) { list($prefix, $tabella, $colonna, $riga) = explode('|', $key); $condizioni[] = "(t_tabella='".$tabella."' AND t_colonna='".$colonna."' AND t_riga='".$riga."')"; //$condizioni[] = "(t_tabella='".$tabella."' AND t_colonna='".$colonna."' AND t_riga='".$riga."' AND t_lingua='".$lingua."')"; } $query = "SELECT * FROM ".$_CONFIG["table_suffix"]."traduzioni WHERE (".implode(' OR ', $condizioni).") AND t_lingua='".$lingua."'"; //$query = "SELECT * FROM ".$_CONFIG["table_suffix"]."traduzioni WHERE (".implode(' OR ', $condizioni).")"; //echo $query; $res = $db->query($query); while ($row = $res->fetch(PDO::FETCH_ASSOC)){ //CONCAT_WS('|', t_tabella, t_colonna, t_riga) AS key, t_traduzione //$key = traduzione_crea_key($row['t_tabella'], $row['t_colonna'], $row['t_riga']); $key = 'TRAD|'.$row['t_tabella'].'|'.$row['t_colonna'].'|'.$row['t_riga']; $traduzioni[$key] = str_replace('{LANG}', $_SESSION['lang'], $row["t_traduzione"]); } return $traduzioni; } return $traduzioni; } function traduci_array_placeholders($array, $traduzioni) { if (empty($traduzioni)) return $array; foreach($array as $key => $value) { if (is_array($value)) { $array[$key] = traduci_array_placeholders($value, $traduzioni); } elseif (is_string($value)) { if (isset($traduzioni[$value])) { // echo 'SOSTITUISCO '.$array[$key].' ---> '.$traduzioni[$value]; $array[$key] = $traduzioni[$value]; } } } return $array; } function traduzione_aggiungi($tabella, $colonna, $riga, $testo) { global $_CONFIG, $_TRADUZIONI; $key = $testo; if($_SESSION['lang'] != $_CONFIG['lingua_default']){ $key = 'TRAD|'.$tabella.'|'.$colonna.'|'.$riga; $_TRADUZIONI[$key] = $testo; } return $key; } ?>