/*################################ SAIBAL NEWS 2 ###############################
Script creato da saibal [http://www.lorenzone.it / saibal@lorenzone.it]
Prima versione iniziata nell'Ottobre del 2003
Questo script è la mia opera maestra. Speriamo solo valga la pena distribuirlo
Lo dedico a tutti quanti mi hanno aiutato fino ad oggi
Baci ai pupi
Saibal alias Lorenzo
###############################################################################*/
include("./_admin/config.inc.php");
if (empty($_GET["idart"])) {
header("Location: error.php?error=no_idart");
exit();
}
//seleziono i settings
$query_setting = @mysql_query("SELECT * FROM $tab_settings",$db_accesso);
//uso extract per abbreviare la cosa
@extract(mysql_fetch_assoc($query_setting));
//query per selezionare il record
$query_art = @mysql_query(" SELECT COUNT($tab_art_pag.idart) AS totale_pagine, $tab_voto.votodown,
$tab_voto.votoup, $tab_voto.votoup + $tab_voto.votodown AS totale_voti,
$tab_art.*, $tab_art_pag.*, $tab_cat.cat_nome, $tab_cat.subcat,
$tab_user.username AS autore, $tab_user.email AS autore_email, $tab_user.public_email
FROM $tab_voto RIGHT JOIN $tab_art ON $tab_voto.idart = $tab_art.idart
INNER JOIN $tab_art_pag ON $tab_art.idart = $tab_art_pag.idart
INNER JOIN $tab_cat ON $tab_art_pag.idcat = $tab_cat.idcat
LEFT JOIN $tab_user ON $tab_art.art_poster = $tab_user.iduser
WHERE $tab_art.idart = '$_GET[idart]' AND $tab_art.art_mostra = 'y'
AND $tab_art.art_datauscita <= '$now' AND $tab_cat.cat_mostra = 'y'
AND $tab_cat.cat_datacrea <= '$now'
GROUP BY $tab_art_pag.idart_pag HAVING totale_pagine > 0
ORDER BY $tab_art_pag.art_pagina");
$pagine = mysql_num_rows($query_art);
$array = mysql_fetch_assoc($query_art);
//controllo veloce
if (empty($array["idart"])) {
header("Location: error.php?error=no_art");
exit();
}
//aggiorno le stampe
@mysql_query("UPDATE $tab_art SET art_stampa = art_stampa + 1 WHERE idart = '$array[idart]'");
//codice per vedere se la categoria di appartenenza della subcat è visibile o no
if ($array["subcat"] != 0) {
$query_catmadre = @mysql_query("SELECT cat_datacrea, cat_mostra FROM $tab_cat WHERE idcat = '$array[subcat]'");
@extract(mysql_fetch_assoc($query_catmadre));
if ($cat_datacrea > $now || $cat_mostra == "n") {
header("Location: error.php?error=no_art");
exit();
}
}
//dichiaro un po' di variabili che mi serviranno se non c'è il corrispettivo valore
$sottotitolo = "
";
$poster = "";
$voti_stat = "";
$download_stat = "";
$mostra_logo = "";
$div_interruzione = "";
$resources = "";
//indice per la paginazione (mi serve nel ciclo while in fondo)
$ind = 1;
#============ LAVORO SULLE VARIABILI =============#
//formatto i campi
$array["art_titolo"] = formatta($array["art_titolo"],"n");
$array["cat_nome"] = formatta($array["cat_nome"],"n");
$array["art_sottotitolo"] = formatta(vbparse_print($array["art_sottotitolo"],$array["art_html"]));
$titolo_art_header = formatta_header($array["art_titolo"]);
$data = formatta_data_ora($array["art_datauscita"], $data_type);
$visite =& $array["art_visite"];
$stampa =& $array["art_stampa"];
//adesso vedo se selezionare il logo
if (trim($array["art_immagine"]) != "") {
$query_logo = @mysql_query("SELECT idlogo, logo_width, logo_height
FROM $tab_loghi
WHERE logo_nome = '$array[art_immagine]'");
$array_logo = mysql_fetch_assoc($query_logo);
if (isset($array_logo["idlogo"])) {
$mostra_logo = "";
}
}
//adesso vedo se includere i download
if ($permit_download == "y") {
$download_stat = "| Download: $array[art_download]";
}
//adesso vedo se includere i voti
if ($permit_vote == "y") {
//controllo sul voto
if ($array["totale_voti"] == 0) {
$perc_up = 0;
} else {
$perc_up = $array["votoup"] / $array["totale_voti"] * 100;
$perc_up = floor($perc_up);
}
$voti_stat = "| Voti: $perc_up% ($array[totale_voti] tot.)";
}
//adesso vedo se mostrare l'autore dell'articolo
if ($view_poster == "y") {
// se trovo almeno un risultato
if (!empty($array["autore"])) {
if ($array["public_email"] == "y") {
//encodo l'email
$email = mail_encode($array["autore_email"]);
$poster = WRITE_BY." $array[autore] [$email]";
} else {
$poster = WRITE_BY." $array[autore]";
}
} else {
$poster = WRITE_BY." ".DEFAULT_WRITER."";
}
}
//adesso vedo se c'è il sottotitolo
if (trim($array["art_sottotitolo"]) != "") {
ob_start();
$sottotitolo = eval("printtemp(\"".gettemp("$pub_tempdir/div_sottotitolo_print.php")."\");");
$sottotitolo = ob_get_contents();
ob_end_clean();
}
# ================================================ #
# === adesso vedo se ci sono risorse correlate === #
# ================================================ #
//SE NON CI SONO ART CORRELATI MA CI SONO LINK UTILI
if (trim($array["art_correlati"]) == "" && trim($array["art_linkutili"]) != "") {
ob_start();
$resources .= eval("printtemp(\"".gettemp("$pub_tempdir/div_risorse_print_start.php")."\");");
//esplodo i link utili
$link_uti = explode("*",$array["art_linkutili"]);
//per ogni link li stampo
foreach ($link_uti as $link) {
if (strstr($link,"http://")) {
$link = preg_replace(
"/(\[)(url)(=)(['\"]?)((http|ftp|https):\/\/)([^\"']*)(\\4])(.*)(\[\/url\])/siU", "\\9 [ \\5\\7 ]",$link);
$resources .= eval("printtemp(\"".gettemp("$pub_tempdir/div_linkutili_printzip.php")."\");");
}
} //fine foreach
$resources .= eval("printtemp(\"".gettemp("$pub_tempdir/div_risorse_printzip_end.php")."\");");
$resources .= ob_get_contents();
ob_end_clean();
//SE CI SONO ART CORRELATI MA NON LINK UTILI
} elseif (trim($array["art_correlati"]) != "" && trim($array["art_linkutili"]) == "") {
//levo l'ultima virgola che altrimenti mi dà problemi
$idart_corr = substr($array["art_correlati"],0,-1);
//preparo la variabile degli id delle categorie utili
$catutili = 0;
//seleziono le categorie che sono valide... in questo caso mi sarebbe piaciuto sfruttare le subquery...
$query_catutili = @mysql_query("SELECT idcat
FROM $tab_cat
WHERE cat_mostra = 'y' AND cat_datacrea <= '$now' AND subcat = '0'");
while ($array_catutili = mysql_fetch_assoc($query_catutili)) {
$catutili .= ",".$array_catutili["idcat"];
}
//query dinamica
$query_corr = @mysql_query (" SELECT $tab_art.idart, $tab_art.art_titolo, $tab_art.art_sottotitolo,
$tab_art.art_datauscita, COUNT($tab_art_pag.idart_pag) AS totale_pagine
FROM $tab_art LEFT JOIN $tab_art_pag ON $tab_art.idart = $tab_art_pag.idart
LEFT JOIN $tab_cat ON $tab_art.idcat = $tab_cat.idcat
WHERE $tab_art.idart IN($idart_corr) AND $tab_cat.cat_mostra = 'y'
AND $tab_cat.cat_datacrea <= '$now' AND $tab_art.art_mostra = 'y'
AND $tab_art.art_datauscita <= '$now'
AND ($tab_cat.idcat IN($catutili) OR $tab_cat.subcat IN($catutili))
GROUP BY $tab_art.idart HAVING totale_pagine > '0'
ORDER BY $tab_art.art_datauscita DESC");
$result_corr = mysql_num_rows($query_corr);
if ($result_corr != 0) {
ob_start();
$resources .= eval("printtemp(\"".gettemp("$pub_tempdir/div_risorse_print_start.php")."\");");
while ($array_corr = mysql_fetch_assoc($query_corr)) {
foreach ($array_corr AS $key => $value) {
$array_corr[$key] = formatta($array_corr[$key],"n");
$link = "$array_corr[art_titolo] [ $url_sito/viewart.php?idart=$array_corr[idart] ]";
}
$resources .= eval("printtemp(\"".gettemp("$pub_tempdir/div_correlati_printzip.php")."\");");
} //fine while
$resources .= eval("printtemp(\"".gettemp("$pub_tempdir/div_risorse_printzip_end.php")."\");");
$resources .= ob_get_contents();
ob_end_clean();
}
//SE CI SONO ART CORRELATI E CI SONO LINK UTILI
} elseif (trim($array["art_correlati"]) != "" && trim($array["art_linkutili"]) != "") {
ob_start();
$resources .= eval("printtemp(\"".gettemp("$pub_tempdir/div_risorse_print_start.php")."\");");
//levo l'ultima virgola che altrimenti mi dà problemi
$idart_corr = substr($array["art_correlati"],0,-1);
//preparo la variabile degli id delle categorie utili
$catutili = 0;
//seleziono le categorie che sono valide... in questo caso mi sarebbe piaciuto sfruttare le subquery...
$query_catutili = @mysql_query("SELECT idcat
FROM $tab_cat
WHERE cat_mostra = 'y' AND cat_datacrea <= '$now' AND subcat = '0'");
while ($array_catutili = mysql_fetch_assoc($query_catutili)) {
$catutili .= ",".$array_catutili["idcat"];
}
//query dinamica
$query_corr = @mysql_query (" SELECT $tab_art.idart, $tab_art.art_titolo, $tab_art.art_sottotitolo,
$tab_art.art_datauscita, COUNT($tab_art_pag.idart_pag) AS totale_pagine
FROM $tab_art LEFT JOIN $tab_art_pag ON $tab_art.idart = $tab_art_pag.idart
LEFT JOIN $tab_cat ON $tab_art.idcat = $tab_cat.idcat
WHERE $tab_art.idart IN($idart_corr) AND $tab_cat.cat_mostra = 'y'
AND $tab_cat.cat_datacrea <= '$now' AND $tab_art.art_mostra = 'y'
AND $tab_art.art_datauscita <= '$now'
AND ($tab_cat.idcat IN($catutili) OR $tab_cat.subcat IN($catutili))
GROUP BY $tab_art.idart HAVING totale_pagine > '0'
ORDER BY $tab_art.art_datauscita DESC");
$result_corr = mysql_num_rows($query_corr);
if ($result_corr != 0) {
while ($array_corr = mysql_fetch_assoc($query_corr)) {
foreach ($array_corr AS $key => $value) {
$array_corr[$key] = formatta($array_corr[$key],"n");
$link = "$array_corr[art_titolo] [ $url_sito/viewart.php?idart=$array_corr[idart] ]";
}
$resources .= eval("printtemp(\"".gettemp("$pub_tempdir/div_correlati_printzip.php")."\");");
} //fine while
} //fine $result_corr
//esplodo i link utili
$link_uti = explode("*",$array["art_linkutili"]);
//per ogni link li stampo
foreach ($link_uti as $link) {
if (strstr($link,"http://")) {
$link = preg_replace(
"/(\[)(url)(=)(['\"]?)((http|ftp|https):\/\/)([^\"']*)(\\4])(.*)(\[\/url\])/siU", "\\9 [ \\5\\7 ]",$link);
$resources .= eval("printtemp(\"".gettemp("$pub_tempdir/div_linkutili_printzip.php")."\");");
}
} //fine foreach
$resources .= eval("printtemp(\"".gettemp("$pub_tempdir/div_risorse_printzip_end.php")."\");");
$resources .= ob_get_contents();
ob_end_clean();
}
#============ FINE LAVORO SULLE VARIABILI ========#
//parte iniziale dell'articolo
eval("printtemp(\"".gettemp("$pub_tempdir/div_printart_start.php")."\");");
//se c'è più di una pagina faccio il ciclo..altrimenti no
if ($pagine > 1) {
//riavvolgo l'array per la parte centrale
@mysql_data_seek($query_art,0);
while ($array = mysql_fetch_assoc($query_art)) {
//formatto il corpo
$array["art_corpo"] = formatta(vbparse_print($array["art_corpo"],$array["art_html"]));
//inserisco l'interruzione di stampa solo se non è l'ultima pagina
$interruzione_stampa = ($ind != $pagine) ? "page-break-after:always;" : "";
//div di interruzione stampa
$div_interruzione = <<< STAMPA