0);
$flag_editable = (acces_rubrique($rubrique_article)
OR ($flag_auteur AND ($statut_article == 'prepa' OR $statut_article == 'prop' OR $statut_article == 'poubelle')));
/// En double avec articles_edit.php3, mais necessite le flag_editable
$modif_document = $GLOBALS['modif_document'];
if ($modif_document == 'oui' AND $flag_editable) {
$titre_document = addslashes(corriger_caracteres($titre_document));
$descriptif_document = addslashes(corriger_caracteres($descriptif_document));
$query = "UPDATE spip_documents SET titre=\"$titre_document\", descriptif=\"$descriptif_document\"";
if ($largeur_document AND $hauteur_document) $query .= ", largeur='$largeur_document', hauteur='$hauteur_document'";
$query .= " WHERE id_document=$id_document";
spip_query($query);
}
//
// Appliquer les modifications
//
$suivi_edito = lire_meta("suivi_edito");
$reindexer = false;
$ok_nouveau_statut = false;
function terminer_changement_statut() {
global $ok_nouveau_statut, $statut_nouv, $statut_ancien, $id_article, $reindexer;
if ($ok_nouveau_statut) {
calculer_rubriques();
if ($statut_nouv == 'publie' AND $statut_ancien != $statut_nouv) {
include_ecrire("inc_mail.php3");
envoyer_mail_publication($id_article);
}
if ($statut_nouv == "prop" AND $statut_ancien != $statut_nouv AND $statut_ancien != 'publie') {
include_ecrire("inc_mail.php3");
envoyer_mail_proposition($id_article);
}
if ($statut_nouv == 'publie' AND $statut_nouv != $statut_ancien) $reindexer = true;
}
if ($reindexer AND (lire_meta('activer_moteur') == 'oui')) {
include_ecrire ("inc_index.php3");
indexer_article($id_article);
}
}
if ($statut_nouv) {
if (acces_rubrique($rubrique_article)) $ok_nouveau_statut = true;
else if ($flag_auteur) {
if ($statut_nouv == 'prop' AND $statut_article == 'prepa')
$ok_nouveau_statut = true;
else if ($statut_nouv == 'prepa' AND $statut_article == 'poubelle')
$ok_nouveau_statut = true;
}
if ($ok_nouveau_statut) {
$query = "UPDATE spip_articles SET statut='$statut_nouv' WHERE id_article=$id_article";
$result = spip_query($query);
if ($statut_nouv == 'publie' AND $statut_nouv != $statut_article)
spip_query("UPDATE spip_articles SET date=NOW() WHERE id_article=$id_article");
$statut_ancien = $statut_article; // message pour les traitements de fond (indexation ; envoi mail)
$statut_article = $statut_nouv;
$flag_editable = (acces_rubrique($rubrique_article)
OR ($flag_auteur AND ($statut_article == 'prepa' OR $statut_article == 'prop')));
if ($methode == 'image') {
spip_log ("statut article $id_article : $statut_article");
header ("Content-Type: image/gif");
readfile ("img_pack/puce-".puce_statut($statut_article).".gif");
terminer_changement_statut();
exit;
}
}
}
if ($jour && $flag_editable) {
if ($annee == "0000") $mois = "00";
if ($mois == "00") $jour = "00";
$query = "UPDATE spip_articles SET date='$annee-$mois-$jour' WHERE id_article=$id_article";
$result = spip_query($query);
calculer_rubriques();
}
if ($jour_redac && $flag_editable) {
if ($annee_redac<>'' AND $annee_redac < 1001) $annee_redac += 9000;
if ($mois_redac == "00") $jour_redac = "00";
if ($avec_redac=="non"){
$annee_redac = '0000';
$mois_redac = '00';
$jour_redac = '00';
}
$query = "UPDATE spip_articles SET date_redac='$annee_redac-$mois_redac-$jour_redac' WHERE id_article=$id_article";
$result = spip_query($query);
}
// Appliquer la modification de langue
if (lire_meta('multi_articles') == 'oui' AND $flag_editable) {
$row = spip_fetch_array(spip_query("SELECT lang FROM spip_rubriques WHERE id_rubrique=$rubrique_article"));
$langue_parent = $row['lang'];
if ($changer_lang) {
if ($changer_lang != "herit")
spip_query("UPDATE spip_articles SET lang='".addslashes($changer_lang)."', langue_choisie='oui' WHERE id_article=$id_article");
else
spip_query("UPDATE spip_articles SET lang='".addslashes($langue_parent)."', langue_choisie='non' WHERE id_article=$id_article");
}
}
// Passer les images/docs en "inclus=non"
$query = "SELECT docs.id_document FROM spip_documents AS docs, spip_documents_articles AS lien WHERE lien.id_article=$id_article AND lien.id_document=docs.id_document";
$result = spip_query($query);
while($row=spip_fetch_array($result)){
$ze_doc[]=$row['id_document'];
}
if (count($ze_doc)>0){
$ze_docs = join($ze_doc,",");
spip_query("UPDATE spip_documents SET inclus='non' WHERE id_document IN ($ze_docs)");
}
//
// Reunit les textes decoupes parce que trop longs
//
$nb_texte = 0;
while ($nb_texte ++ < 100){ // 100 pour eviter une improbable boucle infinie
$varname = "texte$nb_texte";
$texte_plus = $$varname; // double $ pour obtenir $texte1, $texte2...
if ($texte_plus){
$texte_plus = ereg_replace("[\n\r]*","\n\n\n",$texte_plus);
$texte_ajout .= " ".$texte_plus;
} else {
break;
}
}
$texte = $texte_ajout . $texte;
//
// Traiter les fins de lignes
//
if ($post_autobr) {
$chapo = post_autobr($chapo);
$texte = post_autobr($texte);
}
// preparer le virtuel
if ($changer_virtuel && $flag_editable) {
$virtuel = eregi_replace("^http://$", "", trim($virtuel));
if ($virtuel) $chapo = addslashes(corriger_caracteres("=$virtuel"));
else $chapo = "";
$query = "UPDATE spip_articles SET chapo='$chapo' WHERE id_article=$id_article";
$result = spip_query($query);
}
if ($titre && !$ajout_forum && $flag_editable) {
$surtitre = addslashes(corriger_caracteres($surtitre));
$titre = addslashes(corriger_caracteres($titre));
$soustitre = addslashes(corriger_caracteres($soustitre));
$descriptif = addslashes(corriger_caracteres($descriptif));
$nom_site = addslashes(corriger_caracteres($nom_site));
$url_site = addslashes(corriger_caracteres($url_site));
$chapo = addslashes(corriger_caracteres($chapo));
$texte = addslashes(corriger_caracteres($texte));
$ps = addslashes(corriger_caracteres($ps));
// recoller les champs du extra
if ($champs_extra) {
include_ecrire("inc_extra.php3");
$add_extra = ", extra = '".addslashes(extra_recup_saisie("articles", $id_secteur))."'";
} else
$add_extra = '';
// Verifier qu'on envoie bien dans une rubrique autorisee
if ($flag_auteur OR acces_rubrique($id_rubrique)) {
$change_rubrique = "id_rubrique=\"$id_rubrique\",";
} else {
$change_rubrique = "";
}
$query = "UPDATE spip_articles SET surtitre=\"$surtitre\", titre=\"$titre\", soustitre=\"$soustitre\", $change_rubrique descriptif=\"$descriptif\", chapo=\"$chapo\", texte=\"$texte\", ps=\"$ps\", url_site=\"$url_site\", nom_site=\"$nom_site\" $add_extra WHERE id_article=$id_article";
$result = spip_query($query);
calculer_rubriques();
if ($statut_article == 'publie') $reindexer = true;
// -- Experimental --
// Stockage des versions
/*if ($articles_versions != 'non') {
include_ecrire("inc_diff.php3");
ajouter_version($id_article, stripslashes($chapo), stripslashes($texte), stripslashes($ps), '');
}*/
// Changer la langue heritee
if ($id_rubrique != $id_rubrique_old) {
$row = spip_fetch_array(spip_query("SELECT lang, langue_choisie FROM spip_articles WHERE id_article=$id_article"));
$langue_old = $row['lang'];
$langue_choisie_old = $row['langue_choisie'];
if ($langue_choisie_old != "oui") {
$row = spip_fetch_array(spip_query("SELECT lang FROM spip_rubriques WHERE id_rubrique=$id_rubrique"));
$langue_new = $row['lang'];
if ($langue_new != $langue_old) spip_query("UPDATE spip_articles SET lang = '$langue_new' WHERE id_article = $id_article");
}
}
// afficher le nouveau titre dans la barre de fenetre
$titre_article = stripslashes($titre);
// marquer l'article (important pour les articles nouvellement crees)
spip_query("UPDATE spip_articles SET date_modif=NOW(), auteur_modif=$connect_id_auteur WHERE id_article=$id_article");
$id_article_bloque = $id_article; // message pour inc_presentation
}
//
// Suivi forums publics
//
// fonction dupliquee dans inc-forum.php3
function get_forums_publics($id_article=0) {
$forums_publics = lire_meta("forums_publics");
if ($id_article) {
$query = "SELECT accepter_forum FROM spip_articles WHERE id_article=$id_article";
$res = spip_query($query);
if ($obj = spip_fetch_object($res))
$forums_publics = $obj->accepter_forum;
} else { // dans ce contexte, inutile
$forums_publics = substr(lire_meta("forums_publics"),0,3);
}
return $forums_publics;
}
//
// Lire l'article
//
$query = "SELECT * FROM spip_articles WHERE id_article='$id_article'";
$result = spip_query($query);
if ($row = spip_fetch_array($result)) {
$id_article = $row["id_article"];
$surtitre = $row["surtitre"];
$titre = $row["titre"];
$soustitre = $row["soustitre"];
$id_rubrique = $row["id_rubrique"];
$descriptif = $row["descriptif"];
$nom_site = $row["nom_site"];
$url_site = $row["url_site"];
$chapo = $row["chapo"];
$texte = $row["texte"];
$ps = $row["ps"];
$date = $row["date"];
$statut_article = $row["statut"];
$maj = $row["maj"];
$date_redac = $row["date_redac"];
$visites = $row["visites"];
$referers = $row["referers"];
$extra = $row["extra"];
$id_trad = $row["id_trad"];
}
// pour l'affichage du virtuel
unset($virtuel);
if (substr($chapo, 0, 1) == '=') {
$virtuel = substr($chapo, 1);
}
if (ereg("([0-9]{4})-([0-9]{2})-([0-9]{2})", $date_redac, $regs)) {
$mois_redac = $regs[2];
$jour_redac = $regs[3];
$annee_redac = $regs[1];
if ($annee_redac > 4000) $annee_redac -= 9000;
}
if (ereg("([0-9]{4})-([0-9]{2})-([0-9]{2})", $date, $regs)) {
$mois = $regs[2];
$jour = $regs[3];
$annee = $regs[1];
}
debut_page("« $titre_article »", "documents", "articles");
debut_grand_cadre();
afficher_parents($id_rubrique);
$parents="~ "._T('lien_racine_site')." ".aide ("rubhier")."
".$parents;
$parents=ereg_replace("~"," ",$parents);
$parents=ereg_replace(" ","",$parents);
echo "$parents";
fin_grand_cadre();
//////////////////////////////////////////////////////
// Affichage de la colonne de gauche
//
debut_gauche();
debut_boite_info();
echo "
"; debut_cadre_relief("forum-interne-24.gif"); $visible = $change_accepter_forum || $change_petition; echo "