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", "", "", $id_rubrique); echo Agenda_date_insert_js_calendar_placeholder("_debut"); echo Agenda_date_insert_js_calendar_placeholder("_fin"); debut_grand_cadre(); afficher_hierarchie($id_rubrique); fin_grand_cadre(); if (!$row) {echo _T('public:aucun_article'); exit;} // // Affichage de la colonne de gauche // debut_gauche(); boite_info_articles($id_article, $statut_article, $visites, $id_version); // // Logos de l'article et Boites de configuration avancee // // pour l'affichage du virtuel unset($virtuel); if (substr($chapo, 0, 1) == '=') { $virtuel = substr($chapo, 1); } boites_de_config_articles($id_article, $id_rubrique, $flag_editable, $change_accepter_forum, $change_petition, $email_unique, $site_obli, $site_unique, $message, $texte_petition, $changer_virtuel, $virtuel); // // Affichage de la colonne de droite // debut_droite(); changer_typo('','article'.$id_article); debut_cadre_relief(); // // Titre, surtitre, sous-titre // $modif = titres_articles($titre, $statut_article,$surtitre, $soustitre, $descriptif, $url_site, $nom_site, $flag_editable, $id_article, $id_rubrique); echo "
"; dates_articles($id_article, $id_rubrique, $flag_editable, $statut_article, $date,$annee, $mois, $jour, $heure, $minute, $date_redac, $annee_redac, $mois_redac, $jour_redac, $heure_redac, $minute_redac); // // Gestion de l'agenda // Agenda_formulaire_article($id_article, $id_rubrique, $flag_editable); // // Liste des auteurs de l'article // echo ""; if ($flag_editable AND $options == 'avancees') { $bouton = bouton_block_invisible("auteursarticle"); } debut_cadre_enfonce("auteur-24.gif", false, "", $bouton._T('texte_auteurs').aide ("artauteurs")); // // Recherche d'auteur // $supprimer_bouton_creer_auteur = rechercher_auteurs_articles($cherche_auteur, $id_article, $id_rubrique, $ajout_auteur, $flag_editable, $nouv_auteur, $supp_auteur); // // Afficher les auteurs // $les_auteurs = afficher_auteurs_articles($id_article, $flag_editable); // // Ajouter un auteur // if ($flag_editable AND $options == 'avancees') ajouter_auteurs_articles($id_article, $id_rubrique, $les_auteurs, $flag_editable, $rubrique_article, $supprimer_bouton_creer_auteur); fin_cadre_enfonce(false); // // Liste des mots-cles de l'article // if ($options == 'avancees' AND $GLOBALS['meta']["articles_mots"] != 'non') { formulaire_mots('articles', $id_article, $nouv_mot, $supp_mot, $cherche_mot, $flag_editable, generer_url_ecrire("articles","id_article=$id_article")); } langues_articles($id_article, $langue_article, $flag_editable, $id_rubrique, $id_trad, $dir_lang, $nom_select, $lier_trad); afficher_statut_articles($id_article, $rubrique_article, $statut_article); afficher_corps_articles($virtuel, $chapo, $texte, $ps, $extra); if ($flag_editable) { echo "\n\n

"; bouton_modifier_articles($id_article, $id_rubrique, $modif,_T('texte_travail_article', $modif), "warning-24.gif", ""); echo "
"; } // // Documents associes a l'article // if ($spip_display != 4) afficher_documents_non_inclus($id_article, "article", $flag_editable); // // "Demander la publication" // if ($flag_auteur AND $statut_article == 'prepa') { echo "

"; debut_cadre_relief(); echo "

