0); $flag_editable = (acces_rubrique($rubrique_article) OR ($flag_auteur AND ($statut_article == 'prepa' OR $statut_article == 'prop' OR $statut_article == 'poubelle'))); // // Appliquer les modifications // $suivi_edito = lire_meta("suivi_edito"); $ok_nouveau_statut = false; 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'))); } } // 'publie' => reindexer if ($ok_nouveau_statut AND $statut_nouv == 'publie' AND $statut_nouv != $statut_ancien AND (lire_meta('activer_moteur') == 'oui')) { include_ecrire ("inc_index.php3"); marquer_indexer('article', $id_article); } // 'dˇpublie' => invalider les caches if ($ok_nouveau_statut AND $statut_ancien == 'publie' AND $statut_nouv != $statut_ancien AND $invalider_caches) { include_ecrire ("inc_invalideur.php3"); suivre_invalideur("id='id_article/$id_article'"); } if ($jour && $flag_editable) { $date = format_mysql_date($annee, $mois, $jour, $heure, $minute); spip_query("UPDATE spip_articles SET date='$date' WHERE id_article=$id_article"); calculer_rubriques(); } if ($jour_redac && $flag_editable) { if ($annee_redac<>'' AND $annee_redac < 1001) $annee_redac += 9000; if ($avec_redac == 'non') $date_redac = format_mysql_date(); else $date_redac = format_mysql_date( $annee_redac, $mois_redac, $jour_redac, $heure_redac, $minute_redac); spip_query("UPDATE spip_articles SET date_redac='$date_redac' WHERE id_article=$id_article"); } // 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=" . intval($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)"); } # modifs de la description d'un des docs joints if ($flag_editable) maj_documents($id_article, 'article'); // // 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]*","",$texte_plus); $texte_ajout .= $texte_plus; } else { break; } } $texte = $texte_ajout . $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) { $champs = array('surtitre', 'titre', 'soustitre', 'descriptif', 'nom_site', 'url_site', 'chapo', 'texte', 'ps'); $champs_version = array(); foreach ($champs as $nom_champ) { $t = $champs_versions[$nom_champ] = corriger_caracteres($$nom_champ); $$nom_champ = addslashes($t); } // 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 ($id_rubrique>0 AND ($flag_auteur OR acces_rubrique($id_rubrique))) { $change_rubrique = "id_rubrique=$id_rubrique,"; } else { $change_rubrique = ""; } // Stockage des versions : creer une premier version si non-existante if ($articles_versions) { include("lab_revisions.php"); if ($new != 'oui') { $query = "SELECT id_article FROM spip_versions WHERE id_article=$id_article LIMIT 0,1"; if (!spip_num_rows(spip_query($query))) { spip_log("version initiale de l'article $id_article"); $select = join(", ", $champs); $query = "SELECT $select FROM spip_articles WHERE id_article=$id_article"; $champs_originaux = spip_fetch_array(spip_query($query)); $id_version = ajouter_version($id_article, $champs_originaux, _T('version_initiale')); // Remettre une date un peu ancienne pour la version initiale if ($id_version == 1) // test inutile ? spip_query("UPDATE spip_versions SET date=DATE_SUB(NOW(), INTERVAL 2 HOUR) WHERE id_article=$id_article AND id_version=1"); } } } $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(); // invalider et reindexer if ($statut_article == 'publie') { if ($invalider_caches) { include_ecrire ("inc_invalideur.php3"); suivre_invalideur("id='id_article/$id_article'"); } if (lire_meta('activer_moteur') == 'oui') { include_ecrire ("inc_index.php3"); marquer_indexer('article', $id_article); } } // Stockage des versions if ($articles_versions) { ajouter_version($id_article, $champs_versions); } // 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 } // // 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"]; $id_version = $row["id_version"]; } // 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}) ([0-9]{2}):([0-9]{2})", $date_redac, $regs)) { $annee_redac = $regs[1]; $mois_redac = $regs[2]; $jour_redac = $regs[3]; $heure_redac = $regs[4]; $minute_redac = $regs[5]; if ($annee_redac > 4000) $annee_redac -= 9000; } if (ereg("([0-9]{4})-([0-9]{2})-([0-9]{2}) ([0-9]{2}):([0-9]{2})", $date, $regs)) { $annee = $regs[1]; $mois = $regs[2]; $jour = $regs[3]; $heure = $regs[4]; $minute = $regs[5]; } debut_page("« $titre_article »", "documents", "articles"); debut_grand_cadre(); afficher_hierarchie($id_rubrique); fin_grand_cadre(); ////////////////////////////////////////////////////// // Affichage de la colonne de gauche // debut_gauche(); debut_boite_info(); echo "
"; debut_cadre_relief("forum-interne-24.gif"); list($nb_forums) = spip_fetch_array(spip_query( "SELECT count(*) AS count FROM spip_forum WHERE id_article=$id_article AND statut IN ('publie', 'off', 'prop')")); list($nb_signatures) = spip_fetch_array(spip_query( "SELECT COUNT(*) AS count FROM spip_signatures WHERE id_article=$id_article AND statut IN ('publie', 'poubelle')")); $visible = $change_accepter_forum || $change_petition || $nb_forums || $nb_signatures; echo "
";
if ($surtitre) {
echo "";
echo typo($surtitre);
echo "\n";
}
gros_titre($titre, $logo_statut);
if ($soustitre) {
echo "";
echo typo($soustitre);
echo "\n";
}
if ($descriptif OR $url_site OR $nom_site) {
echo " ";
echo "";
$texte_case = ($descriptif) ? "{{"._T('info_descriptif')."}} $descriptif\n\n" : '';
$texte_case .= ($nom_site.$url_site) ? "{{"._T('info_urlref')."}} [".$nom_site."->".$url_site."]" : '';
echo propre($texte_case);
echo "";
echo " ";
}
if ($statut_article == 'prop') {
echo ""._T('text_article_propose_publication')." "; } echo " | ";
if ($flag_editable) {
echo "". http_img_pack('rien.gif', " ", "width='5'") . " | \n"; echo ""; $flag_modif = false; // Recuperer les donnees de l'article if (lire_meta('articles_modif') != 'non') { $query = "SELECT auteur_modif, UNIX_TIMESTAMP(date_modif) AS modification, UNIX_TIMESTAMP(NOW()) AS maintenant FROM spip_articles WHERE id_article='$id_article'"; $result = spip_query($query); if ($row = spip_fetch_array($result)) { $auteur_modif = $row["auteur_modif"]; $modification = $row["modification"]; $maintenant = $row["maintenant"]; $date_diff = floor(($maintenant - $modification)/60); if ($date_diff >= 0 AND $date_diff < 60 AND $auteur_modif > 0 AND $auteur_modif != $connect_id_auteur) { $flag_modif = true; $query_auteur = "SELECT nom FROM spip_auteurs WHERE id_auteur='$auteur_modif'"; $result_auteur = spip_query($query_auteur); if ($row_auteur = spip_fetch_array($result_auteur)) { $nom_auteur_modif = typo($row_auteur["nom"]); } } } } if ($flag_modif) { icone(_T('icone_modifier_article'), "articles_edit.php3?id_article=$id_article", "article-24.gif", "edit.gif"); echo ""._T('avis_article_modifie', array('nom_auteur_modif' => $nom_auteur_modif, 'date_diff' => $date_diff)).""; echo aide("artmodif"); } else { icone(_T('icone_modifier_article'), "articles_edit.php3?id_article=$id_article", "article-24.gif", "edit.gif"); } echo " | "; } echo "
";
$query = "SELECT id_auteur, nom FROM spip_auteurs";
$result = spip_query($query);
unset($table_auteurs);
unset($table_ids);
while ($row = spip_fetch_array($result)) {
$table_auteurs[] = $row["nom"];
$table_ids[] = $row["id_auteur"];
}
$resultat = mots_ressemblants($cherche_auteur, $table_auteurs, $table_ids);
debut_boite_info();
if (!$resultat) {
echo ""._T('texte_aucun_resultat_auteur', array('cherche_auteur' => $cherche_auteur)).".
";
}
else if (count($resultat) == 1) {
$ajout_auteur = 'oui';
list(, $nouv_auteur) = each($resultat);
echo ""._T('texte_ajout_auteur')."
";
$query = "SELECT * FROM spip_auteurs WHERE id_auteur=$nouv_auteur";
$result = spip_query($query);
echo "
"; } // // Appliquer les modifications sur les auteurs // if ($ajout_auteur && $flag_editable) { if ($nouv_auteur > 0) { $query="DELETE FROM spip_auteurs_articles WHERE id_auteur='$nouv_auteur' AND id_article='$id_article'"; $result=spip_query($query); $query="INSERT INTO spip_auteurs_articles (id_auteur,id_article) VALUES ('$nouv_auteur','$id_article')"; $result=spip_query($query); } if (lire_meta('activer_moteur') == 'oui') { include_ecrire ("inc_index.php3"); marquer_indexer('article', $id_article); } } if ($supp_auteur && $flag_editable) { $query="DELETE FROM spip_auteurs_articles WHERE id_auteur='$supp_auteur' AND id_article='$id_article'"; $result=spip_query($query); if (lire_meta('activer_moteur') == 'oui') { include_ecrire ("inc_index.php3"); marquer_indexer('article', $id_article); } } // // Afficher les auteurs // unset($les_auteurs); $query = "SELECT * FROM spip_auteurs AS auteurs, spip_auteurs_articles AS lien ". "WHERE auteurs.id_auteur=lien.id_auteur AND lien.id_article=$id_article ". "GROUP BY auteurs.id_auteur ORDER BY auteurs.nom"; $result = spip_query($query); if (spip_num_rows($result)) { echo "
"; $retour = urlencode($clean_link->getUrl()); icone_horizontale(_T('icone_creer_auteur'), "auteur_infos.php3?new=oui&ajouter_id_article=$id_article&redirect=$retour", "redacteurs-24.gif", "creer.gif"); echo " | "; echo ""; } echo " | "; if (spip_num_rows($result) > 0) { echo ""; } echo " |
"._T('trad_article_traduction')." |
"; $lien = $GLOBALS['clean_link']; $lien->delVar($nom_select); $lien = $lien->getUrl(); echo ""; echo " | \n"; echo ""; echo " | ". http_img_pack('rien.gif', " ", "width='2' height='2'") . " | "; echo ""; } echo " | "; icone_horizontale(_T('trad_new'), "articles_edit.php3?new=oui&lier_trad=$id_article&id_rubrique=$id_rubrique", "traductions-24.gif", "creer.gif"); echo " | "; if ($flag_editable AND $options == "avancees" AND $ret) { echo ""; echo " | ". http_img_pack('rien.gif', " ", "width='2' height='2'") . " | "; echo ""; echo " | "; icone_horizontale(_T('trad_delier'), "articles.php3?id_article=$id_article&supp_trad=oui", "traductions-24.gif", "supprimer.gif"); echo " | \n"; } echo "
"; debut_cadre_relief(); echo "
"; $query_forum = "SELECT COUNT(*) AS cnt FROM spip_forum WHERE statut='prive' AND id_article='$id_article' AND id_parent=0"; $result_forum = spip_query($query_forum); $total = 0; if ($row = spip_fetch_array($result_forum)) $total = $row["cnt"]; if (!$debut) $debut = 0; $total_afficher = 8; if ($total > $total_afficher) { echo "