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 "
\n"; if ($statut_article == "publie") { $post_dates = lire_meta("post_dates"); $voir_en_ligne = true; if ($post_dates == "non") { $query = "SELECT id_article FROM spip_articles WHERE id_article=$id_article AND date<=NOW()"; $result = spip_query($query); if (!spip_num_rows($result)) { $voir_en_ligne = false; } } } echo ""._T('info_numero_article')."\n"; echo "
$id_article\n"; if ($voir_en_ligne) { icone_horizontale(_T('icone_voir_en_ligne'), "../spip_redirect.php3?id_article=$id_article&recalcul=oui", "racine-24.gif", "rien.gif"); } if ($connect_statut=='0minirezo' AND acces_rubrique($id_rubrique)) { $query = "SELECT count(*) AS count FROM spip_forum WHERE id_article=$id_article AND statut IN ('publie', 'off', 'prop')"; if ($row = spip_fetch_array(spip_query($query))) { $nb_forums = $row['count']; if ($nb_forums) { icone_horizontale(_T('icone_suivi_forum', array('nb_forums' => $nb_forums)), "articles_forum.php3?id_article=$id_article", "suivi-forum-24.gif", ""); } } } $activer_statistiques = lire_meta("activer_statistiques"); if ($connect_statut == "0minirezo" AND $statut_article == 'publie' AND $visites > 0 AND $activer_statistiques != "non" AND $options == "avancees"){ icone_horizontale(_T('icone_evolution_visites', array('visites' => $visites)), "statistiques_visites.php3?id_article=$id_article", "statistiques-24.gif","rien.gif"); } echo "
\n"; fin_boite_info(); // Logos de l'article $arton = "arton$id_article"; $artoff = "artoff$id_article"; if ($id_article>0 AND $flag_editable) afficher_boite_logo($arton, $artoff, _T('logo_article').aide ("logoart"), _T('logo_survol')); // // Boites de configuration avancee // if ($options == "avancees" && $connect_statut=='0minirezo' && $flag_editable) { echo "

"; debut_cadre_relief("forum-interne-24.gif"); $visible = $change_accepter_forum || $change_petition; echo "

"; if ($visible) echo bouton_block_visible("forumpetition"); else echo bouton_block_invisible("forumpetition"); echo _T('bouton_forum_petition'); echo "
"; if ($visible) echo debut_block_visible("forumpetition"); else echo debut_block_invisible("forumpetition"); echo "\n"; // Forums et petitions $forums_publics = get_forums_publics($id_article); if ($change_accepter_forum) { $query_forum = "UPDATE spip_articles SET accepter_forum='$change_accepter_forum' WHERE id_article='$id_article'"; $result_forum = spip_query($query_forum); $forums_publics = $change_accepter_forum; if ($change_accepter_forum == 'abo') { ecrire_meta('accepter_visiteurs', 'oui'); ecrire_metas(); } } echo "\n
"; echo "\n"; echo "
"._T('info_fonctionnement_forum')."\n"; if ($forums_publics == "pos") { echo "
"; echo ""; } else { echo "
"; echo ""; } if ($forums_publics == "pri") { echo "
"; echo ""; } else { echo "
"; echo ""; } if ($forums_publics == "abo") { echo "
"; echo ""; } else { echo "
"; echo ""; } if ($forums_publics == "non") { echo "
"; echo ""; } else { echo "
"; echo ""; } echo "
\n"; echo "
"; echo "
"; // Petitions if ($change_petition) { if ($change_petition == "on") { if (!$email_unique) $email_unique = "non"; if (!$site_obli) $site_obli = "non"; if (!$site_unique) $site_unique = "non"; if (!$message) $message = "non"; $texte_petition = addslashes($texte_petition); $query_pet = "REPLACE spip_petitions (id_article, email_unique, site_obli, site_unique, message, texte) ". "VALUES ($id_article, '$email_unique', '$site_obli', '$site_unique', '$message', '$texte_petition')"; $result_pet = spip_query($query_pet); } else if ($change_petition == "off") { $query_pet = "DELETE FROM spip_petitions WHERE id_article=$id_article"; $result_pet = spip_query($query_pet); } } $query_petition = "SELECT * FROM spip_petitions WHERE id_article=$id_article"; $result_petition = spip_query($query_petition); $petition = (spip_num_rows($result_petition) > 0); while ($row = spip_fetch_array($result_petition)) { $id_rubrique=$row["id_article"]; $email_unique=$row["email_unique"]; $site_obli=$row["site_obli"]; $site_unique=$row["site_unique"]; $message=$row["message"]; $texte_petition=$row["texte"]; } echo "\n
"; echo "\n"; if ($petition){ echo ""; echo ""; $query_signatures = "SELECT COUNT(*) AS nb FROM spip_signatures WHERE id_article=$id_article"; $result = spip_fetch_array(spip_query($query_signatures)); if ($result['nb'] > 0) { echo "

".$result['nb']." "._T('info_signatures')."\n"; } echo "

"; if ($email_unique=="oui") echo ""; else echo ""; echo "
"; if ($site_obli=="oui") echo ""; else echo ""; echo "
"; if ($site_unique=="oui") echo ""; else echo ""; echo "
"; if ($message=="oui") echo ""; else echo ""; echo " "; echo "

"._T('texte_descriptif_petition')." :
"; echo "

\n"; } else { echo ""; echo ""; } if (!$petition){ echo "
"; echo ""; }else{ echo "
"; echo ""; } echo "

"; echo "

"; echo "
"; echo fin_block(); fin_cadre_relief(); echo "
"; // Redirection (article virtuel) debut_cadre_relief("site-24.gif"); $visible = ($changer_virtuel || $virtuel); echo "
"; if ($visible) echo bouton_block_visible("redirection"); else echo bouton_block_invisible("redirection"); echo _T('bouton_redirection'); echo aide ("artvirt"); echo "
"; if ($visible) echo debut_block_visible("redirection"); else echo debut_block_invisible("redirection"); echo "
"; echo "\n"; echo "\n"; $virtuelhttp = ($virtuel ? "" : "http://"); echo "
"; echo ""; echo "("._T('texte_article_virtuel')." : "._T('texte_reference_mais_redirige').")"; echo ""; echo "
"; echo "
"; echo fin_block(); fin_cadre_relief(); } // // Articles dans la meme rubrique // $vos_articles = spip_query("SELECT articles.id_article, articles.titre, articles.statut FROM spip_articles AS articles WHERE articles.id_rubrique='$id_rubrique' AND (articles.statut = 'publie' OR articles.statut = 'prop') AND articles.id_article != '$id_article' ". " ORDER BY articles.date DESC LIMIT 0,30"); if (spip_num_rows($vos_articles) > 0) { echo "
 
"; echo "
"; bandeau_titre_boite2(_T('info_meme_rubrique'), "article-24.gif"); echo "
"; while($row = spip_fetch_array($vos_articles)) { $ze_article = $row['id_article']; $ze_titre = typo($row['titre']); $ze_statut = $row['statut']; if ($options == "avancees") { $numero = "
"._T('info_numero_abbreviation')."$ze_article
"; } echo "$numero$ze_titre"; } echo "
"; echo "
"; } ////////////////////////////////////////////////////// // Affichage de la colonne de droite // debut_droite(); changer_typo('','article'.$id_article); // qu'est-ce que c'est que ces choses ?? function mySel($varaut,$variable){ $retour= " VALUE=\"$varaut\""; if ($variable==$varaut){ $retour.= " SELECTED"; } return $retour; } function my_sel($num,$tex,$comp){ if ($num==$comp){ echo "