", ""._T('texte_proposer_publication')."", aide ("artprop"), "\n
", "\n", "
", "
"; fin_cadre_relief(); } echo "
"; echo ""; fin_cadre_relief(); affiche_forums_article($id_article, $id_rubrique, $titre, $debut); fin_page(); } function boite_info_articles($id_article, $statut_article, $visites, $id_version) { global $connect_statut, $options, $flag_revisions; debut_boite_info(); echo "
\n"; echo ""._T('info_numero_article')."\n"; echo "
$id_article\n"; voir_en_ligne ('article', $id_article, $statut_article); $activer_statistiques = $GLOBALS['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)), generer_url_ecrire("statistiques_visites","id_article=$id_article"), "statistiques-24.gif","rien.gif"); } if ((($GLOBALS['meta']["articles_versions"]=='oui') && $flag_revisions) AND $id_version>1 AND $options == "avancees") { icone_horizontale(_T('info_historique_lien'), generer_url_ecrire("articles_versions","id_article=$id_article"), "historique-24.gif", "rien.gif"); } // Correction orthographique if ($GLOBALS['meta']['articles_ortho'] == 'oui') { $js_ortho = "onclick=\"window.open(this.href, 'spip_ortho', 'scrollbars=yes, resizable=yes, width=740, height=580'); return false;\""; icone_horizontale(_T('ortho_verifier'), generer_url_ecrire("articles_ortho", "id_article=$id_article"), "ortho-24.gif", "rien.gif", 'echo', $js_ortho); } echo "
\n"; fin_boite_info(); } function boites_de_config_articles($id_article, $id_rubrique, $flag_editable, $change_accepter_forum, $change_petition, $email_unique, $site_obli, $site_unique, $message, $texte_petition, $changer_virtuel, $virtuel) { global $connect_statut, $options, $spip_lang_right; // Logos de l'article if ($id_article AND $flag_editable) afficher_boite_logo('art', 'id_article', $id_article, _T('logo_article').aide ("logoart"), _T('logo_survol'), 'articles'); // // Boites de configuration avancee // if ($options == "avancees" && $connect_statut=='0minirezo' && $flag_editable) { 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 ($visible) echo bouton_block_visible("forumpetition"); else echo bouton_block_invisible("forumpetition"); echo _T('bouton_forum_petition') .aide('confforums'); echo "
"; if ($visible) echo debut_block_visible("forumpetition"); else echo debut_block_invisible("forumpetition"); echo "\n"; // Forums if ($nb_forums) { echo "
\n"; icone_horizontale(_T('icone_suivi_forum', array('nb_forums' => $nb_forums)), generer_url_ecrire("articles_forum","id_article=$id_article"), "suivi-forum-24.gif", ""); } // Reglage existant $forums_publics = get_forums_publics($id_article); // Modification du reglage ? if (isset($change_accepter_forum) AND $change_accepter_forum <> $forums_publics) { $forums_publics = $change_accepter_forum; modifier_forums_publics($id_article, $forums_publics); } // Afficher le formulaire de modification du reglage echo formulaire_modification_forums_publics($id_article, $forums_publics, generer_url_ecrire("articles","id_article=$id_article")); // 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); $result_pet = spip_query("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')"); } else if ($change_petition == "off") { $result_pet = spip_query("DELETE FROM spip_petitions WHERE id_article=$id_article"); } } $petition = spip_fetch_array(spip_query("SELECT * FROM spip_petitions WHERE id_article=$id_article")); $email_unique=$petition["email_unique"]; $site_obli=$petition["site_obli"]; $site_unique=$petition["site_unique"]; $message=$petition["message"]; $texte_petition=$petition["texte"]; echo generer_url_post_ecrire("articles","id_article=$id_article"); echo "\n"; if ($petition) { if ($nb_signatures) { echo "
\n"; icone_horizontale($nb_signatures.' '. _T('info_signatures'), generer_url_ecrire("controle_petition","id_article=$id_article"), "suivi-petition-24.gif", ""); } echo "
\n"; 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"; echo "

"; } if (!$petition) echo ""; echo ""; if (!$petition) echo ""; echo ""; echo ""; echo fin_block(); fin_cadre_relief(); // 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 generer_url_post_ecrire("articles", "id_article=$id_article"); 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 // meme_rubrique_articles($id_rubrique, $id_article, $options); } function meme_rubrique_articles($id_rubrique, $id_article, $options, $order='articles.date', $limit=30) { global $spip_lang_right, $spip_lang_left; $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 $order DESC LIMIT $limit"); 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 "
"; } } function bouton_modifier_articles($id_article, $id_rubrique, $flag_modif, $mode, $ip, $im) { if ($flag_modif) { icone(_T('icone_modifier_article'), generer_url_ecrire("articles_edit","id_article=$id_article"), $ip, $im); echo "$mode"; echo aide("artmodif"); } else { icone(_T('icone_modifier_article'), generer_url_ecrire("articles_edit","id_article=$id_article"), "article-24.gif", "edit.gif"); } } function titres_articles($titre, $statut_article,$surtitre, $soustitre, $descriptif, $url_site, $nom_site, $flag_editable, $id_article, $id_rubrique) { global $dir_lang, $spip_lang_left, $connect_id_auteur; $logo_statut = "puce-".puce_statut($statut_article).".gif"; echo "\n"; echo ""; $flag_modif = false; if ($flag_editable) { echo "\n"; echo ""; } 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 "
". http_img_pack('rien.gif', " ", "width='5'") . ""; // Recuperer les donnees de l'article if ($GLOBALS['meta']['articles_modif'] != 'non') { $result = spip_query("SELECT auteur_modif, UNIX_TIMESTAMP(date_modif) AS modification, UNIX_TIMESTAMP(NOW()) AS maintenant FROM spip_articles WHERE id_article='$id_article'"); 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) { $result_auteur = spip_query("SELECT nom FROM spip_auteurs WHERE id_auteur='$auteur_modif'"); if ($row_auteur = spip_fetch_array($result_auteur)) { $nom_auteur_modif = typo($row_auteur["nom"]); } $modif = array('nom_auteur_modif' => $nom_auteur_modif, 'date_diff' => $date_diff); } } } bouton_modifier_articles($id_article, $id_rubrique, $modif, _T('avis_article_modifie', $modif), "article-24.gif", "edit.gif"); echo "
\n"; echo "
 
