<?php

##############################################################################
# news_update.php3                                                           #
#                                                                            #
# Copyright ViralGames SARL 2000                                             #
##############################################################################

include("../config.php3");
include($BIB."bib_generic.php3");

$MAJ_NEWS = $ADMIN_URL . "news_update.php3";

####################
# Administration script defaults
####################
# pas de timeout possible qql soit l'action effectuée
set_time_limit($TIME_LIMIT);

# le script continue une fois qu'il est lancé qql soit l'état de la connection après
ignore_user_abort(true); 
?>
<html>
<head></head>
<link rel="stylesheet" href="admin.css">
<body rightmargin=0>
<div align=center class=trTitle>Mise à jour de la Gazette</div>
<br>
<?php
####################
# Start functions
####################
#maj de la table News
function maj_table_news($news_file,$date,$newsId){
    $exists = true;
        
    if (!file_exists($news_file)){
	main_db_query("INSERT INTO News (Date,File) VALUES ('$date','$news_file')");
	$exists = false;
    }
    echo "fin de la mise à jour de News<br>";
}

#copie le fichier passé en paramètres dans le répertoire approprié
function create_gazette($filename,$newlast)
{
    global $ARCHIVES_DIR, $FIC_STATS;

    $news = db_fetch_array(main_db_query("SELECT * FROM News ORDER BY Id DESC"));
    if (!$news) {
	if ($newlast=="l")  # correction de la dernière gazette mais pas de gazette ds la table
	    die("ERREUR : Vous tentez de corriger une gazette alors qu'il n'y en a aucune!<br>");
    }
    if ($news) {
	$newsId = $news[Id];
    }
    if ($newlast=="n"){  #nouv gazette
	$now = my_local_time();
	$nouv_nom = $ARCHIVES_DIR.date("ymd",$now)."news.html";
	$newsId = ($news ? $newsId + 1 : 1);
	if (file_exists($nouv_nom)) # attention au pb de decalage horaire...
	    die("ERREUR : Vous tentez de créer une nouvelle gazette alors qu'il y en a déjà une à la date d'aujourd'hui!<br>");
    } else {  # correction de la dernière gazette
	$tmps = explode("-",$news[Date]);
	$now = mktime(0,0,0,$tmps[1],$tmps[2],$tmps[0]);
    }
    $nouv_nom = $ARCHIVES_DIR.date("ymd",$now)."news.html";
    $d = date("Y-m-d",$now); 
    maj_table_news($nouv_nom,$d,$newsId);

    #copie du texte de la gazette
    if (file_exists($nouv_nom))
	chmod($nouv_nom,0600);
    if (copy($filename,$nouv_nom)){
	chmod($nouv_nom,0400); #petite option de securite
	
	#copie du fichier de stats
	$num = db_fetch_array(main_db_query("SELECT Max(Id) AS max FROM News"));
	$fic = $FIC_STATS.".$num[max]";
	if (file_exists($fic)){
	    chmod($fic,0606);
	    if (!unlink($fic))
		echo "Impossible de détruire le fichier : $fic<br>";
	}
	if (copy($FIC_STATS,$fic))
	    echo "fin d'écriture du fichier de stats $nouv_nom<br>";
	else die("Erreur d'écriture du fichier de stats $FIC_STATS dans $fic !!<br>");
    } else die("Erreur d'écriture du fichier de gazette $nouv_nom!!<br>");
}
####################
# End function
####################

if ($rappel==""){
    $j = 0;
    $form_action = $MAJ_NEWS;
?>
   <form name="conf" method="post" action="<?php echo $form_action ?>">

    <input type=hidden name=rappel value=2>
    <input type=radio name=new_last value=n checked>
	Publier une nouvelle gazette
<br><br>
	<input type=radio name=new_last value=l>
	Ecraser la gazette actuelle<br><br>
    <input type=hidden name=yesno value=o>
    <input type=submit></form><br>
<?php
}

if ($yesno=="o"){
    if ($new_last=="l")
	echo "<b><font color=red>Vous voulez regénérer le dernier fichier de news !!</font></b><br>";
    $form_action = $MAJ_NEWS;
?>
<form method="post" ENCTYPE="multipart/form-data" action="<?php echo $form_action ?>" name="choix_fic">
<input type="hidden" name="rappel" value="3">
<input type="hidden" name="new_last" value="<?php echo $new_last ?>">
Fichier Gazette à publier :<br><input type="file" name="fichier_html" size="50"><br><br>
<input type="submit">
</form>

<?php
} # if yesno
	
if ($rappel==3){
    if ($fichier_html!=""){ 
	create_gazette($fichier_html,$new_last);
	echo "<br><br>Le fichier de News a été généré<br><a href=$NEWS_PAGE>Cliquez ici pour le voir</a>";
    } else echo "Vous n'avez pas spécifié de fichier à transmettre!!";
}
?>
</body>
</html>
