//creazione menu dalle pagine dinamiche
$CONF["pagine_dinamiche_menu_from"] = "pagine_dinamiche"; //nome con cui mi riferisco al menu dal mod_menu -> menu_from_vis
$CONF["pagine_dinamiche_def_menu_ref"] = "";
$CONF["pagine_dinamiche_def_pagina_inc"] = "pagine_dinamiche.inc.php";
$CONF["pagine_dinamiche2_where"] = "1=1";
$CONF["pagine_dinamiche2_titolo_html"] = false;//settare solo a sito vuoto, perchè cambia il join ma gli id rimarrebbero gli stessi (per ora viene forzato utf8 nel charset per il menu_txt)
// aggiunto Lorenzo 16-04-2014
// $CONF["tabelle_prefix"] = "";//vedi sotto trigger_error
$CONF["pagine_dinamiche_tabelle_prefix"] = "";//viene usata per pagine/testi/labels
// aggiunto Carlo 6-10-2014
$CONF["pagine_dinamiche_campo_titolo_fisso"] = "";//settare per prendere il titolo da un campo della tabella "pagine" anzichè dalle labels
//?????
function indi_pagina_inc(){
global $DATI;
if($DATI['container']) echo $DATI['container'];
else include($DATI['pagina_inc']);
}
function pagine_dinamiche_menu(){
global $CONF,$LANG;
//ritorna i figli dell'id dato o false se non ce ne sono
if($CONF["tabelle_prefix"]){
$CONF["pagine_dinamiche_tabelle_prefix"] = $CONF["tabelle_prefix"];
trigger_error("parametro che pensavo fosse in disuso il 28/10/2020");
}
if(!$LANG){
trigger_error("Nessuna lingua. \$LANG: ".print_r($LANG, true));
return;
}
$langs = array_keys($LANG);
$lingue_sql = array();
if($CONF["pagine_dinamiche_campo_titolo_fisso"]) $lingue_sql[] = $CONF["pagine_dinamiche_campo_titolo_fisso"];
else foreach($langs as $l) $lingue_sql[] = "lab_menu_txt.$l as menu_txt_$l";
$lang = $langs[0];
//testo per indicizzazione
if($CONF["indi_subversion"] < 3) $testo_indiciz_q = "testo1.$lang as testo_indiciz,";
//tolgo testi x ottimizzare
if($CONF["indi_subversion"] < 6 && !$CONF["pagine_dinamiche_campo_titolo_fisso"]) $testo1_q = "LEFT JOIN ".$CONF["pagine_dinamiche_tabelle_prefix"]."testi as testo1 ON pag.testo1_txt_id = testo1.id";
if($CONF["indi_subversion"] > 6) $container = "pag.container,";
// print "
// select pag.*,
// pag.id as id,
// pag.is_nascosta as menu_pagina_nascosta,
// pag.is_protetta as protetta,
// $testo_indiciz_q
// $container
// ".
// implode(", ", $lingue_sql)
// ."
// FROM ".$CONF["pagine_dinamiche_tabelle_prefix"]."pagine as pag
// LEFT JOIN ".$CONF["pagine_dinamiche_tabelle_prefix"].($CONF["pagine_dinamiche2_titolo_html"]?'testi':'labels')." as lab_menu_txt ON pag.titolo_lbl_id = lab_menu_txt.id
// $testo1_q
// WHERE pag.id != 0
// AND $CONF[pagine_dinamiche2_where]
// order by pag.ord DESC
// ";die;
$res = db_q("
select pag.*,
pag.id as id,
pag.is_nascosta as menu_pagina_nascosta,
pag.is_protetta as protetta,
$testo_indiciz_q
$container
".
implode(", ", $lingue_sql)
."
FROM ".$CONF["pagine_dinamiche_tabelle_prefix"]."pagine as pag
LEFT JOIN ".$CONF["pagine_dinamiche_tabelle_prefix"].($CONF["pagine_dinamiche2_titolo_html"]?'testi':'labels')." as lab_menu_txt ON pag.titolo_lbl_id = lab_menu_txt.id
$testo1_q
WHERE pag.id != 0
AND $CONF[pagine_dinamiche2_where]
order by pag.ord DESC
");//l'order dovrebbe essere inutile perchè poi viene settato il valore ord su $MENU e la mod menu ordina sempre con ord ASC
//CECCA 17/10/2014 tolto AND da sopra vicino a $CONF[pagine_dinamiche_where]
if(db_err()){
$e = "Fallita query lettura pagine dinamiche (database ".$DB["database"]." presente?)";
trigger_error($e);//si potrebbe anche togliere tra un po'...
indiManutenzione($e);
}
if($GLOBALS['MENU']["404"]){
if($CONF['dove_sono'] == 'loc' || !mt_rand(0, 100)){//sempre in locale ogni 100 visite online
if(db_qrs("SELECT `AUTO_INCREMENT` FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '".$GLOBALS['DB']['database']."' AND TABLE_NAME = '".$CONF["pagine_dinamiche_tabelle_prefix"]."pagine';") < 405){
if(db_q("ALTER TABLE ".$CONF["pagine_dinamiche_tabelle_prefix"]."pagine AUTO_INCREMENT = 405;")){
trigger_error("Aggiornato auto_increment di pagine a 405 per evitare conflitti con pagina statica 404");
}
}
else if(db_qrs("select count(*) from ".$CONF["pagine_dinamiche_tabelle_prefix"]."pagine where id = 404")){
trigger_error("Questo sito ha due pagine 404 (statica e dinamica): va rinominata la statica in error_404, vanno controllati eventuali usi (redirect) presenti nel sito e va lanciato un tabellaSitemapAggiorna");
}
}
// if($CONF['dove_sono'] == 'loc'){
// $GLOBALS['MENU']["error_404"] = $GLOBALS['MENU']["404"];
// $GLOBALS['MENU']["error_404"]["xxx"]["pagina_inc"] = "404.inc.php";
// unset($GLOBALS['MENU']["404"]);
// }
}
// $controllaPreconfigurazione = $CONF['dove_sono'] == 'loc' || !mt_rand(0, 100);//faccio il controllo una volta ogni 100 visite per evitare mail bombing
// $controllaPreconfigurazione = true;
if($res) {
while($ROW = mysql_tnx_fetch_array($res)) {
// if($controllaPreconfigurazione && $GLOBALS['MENU'][$ROW["id"]] && !$GLOBALS['MENU'][$ROW["id"]]['preconfigurazione'] && $ROW["id"] != $CONF['pagina_def'] /* la home ha sempre mdesc e mkey */ ) trigger_error("Per la pagina $ROW[id] c'è una preconfigurazione in indi controlla i dati (disattiva segnalazione con \$MENU[$ROW[id]]['preconfigurazione'] = true;) --- ".print_r($GLOBALS['MENU'][$ROW["id"]] , true));
//print $c++;
//cicolo principale per creazione menu
//cicolo le lingue
$LANG2 = $LANG;
while(list($L, $v)=each($LANG2)){
$GLOBALS['MENU'][$ROW["id"]][$L]["menu_txt"] = $ROW[$CONF["pagine_dinamiche_campo_titolo_fisso"]?$CONF["pagine_dinamiche_campo_titolo_fisso"]:"menu_txt_".$L];
if ($GLOBALS['MENU'][$ROW["id"]][$L]["menu_txt"] == "" && $CONF["lingua_fallback"] != "") {
$GLOBALS['MENU'][$ROW["id"]][$L]["menu_txt"] = $ROW[$CONF["pagine_dinamiche_campo_titolo_fisso"]?$CONF["pagine_dinamiche_campo_titolo_fisso"]:"menu_txt_".$CONF["lingua_fallback"]];
}
if($CONF["pagine_dinamiche2_titolo_html"]){
$GLOBALS['MENU'][$ROW["id"]][$L]["menu_html"] = $GLOBALS['MENU'][$ROW["id"]][$L]["menu_txt"];
$GLOBALS['MENU'][$ROW["id"]][$L]["menu_txt"] = str_replace("
perù di intercultura
html_entity_decode(strip_tags($GLOBALS['MENU'][$ROW["id"]][$L]["menu_txt"]), ENT_COMPAT, "utf-8")
);
$GLOBALS['MENU'][$ROW["id"]][$L]["menu_txt"] = preg_replace("/\s+/", " ", $GLOBALS['MENU'][$ROW["id"]][$L]["menu_txt"]);//tolgo doppi spazi
}
if($ROW["rew_alias"] != "") $GLOBALS['MENU'][$ROW["id"]]["xxx"]["rew_alias"] = $ROW["rew_alias"];
if($ROW["rew_alias_".$L] != "") $GLOBALS['MENU'][$ROW["id"]][$L]["rew_alias"] = $ROW["rew_alias_".$L];
if($ROW["key_".$L] != "") $GLOBALS['MENU'][$ROW["id"]][$L]["key"] = $ROW["key_".$L];
if($CONF["indi_subversion"] > 5) {
//if($ROW["menu_alias"] != "") $GLOBALS['MENU'][$ROW["id"]][$L]["menu_alias"] = $ROW["menu_alias"];
//if($GLOBALS['MENU'][$ROW["id"]]["xxx"]["menu_alias"] != "") $GLOBALS['MENU'][$ROW["id"]]["xxx"]["menu_alias"] = $ROW["rew_alias_".$L];
}
}
//from
$GLOBALS['MENU'][$ROW["id"]]["xxx"]["menu_from"] = $CONF["pagine_dinamiche_menu_from"];
$GLOBALS['MENU'][$ROW["id"]]["xxx"]["is_dinamica"] = true;
//alias pagine dinamiche
//indiciz:
if($CONF["indi_subversion"] < 3) $GLOBALS['MENU'][$ROW["id"]]["xxx"]["i_testo_pagina"] = strip_tags(indi_rimuovi_acapo(html_entity_decode($ROW["testo_indiciz"])));
//menu_link
$GLOBALS['MENU'][$ROW["id"]]["xxx"]["menu_link"] = $ROW["menu_link"];
if ($ROW["menu_link_force"] != "") $GLOBALS['MENU'][$ROW["id"]]["xxx"]["menu_link_force"] = $ROW["menu_link_force"];
//parametri aggiunti menu
if ($ROW["menu_link_agg"] != "") $GLOBALS['MENU'][$ROW["id"]]["xxx"]["menu_link_agg"] = $ROW["menu_link_agg"];
if ($ROW["menu_gruppo"] != "") $GLOBALS['MENU'][$ROW["id"]]["xxx"]["menu_gruppo"] = $ROW["menu_gruppo"];
if($CONF["pagine_dinamiche_def_pagina_inc"] != "") $GLOBALS['MENU'][$ROW["id"]]["xxx"]["pagina_inc"] = $CONF["pagine_dinamiche_def_pagina_inc"];
if ($ROW["pagina_inc"] != "") $GLOBALS['MENU'][$ROW["id"]]["xxx"]["pagina_inc"] = $ROW["pagina_inc"];
//deprecato
$GLOBALS['MENU'][$ROW["id"]]["xxx"]["stile_pagina"] = $ROW["stile_pagina"] ? $ROW["stile_pagina"] : str_replace(array(".inc.php", ".php"), "", $GLOBALS['MENU'][$ROW["id"]]["xxx"]["pagina_inc"]);
if ($ROW["container"] != "") $GLOBALS['MENU'][$ROW["id"]]["xxx"]["container"] = $ROW["container"];
//menu ref
if($CONF["pagine_dinamiche_def_menu_ref"] != "") $GLOBALS['MENU'][$ROW["id"]]["xxx"]["menu_ref"] = $CONF["pagine_dinamiche_def_menu_ref"];
//!=0 cosi mette root dopo
if ($ROW["menu_ref"] != "" and $ROW["menu_ref"] != 0) $GLOBALS['MENU'][$ROW["id"]]["xxx"]["menu_ref"] = $ROW["menu_ref"];
//template ???
if($ROW["template"] != "") $GLOBALS['MENU'][$ROW["id"]]["xxx"]["template"] = $ROW["template"];
//ordine
if($ROW["ord"] != "" && !isset($GLOBALS['MENU'][$ROW["id"]]['xxx']["ord"])) $GLOBALS['MENU'][$ROW["id"]]["xxx"]["ord"] = $ROW["ord"];
// if($ROW["ord"] != "") echo '