"; return $modif; } function dates_articles($id_article, $id_rubrique, $flag_editable, $statut_article, $date, $annee, $mois, $jour, $heure, $minute, $date_redac, $annee_redac, $mois_redac, $jour_redac, $heure_redac, $minute_redac) { global $spip_lang_left, $spip_lang_right, $options; if ($flag_editable AND $options == 'avancees') { debut_cadre_couleur(); echo generer_url_post_ecrire("articles", "id_article=$id_article"); if ($statut_article == 'publie') { echo "
"; echo bouton_block_invisible("datepub"); echo ""._T('texte_date_publication_article').' '; echo majuscules(affdate($date)), "".aide('artdate')."
"; echo debut_block_invisible("datepub"), "
", afficher_jour($jour, "name='jour' size='1' class='fondl' onChange=\"setvisibility('valider_date', 'visible')\"", true), afficher_mois($mois, "name='mois' size='1' class='fondl' onChange=\"setvisibility('valider_date', 'visible')\"", true), afficher_annee($annee, "name='annee' size='1' class='fondl' onChange=\"setvisibility('valider_date', 'visible')\""), ' - ', afficher_heure($heure, "name='heure' size='1' class='fondl' onChange=\"setvisibility('valider_date', 'visible')\""), afficher_minute($minute, "name='minute' size='1' class='fondl' onChange=\"setvisibility('valider_date', 'visible')\""), "", "   ", "", "
", fin_block(); } else { echo "
"._T('texte_date_creation_article').' '; echo majuscules(affdate($date))."".aide('artdate')."
"; } $possedeDateRedac=($annee_redac.'-'.$mois_redac.'-'.$jour_redac != '0000-00-00'); if (($options == 'avancees' AND $GLOBALS['meta']["articles_redac"] != 'non') OR $possedeDateRedac) { if ($possedeDateRedac) $date_affichee = majuscules(affdate($date_redac)) # ." " ._T('date_fmt_heures_minutes', array('h' =>$heure_redac, 'm'=>$minute_redac)) ; else $date_affichee = majuscules(_T('jour_non_connu_nc')); echo "
"; echo bouton_block_invisible('dateredac'); echo "" . majuscules(_T('texte_date_publication_anterieure')) .' '. $date_affichee ." ".aide('artdate_redac')."
"; echo debut_block_invisible('dateredac'); echo "
"; echo ''; echo ''; echo '
'; echo ' '; echo '
', afficher_jour($jour_redac, "name='jour_redac' class='fondl' onChange=\"setvisibility('valider_date_prec', 'visible')\"", true), afficher_mois($mois_redac, "name='mois_redac' class='fondl' onChange=\"setvisibility('valider_date_prec', 'visible')\"", true); echo ""; echo '
', afficher_heure($heure_redac, "name='heure_redac' class='fondl' onChange=\"setvisibility('valider_date_prec', 'visible')\"", true), afficher_minute($minute_redac, "name='minute_redac' class='fondl' onChange=\"setvisibility('valider_date_prec', 'visible')\"", true), "
\n"; echo '
'; echo ""; echo ''; echo ""; echo '
'; echo "
"; echo fin_block(); } echo ""; fin_cadre_couleur(); } else { if ($statut_article == 'publie') $texte_date = _T('texte_date_publication_article'); else $texte_date = _T('texte_date_creation_article'); debut_cadre_couleur(); echo "
$texte_date "; echo majuscules(affdate($date))."".aide('artdate')."
"; if ($annee_redac.'-'.$mois_redac.'-'.$jour_redac != '0000-00-00') { $date_affichee = ' : '.majuscules(affdate($date_redac)); echo "
"._T(texte_date_publication_anterieure)." "; echo $date_affichee."".aide('artdate_redac')."
"; } fin_cadre_couleur(); } } function langues_articles($id_article, $langue_article, $flag_editable, $id_rubrique, $id_trad, $dir_lang, $nom_select, $lier_trad) { global $connect_statut, $couleur_claire, $options, $connect_toutes_rubriques; if (($GLOBALS['meta']['multi_articles'] == 'oui') OR (($GLOBALS['meta']['multi_rubriques'] == 'oui') AND ($GLOBALS['meta']['gerer_trad'] == 'oui'))) { list($langue_article) = spip_fetch_array(spip_query("SELECT lang FROM spip_articles WHERE id_article=$id_article")); if ($GLOBALS['meta']['gerer_trad'] == 'oui') $titre_barre = _T('titre_langue_trad_article'); else $titre_barre = _T('titre_langue_article'); $titre_barre .= "  (".traduire_nom_langue($langue_article).")"; debut_cadre_enfonce('langues-24.gif', false, "", bouton_block_invisible('languesarticle,ne_plus_lier,lier_traductions').$titre_barre); // Choix langue article if ($GLOBALS['meta']['multi_articles'] == 'oui' AND $flag_editable) { echo debut_block_invisible('languesarticle'); $row = spip_fetch_array(spip_query("SELECT lang FROM spip_rubriques WHERE id_rubrique=$id_rubrique")); $langue_parent = $row['lang']; debut_cadre_couleur(); echo "
"; echo menu_langues('changer_lang', $langue_article, _T('info_multi_cet_article').' ', $langue_parent); echo "
\n"; fin_cadre_couleur(); echo fin_block(); } // Gerer les groupes de traductions if ($GLOBALS['meta']['gerer_trad'] == 'oui') { if ($flag_editable AND _request('supp_trad') == 'oui') { // Ne plus lier a un groupe de trad spip_query("UPDATE spip_articles SET id_trad=0, date_modif=NOW() WHERE id_article = $id_article"); // Verifier si l'ancien groupe ne comporte plus qu'un seul article. Alors mettre a zero. $result_autres_trad= spip_query("SELECT COUNT(id_article) AS total FROM spip_articles WHERE id_trad = $id_trad"); if ($row = spip_fetch_array($result_autres_trad)) $nombre_autres_trad = $row["total"]; if ($nombre_autres_trad == 1) spip_query("UPDATE spip_articles SET id_trad = 0, date_modif=NOW() WHERE id_trad = $id_trad"); $id_trad = 0; } // Changer article de reference de la trad if ($id_trad_new = intval($id_trad_new) AND $id_trad_old = intval($id_trad_old) AND $connect_statut=='0minirezo' AND $connect_toutes_rubriques) { spip_query("UPDATE spip_articles SET id_trad = $id_trad_new, date_modif=NOW() WHERE id_trad = $id_trad_old"); $id_trad = $id_trad_new; } if ($flag_editable AND $lier_trad > 0) { // Lier a un groupe de trad $result_lier = spip_query("SELECT id_trad FROM spip_articles WHERE id_article=$lier_trad"); if ($row = spip_fetch_array($result_lier)) { $id_lier = $row['id_trad']; if ($id_lier == 0) { // Si l'article vise n'a pas deja de traduction, creer nouveau id_trad $nouveau_trad = $lier_trad; } else { if ($id_lier == $id_trad) $err = "
"._T('trad_deja_traduit')."
"; $nouveau_trad = $id_lier; } spip_query("UPDATE spip_articles SET id_trad = $nouveau_trad, date_modif=NOW() WHERE id_article = $lier_trad"); if ($id_lier > 0) spip_query("UPDATE spip_articles SET id_trad = $nouveau_trad, date_modif=NOW() WHERE id_trad = $id_lier"); spip_query("UPDATE spip_articles SET id_trad = $nouveau_trad, date_modif=NOW() WHERE id_article = $id_article"); if ($id_trad > 0) spip_query("UPDATE spip_articles SET id_trad = $nouveau_trad, date_modif=NOW() WHERE id_trad = $id_trad"); $id_trad = $nouveau_trad; } else $err .= "
"._T('trad_article_inexistant')."
"; if ($err) echo "$err"; } // Afficher la liste des traductions if ($id_trad != 0) { $result_trad = spip_query("SELECT id_article, id_rubrique, titre, lang, statut FROM spip_articles WHERE id_trad = $id_trad"); $table=''; while ($row = spip_fetch_array($result_trad)) { $vals = ''; $id_article_trad = $row["id_article"]; $id_rubrique_trad = $row["id_rubrique"]; $titre_trad = $row["titre"]; $lang_trad = $row["lang"]; $statut_trad = $row["statut"]; changer_typo($lang_trad); $titre_trad = "$titre_trad"; if ($ifond == 1) { $ifond = 0; $bgcolor = "white"; } else { $ifond = 1; $bgcolor = $couleur_claire; } $vals[] = http_img_pack("puce-".puce_statut($statut_trad).'.gif', "", "width='7' height='7' border='0' NAME='statut'"); if ($id_article_trad == $id_trad) { $vals[] = http_img_pack('langues-12.gif', "", "width='12' height='12' border='0'"); $titre_trad = "$titre_trad"; } else { if ($connect_statut=='0minirezo' AND $connect_toutes_rubriques) $vals[] = "". http_img_pack('langues-off-12.gif', _T('trad_reference'), "width='12' height='12' border='0'", _T('trad_reference')) . ""; else $vals[] = http_img_pack('langues-off-12.gif', "", "width='12' height='12' border='0'"); } $ret .= ""; $s = typo($titre_trad); if ($id_article_trad != $id_article) $s = "$s"; if ($id_article_trad == $id_trad) $s .= " "._T('trad_reference'); $vals[] = $s; $vals[] = traduire_nom_langue($lang_trad); $table[] = $vals; } // changer_typo($spip_lang); (probleme d'affichage rtl?) // bloc traductions if (count($vals) > 0) { echo "
"; bandeau_titre_boite2(_T('trad_article_traduction'),''); echo ""; //echo ""; $largeurs = array(7, 12, '', 100); $styles = array('', '', 'arial2', 'arial2'); afficher_liste($largeurs, $table, $styles); echo "
"._T('trad_article_traduction')."
"; echo "
"; } changer_typo($langue_article); } echo debut_block_invisible('lier_traductions'); echo ""; if ($flag_editable AND $options == "avancees" AND !$ret) { // Formulaire pour lier a un article echo "\n"; echo ""; echo ""; echo ""; } echo ""; if ($flag_editable AND $options == "avancees" AND $ret) { echo ""; echo ""; echo ""; echo "\n"; } echo "
"; echo "
"; echo _T('trad_lier'); echo "
"; echo "
"; echo "
  ". http_img_pack('rien.gif', " ", "width='2' height='2'") . "   "; icone_horizontale(_T('trad_new'), generer_url_ecrire("articles_edit","new=oui&lier_trad=$id_article&id_rubrique=$id_rubrique"), "traductions-24.gif", "creer.gif"); echo "   ". http_img_pack('rien.gif', " ", "width='2' height='2'") . "   "; icone_horizontale(_T('trad_delier'), generer_url_ecrire("articles","id_article=$id_article&supp_trad=oui"), "traductions-24.gif", "supprimer.gif"); echo "
"; echo fin_block(); } fin_cadre_enfonce(); } } function add_auteur_article($id_article, $nouv_auteur) { $res = spip_query("SELECT id_article FROM spip_auteurs_articles WHERE id_auteur='$nouv_auteur' AND id_article='$id_article'"); if (!spip_num_rows($res)) spip_abstract_insert('spip_auteurs_articles', "(id_auteur,id_article)", "('$nouv_auteur','$id_article')"); } function rechercher_auteurs_articles($cherche_auteur, $id_article, $id_rubrique, $ajout_auteur, $flag_editable, $nouv_auteur, $supp_auteur) { global $spip_lang_left; $supprimer_bouton_creer_auteur = false; if ($cherche_auteur) { echo "

"; $result = spip_query("SELECT id_auteur, nom FROM spip_auteurs"); $table_auteurs = array(); $table_ids = array(); 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')."
"; $result = spip_query("SELECT * FROM spip_auteurs WHERE id_auteur=$nouv_auteur"); echo "

"; } else if (count($resultat) < 16) { reset($resultat); $les_auteurs = array(); while (list(, $id_auteur) = each($resultat)) $les_auteurs[] = $id_auteur; if ($les_auteurs) { $les_auteurs = join(',', $les_auteurs); echo ""._T('texte_plusieurs_articles', array('cherche_auteur' => $cherche_auteur))."
"; $result = spip_query("SELECT * FROM spip_auteurs WHERE id_auteur IN ($les_auteurs) ORDER BY nom"); echo ""; } } else { echo ""._T('texte_trop_resultats_auteurs', array('cherche_auteur' => $cherche_auteur))."
"; } if ($GLOBALS['connect_statut'] == '0minirezo' AND $GLOBALS['connect_toutes_rubriques']) { echo "
"; $retour = rawurlencode(generer_url_ecrire("articles","id_article=$id_article")); $titre = rawurlencode($cherche_auteur); icone_horizontale(_T('icone_creer_auteur'), generer_url_ecrire("auteur_infos","ajouter_id_article=$id_article&nom=$titre&redirect=$retour"), "redacteurs-24.gif", "creer.gif"); echo "
"; // message pour ne pas afficher le second bouton "creer un auteur" $supprimer_bouton_creer_auteur = true; } fin_boite_info(); echo "

"; } // // Appliquer les modifications sur les auteurs // if ($ajout_auteur && $flag_editable) { if ($nouv_auteur > 0) { add_auteur_article($id_article, $nouv_auteur); } if ($GLOBALS['meta']['activer_moteur'] == 'oui') { include_spip("inc/indexation"); marquer_indexer('article', $id_article); } } if ($supp_auteur && $flag_editable) { spip_query("DELETE FROM spip_auteurs_articles WHERE id_auteur='$supp_auteur' AND id_article='$id_article'"); if ($GLOBALS['meta']['activer_moteur'] == 'oui') { include_spip("inc/indexation"); marquer_indexer('article', $id_article); } } return $supprimer_bouton_creer_auteur; } function afficher_auteurs_articles($id_article, $flag_editable) { global $connect_statut, $options,$connect_id_auteur; $les_auteurs = array(); $result = spip_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"); if (spip_num_rows($result)) { echo "

"; echo ""; $table = array(); while ($row = spip_fetch_array($result)) { $vals = array(); $id_auteur = $row["id_auteur"]; $nom_auteur = $row["nom"]; $email_auteur = $row["email"]; if ($bio_auteur = attribut_html(propre(couper($row["bio"], 100)))) $bio_auteur = " TITLE=\"$bio_auteur\""; $url_site_auteur = $row["url_site"]; $statut_auteur = $row["statut"]; if ($row['messagerie'] == 'non' OR $row['login'] == '') $messagerie = 'non'; $les_auteurs[] = $id_auteur; if ($connect_statut == "0minirezo") $aff_articles = "('prepa', 'prop', 'publie', 'refuse')"; else $aff_articles = "('prop', 'publie')"; $result2 = spip_query("SELECT COUNT(articles.id_article) AS compteur FROM spip_auteurs_articles AS lien, spip_articles AS articles WHERE lien.id_auteur=$id_auteur AND articles.id_article=lien.id_article AND articles.statut IN $aff_articles GROUP BY lien.id_auteur"); if ($result2) list($nombre_articles) = spip_fetch_array($result2); else $nombre_articles = 0; $vals[] = bonhomme_statut($row); $vals[] = "".typo($nom_auteur).""; $vals[] = bouton_imessage($id_auteur); if ($email_auteur) $vals[] = ""._T('email').""; else $vals[] = " "; if ($url_site_auteur) $vals[] = ""._T('info_site_min').""; else $vals[] = " "; if ($nombre_articles > 1) $vals[] = $nombre_articles.' '._T('info_article_2'); else if ($nombre_articles == 1) $vals[] = _T('info_1_article'); else $vals[] = " "; if ($flag_editable AND ($connect_id_auteur != $id_auteur OR $connect_statut == '0minirezo') AND $options == 'avancees') { $vals[] = ""._T('lien_retirer_auteur')." ". http_img_pack('croix-rouge.gif', "X", "width='7' height='7' border='0' align='middle'") . ""; } else { $vals[] = ""; } $table[] = $vals; } $largeurs = array('14', '', '', '', '', '', ''); $styles = array('arial11', 'arial2', 'arial11', 'arial11', 'arial11', 'arial11', 'arial1'); afficher_liste($largeurs, $table, $styles); echo "
\n"; $les_auteurs = join(',', $les_auteurs); } return $les_auteurs ; } function ajouter_auteurs_articles($id_article, $id_rubrique, $les_auteurs, $flag_editable, $rubrique_article, $supprimer_bouton_creer_auteur) { global $connect_toutes_rubriques, $connect_statut, $couleur_claire ; echo debut_block_invisible("auteursarticle"); echo ""; if ($connect_statut == '0minirezo' AND $connect_toutes_rubriques AND !$supprimer_bouton_creer_auteur) { echo ""; echo ""; } echo "
"; $retour = rawurlencode(generer_url_ecrire("articles","id_article=$id_article")); icone_horizontale(_T('icone_creer_auteur'), generer_url_ecrire("auteur_infos","ajouter_id_article=$id_article&redirect=$retour"), "redacteurs-24.gif", "creer.gif"); echo " "; $result = spip_query("SELECT * FROM spip_auteurs WHERE " . (!$les_auteurs ? '' : "id_auteur NOT IN ($les_auteurs) AND ") . "statut!='5poubelle' AND statut!='6forum' AND statut!='nouveau' ORDER BY statut, nom"); $num = spip_num_rows($result); if ($num) { echo generer_url_post_ecrire("articles", "id_article=$id_article");; echo ""._T('titre_cadre_ajouter_auteur')."  \n"; echo "
"; if ($num > 200) { echo ""; echo ""; echo " "; echo ""; } else { echo ""; echo "", "", " ", ""; } echo "
"; } echo "
"; echo fin_block(); } function afficher_corps_articles($virtuel, $chapo, $texte, $ps, $extra) { global $revision_nbsp, $activer_revision_nbsp, $champs_extra, $les_notes, $dir_lang; echo "\n\n
"; if ($virtuel) { debut_boite_info(); echo _T('info_renvoi_article')." ".propre("
[->$virtuel]
"); fin_boite_info(); } else { $revision_nbsp = $activer_revision_nbsp; if (strlen($chapo) > 0) { echo "
"; echo propre($chapo); echo "
\n\n"; } echo "
"; # echo reduire_image(propre($texte), 500,10000); echo propre($texte); echo "
"; echo "
"; if ($ps) { echo debut_cadre_enfonce(); echo "
"; echo justifier(""._T('info_ps')." ".propre($ps)); echo "
"; echo fin_cadre_enfonce(); } $revision_nbsp = false; if ($les_notes) { echo debut_cadre_relief(); echo "
"; echo justifier(""._T('info_notes')." : ".$les_notes); echo "
"; echo fin_cadre_relief(); } if ($champs_extra AND $extra) { include_spip('inc/extra'); extra_affichage($extra, "articles"); } } } function affiche_forums_article($id_article, $id_rubrique, $titre, $debut, $mute=false) { global $spip_lang_left; echo "

"; $forum_retour = generer_url_ecrire("articles","id_article=$id_article", true); if (!$mute) { $tm = rawurlencode($titre); echo "\n
"; icone(_T('icone_poster_message'), generer_url_ecrire("forum_envoi","statut=prive&adresse_retour=" . rawurlencode($forum_retour) . "&id_article=$id_article&titre_message=$tm"), "forum-interne-24.gif", "creer.gif"); echo "
"; } echo "

"; $result_forum = spip_query("SELECT COUNT(*) AS cnt FROM spip_forum WHERE statut='prive' AND id_article='$id_article' AND id_parent=0"); $total = 0; if ($row = spip_fetch_array($result_forum)) $total = $row["cnt"]; if (!$debut) $debut = 0; $total_afficher = 8; if ($total > $total_afficher) { echo "

"; for ($i = 0; $i < $total; $i = $i + $total_afficher){ $y = $i + $total_afficher - 1; if ($i == $debut) echo "[$i-$y] "; else echo "[$i-$y] "; } echo "
"; } $result_forum = spip_query("SELECT * FROM spip_forum WHERE statut='prive' AND id_article='$id_article' AND id_parent=0 ORDER BY date_heure DESC" . # " LIMIT $total_afficher OFFSET $debut" # PG " LIMIT $debut,$total_afficher" ); afficher_forum($result_forum, $forum_retour, $mute); if (!$debut) $debut = 0; $total_afficher = 8; if ($total > $total_afficher) { echo "
"; for ($i = 0; $i < $total; $i = $i + $total_afficher){ $y = $i + $total_afficher - 1; if ($i == $debut) echo "[$i-$y] "; else echo "[$i-$y] "; } echo "
"; } echo "
\n"; } function afficher_statut_articles($id_article, $rubrique_article, $statut_article) { global $connect_statut; if ($connect_statut == '0minirezo' AND acces_rubrique($rubrique_article)) { echo "\n
", debut_cadre_relief("", true), "\n
", "",_T('texte_article_statut'),"", "\n", "   ", http_img_pack("puce-".puce_statut($statut_article).'.gif', "", "border='0' NAME='statut'"), "  \n"; echo ""; echo ""; echo ""; echo aide("artstatut"); echo "
"; fin_cadre_relief(); echo "\n
"; } } // // Reunit les textes decoupes parce que trop longs // function trop_longs_articles($texte_plus) { $nb_texte = 0; while ($nb_texte ++ < count($texte_plus)+1){ $texte_ajout .= ereg_replace("[\n\r]*","", $texte_plus[$nb_texte]); } return $texte_ajout; } function modif_langue_articles($id_article, $id_rubrique, $changer_lang) { // Appliquer la modification de langue if ($GLOBALS['meta']['multi_articles'] == 'oui') { list($langue_parent) = spip_fetch_array(spip_query("SELECT lang FROM spip_rubriques WHERE id_rubrique=" . $id_rubrique)); if ($changer_lang) { if ($changer_lang != "herit") spip_query("UPDATE spip_articles SET lang='".addslashes($changer_lang)."', langue_choisie='oui', date_modif=NOW() WHERE id_article=$id_article"); else spip_query("UPDATE spip_articles SET lang='".addslashes($langue_parent)."', langue_choisie='non', date_modif=NOW() WHERE id_article=$id_article"); } } } // Passer les images/docs en "inclus=non" function inclus_non_articles($id_article) { $result = spip_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"); 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)"); } } function revisions_articles ($id_article, $id_secteur, $id_rubrique, $id_rubrique_old, $change_rubrique, $new, $champs) { { global $connect_id_auteur, $flag_revisions, $champs_extra; // Stockage des versions : creer une premier version si non-existante if (($GLOBALS['meta']["articles_versions"]=='oui') && $flag_revisions) { include_spip('inc/revisions'); if ($new != 'oui') { $query = spip_query("SELECT id_article FROM spip_versions WHERE id_article=$id_article LIMIT 1"); if (!spip_num_rows($query)) { $select = join(", ", array_keys($champs)); $query = spip_query("SELECT $select FROM spip_articles WHERE id_article=$id_article"); $champs_originaux = spip_fetch_array($query); $id_version = ajouter_version($id_article, $champs_originaux, _T('version_initiale'), 0); // 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"); } } } if ($champs_extra) { include_spip('inc/extra'); $champs_extra = ", extra = '".addslashes(extra_recup_saisie("articles", $id_secteur))."'"; } spip_query("UPDATE spip_articles SET surtitre='" . addslashes($champs['surtitre']) . "', titre='" . addslashes($champs['titre']) . "', soustitre='" . addslashes($champs['soustitre']) . "', id_rubrique=" . intval($id_rubrique) . ", descriptif='" . addslashes($champs['descriptif']) . "', chapo='" . addslashes($champs['chapo']) . "', texte='" . addslashes($champs['texte']) . "', ps='" . addslashes($champs['ps']) . "', url_site='" . addslashes($champs['url_site']) . "', nom_site='" . addslashes($champs['nom_site']) . "', date_modif=NOW() $champs_extra WHERE id_article=$id_article"); // Stockage des versions if (($GLOBALS['meta']["articles_versions"]=='oui') && $flag_revisions) { ajouter_version($id_article, $champs, '', $connect_id_auteur); } // Changer la langue heritee if ($id_rubrique != $id_rubrique_old) { propager_les_secteurs(); $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', date_modif=NOW() WHERE id_article = $id_article"); } } // 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"); calculer_rubriques(); } } function insert_article($id_parent, $new) { if ($new!='oui') redirige_par_entete("./"); // Avec l'Ajax parfois id_rubrique vaut 0... ne pas l'accepter if (!$id_rubrique = intval($id_parent)) { list($id_rubrique) = spip_fetch_array(spip_query("SELECT id_rubrique FROM spip_rubriques WHERE id_parent=0 ORDER by 0+titre,titre LIMIT 1")); } $row = spip_fetch_array(spip_query("SELECT lang FROM spip_rubriques WHERE id_rubrique=$id_rubrique")); $id_article = spip_abstract_insert("spip_articles", "(id_rubrique, statut, date, accepter_forum, lang, langue_choisie)", "($id_rubrique, 'prepa', NOW(), '" . substr($GLOBALS['meta']['forums_publics'],0,3) . "', '" . ($row["lang"] ? $row["lang"] : $GLOBALS['meta']['langue_site']) . "', 'non')"); return $id_article; } // Y a-t-il vraiment 56 variables determinant l'edition d'un article ? function exec_articles_dist() { global $ajout_auteur, $annee, $annee_redac, $avec_redac, $champs_extra, $change_accepter_forum, $change_petition, $changer_lang, $changer_virtuel, $chapo, $cherche_auteur, $cherche_mot, $connect_id_auteur, $date, $date_redac, $debut, $descriptif, $email_unique, $heure, $heure_redac, $id_article, $id_article_bloque, $id_parent, $id_rubrique_old, $id_secteur, $jour, $jour_redac, $langue_article, $lier_trad, $message, $minute, $minute_redac, $mois, $mois_redac, $new, $nom_select, $nom_site, $nouv_auteur, $nouv_mot, $ps, $row, $site_obli, $site_unique, $soustitre, $supp_auteur, $supp_mot, $surtitre, $texte, $texte_petition, $texte_plus, $titre, $titre_article, $url_site, $virtuel; $id_parent = intval($id_parent); $nouv_auteur = intval($nouv_auteur); if (!($id_article=intval($id_article))) { $id_article = insert_article($id_parent, $new); add_auteur_article($id_article, $connect_id_auteur); } // aucun doc implicitement inclus au départ. inclus_non_articles($id_article); if ($row = spip_fetch_array(spip_query("SELECT statut, titre, id_rubrique FROM spip_articles WHERE id_article=$id_article"))) { $statut_article = $row['statut']; $titre_article = $row['titre']; $id_rubrique = $row['id_rubrique']; $statut_rubrique = acces_rubrique($id_rubrique); if ($titre_article=='') $titre_article = _T('info_sans_titre'); } else { $statut_article = ''; $statut_rubrique = false; $id_rubrique = '0'; if ($titre=='') $titre = _T('info_sans_titre'); } $flag_auteur = spip_num_rows(spip_query("SELECT id_auteur FROM spip_auteurs_articles WHERE id_article=$id_article AND id_auteur=$connect_id_auteur LIMIT 1")); $flag_editable = ($statut_rubrique OR ($flag_auteur AND $flag_editable)); if ($flag_editable) { if ($jour) { $date = format_mysql_date($annee, $mois, $jour, $heure, $minute); spip_query("UPDATE spip_articles SET date='$date', date_modif=NOW() WHERE id_article=$id_article"); calculer_rubriques(); } if ($jour_redac) { 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', date_modif=NOW() WHERE id_article=$id_article"); } modif_langue_articles($id_article, $id_rubrique, $changer_lang); maj_documents($id_article, 'article'); if ($changer_virtuel) { $virtuel = eregi_replace("^http://$", "", trim($virtuel)); if ($virtuel) $chapo = addslashes(corriger_caracteres("=$virtuel")); else $chapo = ""; spip_query("UPDATE spip_articles SET chapo='$chapo', date_modif=NOW() WHERE id_article=$id_article"); } if ($titre) { // prendre en compte le changement eventuel, et seulement si autorise if ($id_parent AND ($flag_auteur OR acces_rubrique($id_parent))) { $id_rubrique = $id_parent; } $champs = array( 'surtitre' => corriger_caracteres($surtitre), 'titre' => ($titre_article=corriger_caracteres($titre)), 'soustitre' => corriger_caracteres($soustitre), 'descriptif' => corriger_caracteres($descriptif), 'nom_site' => corriger_caracteres($nom_site), 'url_site' => corriger_caracteres($url_site), 'chapo' => corriger_caracteres($chapo), 'texte' => corriger_caracteres(trop_longs_articles($texte_plus) . $texte), 'ps' => corriger_caracteres($ps)) ; revisions_articles ($id_article, $id_secteur, $id_rubrique, $id_rubrique_old, ($flag_auteur||$statut_rubrique), $new, $champs); $id_article_bloque = $id_article; // message pour inc/presentation } } exec_affiche_articles_dist($id_article, $ajout_auteur, $change_accepter_forum, $change_petition, $changer_virtuel, $cherche_auteur, $cherche_mot, $debut, $email_unique, $flag_auteur, $flag_editable, $langue_article, $message, $nom_select, $nouv_auteur, $nouv_mot, $id_rubrique, $site_obli, $site_unique, $supp_auteur, $supp_mot, $texte_petition, $titre_article, $lier_trad); } ?>