From 9ecd5c2b1b80908c4ae842113139d6dea1d41b12 Mon Sep 17 00:00:00 2001 From: "Committo,Ergo:sum" <esj@rezo.net> Date: Tue, 18 Oct 2005 20:08:11 +0000 Subject: [PATCH] reecriture de la visualisation des articles dans l'espace prive pour permettre la surcharge avec un fichier inc_articles.php dans le SPIP_PATH --- ecrire/articles.php3 | 1328 +--------------------------------- ecrire/inc_articles.php | 1325 +++++++++++++++++++++++++++++++++ ecrire/inc_presentation.php3 | 2 +- ecrire/presentation.js | 22 +- 4 files changed, 1355 insertions(+), 1322 deletions(-) diff --git a/ecrire/articles.php3 b/ecrire/articles.php3 index 59a6ac1770..c939e19d60 100644 --- a/ecrire/articles.php3 +++ b/ecrire/articles.php3 @@ -18,8 +18,8 @@ include_ecrire ("inc_date.php3"); include_ecrire ("inc_documents.php3"); include_ecrire ("inc_forum.php3"); include_ecrire ("inc_abstract_sql.php3"); -$f = find_in_path("inc_articles.php"); -include($f ? $f : (_DIR_INCLUDE . "inc_articles.php")); +$var_f = find_in_path("inc_articles.php"); +include($var_f ? $var_f : (_DIR_INCLUDE . "inc_articles.php")); $articles_surtitre = lire_meta("articles_surtitre"); $articles_soustitre = lire_meta("articles_soustitre"); @@ -123,7 +123,7 @@ if ($statut_nouv) { } -// 'd�publie' => invalider les caches +// 'depublie' => 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'"); @@ -282,1328 +282,22 @@ if (strval($titre)!=='' AND !$ajout_forum AND $flag_editable) { $id_article_bloque = $id_article; // message pour inc_presentation } +///////////////// Affichage +if (function_exists('affiche_articles')) + $var_nom = 'affiche_articles'; + else + $var_nom = 'affiche_articles_dist'; +// on pourrait supprimer les arguments issus des meta +// mais l'URL admet de fait une vingtaine de parametres differents -// -// 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 "<div align='center'>\n"; - - -echo "<font face='Verdana,Arial,Sans,sans-serif' size='1'><b>"._T('info_numero_article')."</b></font>\n"; -echo "<br><font face='Verdana,Arial,Sans,sans-serif' size='6'><b>$id_article</b></font>\n"; - -voir_en_ligne ('article', $id_article, $statut_article); - - -$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"); -} - -if ($articles_versions AND $id_version>1 AND $options == "avancees") { - icone_horizontale(_T('info_historique_lien'), "articles_versions.php3?id_article=$id_article", "historique-24.gif", "rien.gif"); -} - - // Correction orthographique - if (lire_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'), "articles_ortho.php?id_article=$id_article", "ortho-24.gif", "rien.gif", 'echo', $js_ortho); - } - -echo "</div>\n"; - -fin_boite_info(); - - -// 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')); - - -// -// Boites de configuration avancee -// - -if ($options == "avancees" && $connect_statut=='0minirezo' && $flag_editable) { - echo "<p>"; - 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 "<div class='verdana1' style='text-align: center;'><b>"; - if ($visible) - echo bouton_block_visible("forumpetition"); - else - echo bouton_block_invisible("forumpetition"); - echo _T('bouton_forum_petition') .aide('confforums'); - echo "</b></div>"; - if ($visible) - echo debut_block_visible("forumpetition"); - else - echo debut_block_invisible("forumpetition"); - - - echo "<font face='Verdana,Arial,Sans,sans-serif' size='1'>\n"; - - - // Forums - - if ($nb_forums) { - echo "<br />\n"; - icone_horizontale(_T('icone_suivi_forum', array('nb_forums' => $nb_forums)), - "articles_forum.php3?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); - - - // 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); - } - } - - $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 "\n<form action='".$GLOBALS['clean_link']->getUrl() - ."' method='POST'>"; - echo "\n<input type='hidden' name='id_article' value='$id_article'>"; - - echo "<select name='change_petition' - class='fondl' style='font-size:10px;' - onChange=\"setvisibility('valider_petition', 'visible');\" - >\n"; - - if ($petition) { - $menu = array( - 'on' => _T('bouton_radio_petition_activee'), - 'off'=> _T('bouton_radio_supprimer_petition') - ); - $val_menu = 'on'; - } else { - $menu = array( - 'off'=> _T('bouton_radio_pas_petition'), - 'on' => _T('bouton_radio_activer_petition') - ); - $val_menu = 'off'; - } - - - foreach ($menu as $val => $desc) { - echo "<option"; - if ($val_menu == $val) - echo " selected"; - echo " value='$val'>".$desc."</option>\n"; - } - echo "</select>\n"; - - if ($petition) { - if ($nb_signatures) { - echo "<br />\n"; - icone_horizontale($nb_signatures.' '. _T('info_signatures'), - "controle_petition.php3?id_article=$id_article", "suivi-petition-24.gif", ""); - } - - echo "<br />\n"; - - if ($email_unique=="oui") - echo "<input type='checkbox' name='email_unique' value='oui' id='emailunique' checked>"; - else - echo "<input type='checkbox' name='email_unique' value='oui' id='emailunique'>"; - echo " <label for='emailunique'>"._T('bouton_checkbox_signature_unique_email')."</label><BR>"; - if ($site_obli=="oui") - echo "<input type='checkbox' name='site_obli' value='oui' id='siteobli' checked>"; - else - echo "<input type='checkbox' name='site_obli' value='oui' id='siteobli'>"; - echo " <label for='siteobli'>"._T('bouton_checkbox_indiquer_site')."</label><BR>"; - if ($site_unique=="oui") - echo "<input type='checkbox' name='site_unique' value='oui' id='siteunique' checked>"; - else - echo "<input type='checkbox' name='site_unique' value='oui' id='siteunique'>"; - echo " <label for='siteunique'>"._T('bouton_checkbox_signature_unique_site')."</label><BR>"; - if ($message=="oui") - echo "<input type='checkbox' name='message' value='oui' id='message' checked>"; - else - echo "<input type='checkbox' name='message' value='oui' id='message'>"; - echo " <label for='message'>"._T('bouton_checkbox_envoi_message')."</label>"; - - echo "<P>"._T('texte_descriptif_petition')." :<BR>"; - echo "<TEXTAREA NAME='texte_petition' CLASS='forml' ROWS='4' COLS='10' wrap=soft>"; - echo $texte_petition; - echo "</TEXTAREA><P>\n"; - - echo "<P align='$spip_lang_right'>"; - } - - if (!$petition) echo "<span class='visible_au_chargement' id='valider_petition'>"; - echo "<INPUT TYPE='submit' NAME='Changer' CLASS='fondo' VALUE='"._T('bouton_changer')."' STYLE='font-size:10px'>"; - if (!$petition) echo "</span>"; - echo "</FORM>"; - - echo "</font>"; - echo fin_block(); - - fin_cadre_relief(); - - - - // Redirection (article virtuel) - debut_cadre_relief("site-24.gif"); - $visible = ($changer_virtuel || $virtuel); - - echo "<div class='verdana1' style='text-align: center;'><b>"; - if ($visible) - echo bouton_block_visible("redirection"); - else - echo bouton_block_invisible("redirection"); - echo _T('bouton_redirection'); - echo aide ("artvirt"); - echo "</b></div>"; - if ($visible) - echo debut_block_visible("redirection"); - else - echo debut_block_invisible("redirection"); - - echo "<form action='articles.php3?id_article=$id_article' method='post'>"; - echo "\n<INPUT TYPE='hidden' NAME='id_article' VALUE='$id_article'>"; - echo "\n<INPUT TYPE='hidden' NAME='changer_virtuel' VALUE='oui'>"; - $virtuelhttp = ($virtuel ? "" : "http://"); - - echo "<INPUT TYPE='text' NAME='virtuel' CLASS='formo' style='font-size:9px;' VALUE=\"$virtuelhttp$virtuel\" SIZE='40'><br>"; - echo "<font face='Verdana,Arial,Sans,sans-serif' size=2>"; - echo "(<b>"._T('texte_article_virtuel')." :</b> "._T('texte_reference_mais_redirige').")"; - echo "</font>"; - echo "<div align='$spip_lang_right'><INPUT TYPE='submit' NAME='Changer' CLASS='fondo' VALUE='"._T('bouton_changer')."' STYLE='font-size:10px'></div>"; - echo "</form>"; - 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 30"); - if (spip_num_rows($vos_articles) > 0) { - echo "<div> </div>"; - echo "<div class='bandeau_rubriques' style='z-index: 1;'>"; - bandeau_titre_boite2(_T('info_meme_rubrique'), "article-24.gif"); - echo "<div class='plan-articles'>"; - 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 = "<div class='arial1' style='float: $spip_lang_right; color: black; padding-$spip_lang_left: 4px;'><b>"._T('info_numero_abbreviation')."$ze_article</b></div>"; - } - echo "<a class='$ze_statut' style='font-size: 10px;' href='articles.php3?id_article=$ze_article'>$numero$ze_titre</a>"; - } - echo "</div>"; - echo "</div>"; - } - - -////////////////////////////////////////////////////// -// Affichage de la colonne de droite -// - -debut_droite(); - - -changer_typo('','article'.$id_article); - -debut_cadre_relief(); - -// -// Titre, surtitre, sous-titre -// - -$logo_statut = "puce-".puce_statut($statut_article).".gif"; - -echo "\n<table cellpadding=0 cellspacing=0 border=0 width='100%'>"; -echo "<tr width='100%'><td width='100%' valign='top'>"; -if ($surtitre) { - echo "<span $dir_lang><font face='arial,helvetica' size=3><b>"; - echo typo($surtitre); - echo "</b></font></span>\n"; -} - gros_titre($titre, $logo_statut); - -if ($soustitre) { - echo "<span $dir_lang><font face='arial,helvetica' size=3><b>"; - echo typo($soustitre); - echo "</b></font></span>\n"; -} - - -if ($descriptif OR $url_site OR $nom_site) { - echo "<p><div align='$spip_lang_left' style='padding: 5px; border: 1px dashed #aaaaaa; background-color: #e4e4e4;' $dir_lang>"; - echo "<font size=2 face='Verdana,Arial,Sans,sans-serif'>"; - $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 "</font>"; - echo "</div>"; -} - - -if ($statut_article == 'prop') { - echo "<P><FONT FACE='Verdana,Arial,Sans,sans-serif' SIZE=2 COLOR='red'><B>"._T('text_article_propose_publication')."</B></FONT></P>"; -} - -echo "</td>"; - - -if ($flag_editable) { - echo "<td>". http_img_pack('rien.gif', " ", "width='5'") . "</td>\n"; - echo "<td align='center'>"; - $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 "<font face='arial,helvetica,sans-serif' size='2'>"._T('avis_article_modifie', array('nom_auteur_modif' => $nom_auteur_modif, 'date_diff' => $date_diff))."</font>"; - echo aide("artmodif"); - } - else { - icone(_T('icone_modifier_article'), "articles_edit.php3?id_article=$id_article", "article-24.gif", "edit.gif"); - } - - echo "</td>"; -} -echo "</tr></table>\n"; - - -echo "<div> </div>"; -echo "<div class='serif' align='$spip_lang_left'>"; - -// -// Affichage date redac et date publi -// - -if ($flag_editable AND $options == 'avancees') { - debut_cadre_couleur(); - - echo "<FORM ACTION='articles.php3' METHOD='GET' style='margin: 0px; padding: 0px;'>"; - echo "<INPUT TYPE='hidden' NAME='id_article' VALUE='$id_article'>"; - - if ($statut_article == 'publie') { - - echo "<div><b>"; - echo bouton_block_invisible("datepub"); - echo "<span class='verdana1'>"._T('texte_date_publication_article').'</span> '; - echo majuscules(affdate($date)), -# ', <small>'._T('date_fmt_heures_minutes', -# array('h' =>$heure, 'm'=>$minute)), '</small>', - "</b>".aide('artdate')."</div>"; - - echo debut_block_invisible("datepub"), - "<div style='margin: 5px; margin-$spip_lang_left: 20px;'>", - 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')\""), - "<span class='visible_au_chargement' id='valider_date'>", - " <INPUT TYPE='submit' NAME='Changer' CLASS='fondo' VALUE='"._T('bouton_changer')."'>", - "</span>", - "</div>", - fin_block(); - } - else { - echo "<div><b> <span class='verdana1'>"._T('texte_date_creation_article').'</span> '; - echo majuscules(affdate($date))."</b>".aide('artdate')."</div>"; - } - - $possedeDateRedac=($annee_redac.'-'.$mois_redac.'-'.$jour_redac != '0000-00-00'); - if (($options == 'avancees' AND $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 "<div><b>"; - echo bouton_block_invisible('dateredac'); - echo "<span class='verdana1'>" - . majuscules(_T('texte_date_publication_anterieure')) - .'</span> '. $date_affichee ." ".aide('artdate_redac')."</b></div>"; - - echo debut_block_invisible('dateredac'); - echo "<div style='margin: 5px; margin-$spip_lang_left: 20px;'>"; - echo '<table cellpadding="0" cellspacing="0" border="0" width="100%">'; - echo '<tr><td align="$spip_lang_left">'; - echo '<input type="radio" name="avec_redac" value="non" id="avec_redac_on"'; - if (!$possedeDateRedac) echo ' checked="checked"'; - echo " onClick=\"setvisibility('valider_date_prec', 'visible')\""; - echo ' /> <label for="avec_redac_on">'._T('texte_date_publication_anterieure_nonaffichee').'</label>'; - echo '<br /><input type="radio" name="avec_redac" value="oui" id="avec_redac_off"'; - if ($possedeDateRedac) echo ' checked="checked"'; - echo " onClick=\"setvisibility('valider_date_prec', 'visible')\""; - echo ' /> <label for="avec_redac_off">'._T('bouton_radio_afficher').' :</label> ', - 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 "<input type='text' name='annee_redac' class='fondl' value='".$annee_redac."' size='5' maxlength='4' onClick=\"setvisibility('valider_date_prec', 'visible')\"/>"; - - echo '<div align="center">', - 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), - "</div>\n"; - - echo '</td><td align="$spip_lang_right">'; - echo "<span class='visible_au_chargement' id='valider_date_prec'>"; - echo '<input type="submit" name="Changer" class="fondo" value="'._T('bouton_changer').'" />'; - echo "</span>"; - echo '</td></tr>'; - echo '</table>'; - echo "</div>"; - echo fin_block(); - } - - echo "</FORM>"; - 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 "<div style='text-align:center;'><b> <span class='verdana1'>$texte_date</span> "; - echo majuscules(affdate($date))."</b>".aide('artdate')."</div>"; - - - if ($annee_redac.'-'.$mois_redac.'-'.$jour_redac != '0000-00-00') { - $date_affichee = ' : '.majuscules(affdate($date_redac)); - echo "<div style='text-align:center;'><b> <span class='verdana1'>"._T(texte_date_publication_anterieure)."</span> "; - echo $date_affichee."</b>".aide('artdate_redac')."</div>"; - } - - fin_cadre_couleur(); -} - - - -// -// Liste des auteurs de l'article -// - -echo "<a name='auteurs'></a>"; - -if ($flag_editable AND $options == 'avancees') { - $bouton = bouton_block_invisible("auteursarticle"); -} - -debut_cadre_enfonce("auteur-24.gif", false, "", $bouton._T('texte_auteurs').aide ("artauteurs")); - - - -//////////////////////////////////////////////////// -// Gestion des auteurs -// - -// Creer un nouvel auteur et l'ajouter -#spip_log("$creer_auteur AND $connect_statut"); -# ce code n'est jamais execute. A tirer au clair -if ($creer_auteur AND $connect_statut=='0minirezo'){ - $creer_auteur = addslashes($creer_auteur); - - $nouv_auteur = spip_abstract_insert('spip_auteurs', "(nom, statut)", - "(\"$creer_auteur\", '1comite')"); - $ajout_auteur = true; -} - - -// -// Recherche d'auteur -// - -if ($cherche_auteur) { - echo "<P ALIGN='$spip_lang_left'>"; - $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 "<B>"._T('texte_aucun_resultat_auteur', array('cherche_auteur' => $cherche_auteur)).".</B><BR>"; - } - else if (count($resultat) == 1) { - $ajout_auteur = 'oui'; - list(, $nouv_auteur) = each($resultat); - echo "<B>"._T('texte_ajout_auteur')."</B><BR>"; - $query = "SELECT * FROM spip_auteurs WHERE id_auteur=$nouv_auteur"; - $result = spip_query($query); - echo "<UL>"; - while ($row = spip_fetch_array($result)) { - $id_auteur = $row['id_auteur']; - $nom_auteur = $row['nom']; - $email_auteur = $row['email']; - $bio_auteur = $row['bio']; - - echo "<LI><FONT FACE='Verdana,Arial,Sans,sans-serif' SIZE=2><B><FONT SIZE=3>".typo($nom_auteur)."</FONT></B>"; - echo "</FONT>\n"; - } - echo "</UL>"; - } - else if (count($resultat) < 16) { - reset($resultat); - unset($les_auteurs); - while (list(, $id_auteur) = each($resultat)) $les_auteurs[] = $id_auteur; - if ($les_auteurs) { - $les_auteurs = join(',', $les_auteurs); - echo "<B>"._T('texte_plusieurs_articles', array('cherche_auteur' => $cherche_auteur))."</B><BR>"; - $query = "SELECT * FROM spip_auteurs WHERE id_auteur IN ($les_auteurs) ORDER BY nom"; - $result = spip_query($query); - echo "<UL class='verdana1'>"; - while ($row = spip_fetch_array($result)) { - $id_auteur = $row['id_auteur']; - $nom_auteur = $row['nom']; - $email_auteur = $row['email']; - $bio_auteur = $row['bio']; - - echo "<li><b>".typo($nom_auteur)."</b>"; - - if ($email_auteur) echo " ($email_auteur)"; - echo " | <A HREF=\"articles.php3?id_article=$id_article&ajout_auteur=oui&nouv_auteur=$id_auteur#auteurs\">"._T('lien_ajouter_auteur')."</A>"; - - if (trim($bio_auteur)) { - echo "<br />".couper(propre($bio_auteur), 100)."\n"; - } - echo "</li>\n"; - } - echo "</UL>"; - } - } - else { - echo "<B>"._T('texte_trop_resultats_auteurs', array('cherche_auteur' => $cherche_auteur))."</B><BR>"; - } - - if ($GLOBALS['connect_statut'] == '0minirezo') { - echo "<div style='width: 200px;'>"; - $retour = urlencode($GLOBALS['clean_link']->getUrl()); - $titre = urlencode($cherche_auteur); - icone_horizontale(_T('icone_creer_auteur'), "auteur_infos.php3?new=oui&ajouter_id_article=$id_article&titre=$titre&redirect=$retour", "redacteurs-24.gif", "creer.gif"); - echo "</div> "; - - // message pour ne pas afficher le second bouton "creer un auteur" - $supprimer_bouton_creer_auteur = true; - } - - fin_boite_info(); - echo "<P>"; - -} - - - -// -// 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 "<div class='liste'>"; - echo "<table width='100%' cellpadding='3' cellspacing='0' border='0' background=''>"; - $table = ''; - while ($row = spip_fetch_array($result)) { - $vals = ''; - $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')"; - - $query2 = "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"; - $result2 = spip_query($query2); - if ($result2) list($nombre_articles) = spip_fetch_array($result2); - else $nombre_articles = 0; - - $url_auteur = "auteurs_edit.php3?id_auteur=$id_auteur"; - - $vals[] = bonhomme_statut($row); - - $vals[] = "<A HREF=\"$url_auteur\"$bio_auteur>".typo($nom_auteur)."</A>"; - - $vals[] = bouton_imessage($id_auteur); - - - - if ($email_auteur) $vals[] = "<A HREF='mailto:$email_auteur'>"._T('email')."</A>"; - else $vals[] = " "; - - if ($url_site_auteur) $vals[] = "<A HREF='$url_site_auteur'>"._T('info_site_min')."</A>"; - 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[] = "<A HREF='articles.php3?id_article=$id_article&supp_auteur=$id_auteur#auteurs'>"._T('lien_retirer_auteur')." ". http_img_pack('croix-rouge.gif', "X", "width='7' height='7' border='0' align='middle'") . "</A>"; - } else { - $vals[] = ""; - } - - $table[] = $vals; - } - - - $largeurs = array('14', '', '', '', '', '', ''); - $styles = array('arial11', 'arial2', 'arial11', 'arial11', 'arial11', 'arial11', 'arial1'); - afficher_liste($largeurs, $table, $styles); - - - echo "</table></div>\n"; - - $les_auteurs = join(',', $les_auteurs); -} - - -// -// Ajouter un auteur -// - -if ($flag_editable AND $options == 'avancees') { - echo debut_block_invisible("auteursarticle"); - - $query = "SELECT * FROM spip_auteurs WHERE "; - if ($les_auteurs) $query .= "id_auteur NOT IN ($les_auteurs) AND "; - $query .= "statut!='5poubelle' AND statut!='6forum' AND statut!='nouveau' ORDER BY statut, nom"; - $result = spip_query($query); - - echo "<table width='100%'>"; - echo "<tr>"; - - if ($connect_statut == '0minirezo' - AND acces_rubrique($rubrique_article) - AND $options == "avancees" - AND !$supprimer_bouton_creer_auteur) { - echo "<td width='200'>"; - $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 "</td>"; - echo "<td width='20'> </td>"; - } - - echo "<td>"; - - - if (spip_num_rows($result) > 0) { - echo "<FORM ACTION='articles.php3?id_article=$id_article#auteurs' METHOD='post'>"; - echo "<span class='verdana1'><B>"._T('titre_cadre_ajouter_auteur')." </B></span>\n"; - echo "<DIV><INPUT TYPE='Hidden' NAME='id_article' VALUE=\"$id_article\">"; - - if (spip_num_rows($result) > 200) { - echo "<INPUT TYPE='text' NAME='cherche_auteur' onClick=\"setvisibility('valider_ajouter_auteur','visible');\" CLASS='fondl' VALUE='' SIZE='20'>"; - echo "<span class='visible_au_chargement' id='valider_ajouter_auteur'>"; - echo " <INPUT TYPE='submit' NAME='Chercher' VALUE='"._T('bouton_chercher')."' CLASS='fondo'>"; - echo "</span>"; - } - else { - echo "<INPUT TYPE='Hidden' NAME='ajout_auteur' VALUE='oui'>"; - echo "<SELECT NAME='nouv_auteur' SIZE='1' STYLE='width:150px;' CLASS='fondl' onChange=\"setvisibility('valider_ajouter_auteur','visible');\">"; - $group = false; - $group2 = false; - - while ($row = spip_fetch_array($result)) { - $id_auteur = $row["id_auteur"]; - $nom = $row["nom"]; - $email = $row["email"]; - $statut = $row["statut"]; - - $statut=str_replace("0minirezo", _T('info_administrateurs'), $statut); - $statut=str_replace("1comite", _T('info_redacteurs'), $statut); - $statut=str_replace("6visiteur", _T('info_visiteurs'), $statut); - - $premiere = strtoupper(substr(trim($nom), 0, 1)); - - if ($connect_statut != '0minirezo') - if ($p = strpos($email, '@')) - $email = substr($email, 0, $p).'@...'; - if ($email) - $email = " ($email)"; - - if ($statut != $statut_old) { - echo "\n<OPTION VALUE=\"x\">"; - echo "\n<OPTION VALUE=\"x\" style='background-color: $couleur_claire;'> $statut"; - } - - if ($premiere != $premiere_old AND ($statut != _T('info_administrateurs') OR !$premiere_old)) { - echo "\n<OPTION VALUE=\"x\">"; - } - - $texte_option = supprimer_tags(couper(typo("$nom$email"), 40)); - echo "\n<OPTION VALUE=\"$id_auteur\"> $texte_option"; - $statut_old = $statut; - $premiere_old = $premiere; - } - - echo "</SELECT>"; - echo "<span class='visible_au_chargement' id='valider_ajouter_auteur'>"; - echo " <INPUT TYPE='submit' NAME='Ajouter' VALUE="._T('bouton_ajouter')." CLASS='fondo'>"; - echo "</span>"; - } - echo "</div></FORM>"; - } - - echo "</td></tr></table>"; - - - echo fin_block(); -} - -fin_cadre_enfonce(false); - - -////////////////////////////////////////////////////// -// Liste des mots-cles de l'article -// - -if ($options == 'avancees' AND $articles_mots != 'non') { - formulaire_mots('articles', $id_article, $nouv_mot, $supp_mot, $cherche_mot, $flag_editable); -} - - -// -// Langue de l'article -// -if ((lire_meta('multi_articles') == 'oui') - OR ((lire_meta('multi_rubriques') == 'oui') AND (lire_meta('gerer_trad') == 'oui'))) { - - $row = spip_fetch_array(spip_query("SELECT lang, langue_choisie FROM spip_articles WHERE id_article=$id_article")); - $langue_article = $row['lang']; - $langue_choisie_article = $row['langue_choisie']; - - if (lire_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 (lire_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']; - - if ($langue_choisie_article == 'oui') $herit = false; - else $herit = true; - - debut_cadre_couleur(); - echo "<div style='text-align: center;'>"; - echo menu_langues('changer_lang', $langue_article, _T('info_multi_cet_article').' ', $langue_parent); - echo "</div>\n"; - fin_cadre_couleur(); - - echo fin_block(); - } - - - // Gerer les groupes de traductions - if (lire_meta('gerer_trad') == 'oui') { - if ($flag_editable AND $supp_trad == 'oui') { // Ne plus lier a un groupe de trad - spip_query("UPDATE spip_articles SET id_trad = '0' 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' 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 WHERE id_trad = $id_trad_old"); - $id_trad = $id_trad_new; - } - - if ($flag_editable AND $lier_trad > 0) { // Lier a un groupe de trad - $query_lier = "SELECT id_trad FROM spip_articles WHERE id_article=$lier_trad"; - $result_lier = spip_query($query_lier); - 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 = "<div>"._T('trad_deja_traduit')."</div>"; - $nouveau_trad = $id_lier; - } - - spip_query("UPDATE spip_articles SET id_trad = $nouveau_trad WHERE id_article = $lier_trad"); - if ($id_lier > 0) spip_query("UPDATE spip_articles SET id_trad = $nouveau_trad WHERE id_trad = $id_lier"); - spip_query("UPDATE spip_articles SET id_trad = $nouveau_trad WHERE id_article = $id_article"); - if ($id_trad > 0) spip_query("UPDATE spip_articles SET id_trad = $nouveau_trad WHERE id_trad = $id_trad"); - - $id_trad = $nouveau_trad; - } - else - $err .= "<div>"._T('trad_article_inexistant')."</div>"; - - if ($err) echo "<font color='red' size=2' face='verdana,arial,helvetica,sans-serif'>$err</font>"; - } - - - // Afficher la liste des traductions - if ($id_trad != 0) { - $query_trad = "SELECT id_article, titre, lang, statut FROM spip_articles WHERE id_trad = $id_trad"; - $result_trad = spip_query($query_trad); - - - $table=''; - while ($row = spip_fetch_array($result_trad)) { - $vals = ''; - $id_article_trad = $row["id_article"]; - $titre_trad = $row["titre"]; - $lang_trad = $row["lang"]; - $statut_trad = $row["statut"]; - - changer_typo($lang_trad); - $titre_trad = "<span $dir_lang>$titre_trad</span>"; - - 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 = "<b>$titre_trad</b>"; - } else { - if ($connect_statut=='0minirezo' - AND $connect_toutes_rubriques) - $vals[] = "<a href='articles.php3?id_article=$id_article&id_trad_old=$id_trad&id_trad_new=$id_article_trad'>". - http_img_pack('langues-off-12.gif', _T('trad_reference'), "width='12' height='12' border='0'", _T('trad_reference')) . "</a>"; - else $vals[] = http_img_pack('langues-off-12.gif', "", "width='12' height='12' border='0'"); - } - - $ret .= "</td>"; - - $s = typo($titre_trad); - if ($id_article_trad != $id_article) - $s = "<a href='articles.php3?id_article=$id_article_trad'>$s</a>"; - 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 "<div class='liste'>"; - bandeau_titre_boite2(_T('trad_article_traduction'),''); - echo "<table width='100%' cellspacing='0' border='0' cellpadding='2'>"; - //echo "<tr bgcolor='#eeeecc'><td colspan='4' class='serif2'><b>"._T('trad_article_traduction')."</b></td></tr>"; - - $largeurs = array(7, 12, '', 100); - $styles = array('', '', 'arial2', 'arial2'); - afficher_liste($largeurs, $table, $styles); - - echo "</table>"; - echo "</div>"; - - } - - changer_typo($langue_article); - } - - echo debut_block_invisible('lier_traductions'); - - echo "<table width='100%'><tr>"; - if ($flag_editable AND $options == "avancees" AND !$ret) { - // Formulaire pour lier a un article - echo "<td class='arial2' width='60%'>"; - $lien = $GLOBALS['clean_link']; - $lien->delVar($nom_select); - $lien = $lien->getUrl(); - - echo "<form action='$lien' method='post' style='margin:0px; padding:0px;'>"; - echo _T('trad_lier'); - echo "<div align='$spip_lang_right'><input type='text' class='fondl' name='lier_trad' size='5'> <INPUT TYPE='submit' NAME='Valider' VALUE='"._T('bouton_valider')."' CLASS='fondl'></div>"; - echo "</form>"; - echo "</td>\n"; - echo "<td background='' width='10'> </td>"; - echo "<td background='" . _DIR_IMG_PACK . "tirets-separation.gif' width='2'>". http_img_pack('rien.gif', " ", "width='2' height='2'") . "</td>"; - echo "<td background='' width='10'> </td>"; - } - echo "<td>"; - icone_horizontale(_T('trad_new'), "articles_edit.php3?new=oui&lier_trad=$id_article&id_rubrique=$id_rubrique", "traductions-24.gif", "creer.gif"); - echo "</td>"; - if ($flag_editable AND $options == "avancees" AND $ret) { - echo "<td background='' width='10'> </td>"; - echo "<td background='" . _DIR_IMG_PACK . "tirets-separation.gif' width='2'>". http_img_pack('rien.gif', " ", "width='2' height='2'") . "</td>"; - echo "<td background='' width='10'> </td>"; - echo "<td>"; - icone_horizontale(_T('trad_delier'), "articles.php3?id_article=$id_article&supp_trad=oui", "traductions-24.gif", "supprimer.gif"); - echo "</td>\n"; - } - - echo "</tr></table>"; - - echo fin_block(); - } - - fin_cadre_enfonce(); -} - - - -////////////////////////////////////////////////////// -// Modifier le statut de l'article -// - - -?> -<script type='text/javascript'> -<!-- -function puce_statut(selection){ - if (selection=="publie"){ - return "puce-verte.gif"; - } - if (selection=="prepa"){ - return "puce-blanche.gif"; - } - if (selection=="prop"){ - return "puce-orange.gif"; - } - if (selection=="refuse"){ - return "puce-rouge.gif"; - } - if (selection=="poubelle"){ - return "puce-poubelle.gif"; - } -} -// --> -</script> -<?php - -if ($connect_statut == '0minirezo' AND acces_rubrique($rubrique_article)) { - echo "<FORM ACTION='articles.php3' METHOD='get'>"; - debut_cadre_relief("racine-site-24.gif"); - echo "<CENTER>"; - - echo "<INPUT TYPE='Hidden' NAME='id_article' VALUE=\"$id_article\">"; - - echo "<B>"._T('texte_article_statut')."</B> "; - - // $statut_url_javascript="\"articles.php3?id_article=$id_article&methode=image&alea=\"+Math.random()+\"&statut_nouv=\"+options[selectedIndex].value"; - $statut_url_javascript="'" . _DIR_IMG_PACK . "' + puce_statut(options[selectedIndex].value);"; - echo "<SELECT NAME='statut_nouv' SIZE='1' CLASS='fondl' onChange=\"document.statut.src=$statut_url_javascript; setvisibility('valider_statut', 'visible');\">"; - echo "<OPTION" . mySel("prepa", $statut_article) ." style='background-color: white'>"._T('texte_statut_en_cours_redaction')."\n"; - echo "<OPTION" . mySel("prop", $statut_article) . " style='background-color: #FFF1C6'>"._T('texte_statut_propose_evaluation')."\n"; - echo "<OPTION" . mySel("publie", $statut_article) . " style='background-color: #B4E8C5'>"._T('texte_statut_publie')."\n"; - echo "<OPTION" . mySel("poubelle", $statut_article) - . http_style_background('rayures-sup.gif') . '>' ._T('texte_statut_poubelle')."\n"; - echo "<OPTION" . mySel("refuse", $statut_article) . " style='background-color: #FFA4A4'>"._T('texte_statut_refuse')."\n"; - echo "</SELECT>"; - - echo " ". http_img_pack("puce-".puce_statut($statut_article).'.gif', "", "border='0' NAME='statut'") . " "; - - // echo "<noscript><INPUT TYPE='submit' NAME='Valider' VALUE='"._T('bouton_valider')."' CLASS='fondo'></noscript>"; - echo "<span class='visible_au_chargement' id='valider_statut'>"; - echo "<INPUT TYPE='submit' NAME='Valider' VALUE='"._T('bouton_valider')."' CLASS='fondo'>"; - echo "</span>"; - echo aide ("artstatut"); - echo "</CENTER>"; - fin_cadre_relief(); - echo "</FORM>"; -} - - - -////////////////////////////////////////////////////// -// Corps de l'article -// - -echo "\n\n<div align='justify' style='padding: 10px;'>"; - -if ($virtuel) { - debut_boite_info(); - echo _T('info_renvoi_article')." ".propre("<center>[->$virtuel]</center>"); - fin_boite_info(); -} -else { - $revision_nbsp = $activer_revision_nbsp; - - if (strlen($chapo) > 0) { - echo "<div $dir_lang style='font-size: small;'><b>"; - echo propre($chapo); - echo "</b></div>\n\n"; - } - - echo "<div $dir_lang style='font-size: small;'>"; -# echo reduire_image(propre($texte), 500,10000); - echo propre($texte); - echo "<br clear='both' />"; - echo "</div>"; - - if ($ps) { - echo debut_cadre_enfonce(); - echo "<div $dir_lang><font size=2 face='Verdana,Arial,Sans,sans-serif'>"; - echo justifier("<b>"._T('info_ps')."</b> ".propre($ps)); - echo "</font></div>"; - echo fin_cadre_enfonce(); - } - $revision_nbsp = false; - - if ($les_notes) { - echo debut_cadre_relief(); - echo "<div $dir_lang class='arial11'>"; - echo justifier("<b>"._T('info_notes')." :</b> ".$les_notes); - echo "</div>"; - echo fin_cadre_relief(); - } - - if ($champs_extra AND $extra) { - include_ecrire("inc_extra.php3"); - extra_affichage($extra, "articles"); - } -} - -// -// Bouton "modifier cet article" -// - -if ($flag_editable) { - echo "\n\n<div align='$spip_lang_right'><br>"; - - if ($date_diff >= 0 AND $date_diff < 60 AND $auteur_modif > 0 AND $auteur_modif != $connect_id_auteur) { - $query_auteur = "SELECT * FROM spip_auteurs WHERE id_auteur='$auteur_modif'"; - $result_auteur = spip_query($query_auteur); - while ($row_auteur = spip_fetch_array($result_auteur)) { - $nom_auteur_modif = typo($row_auteur["nom"]); - } - icone(_T('icone_modifier_article'), "articles_edit.php3?id_article=$id_article", "warning-24.gif", ""); - echo "<font face='arial,helvetica,sans-serif' size=1>"._T('texte_travail_article', array('nom_auteur_modif' => $nom_auteur_modif, 'date_diff' => $date_diff))."</font>"; - echo aide("artmodif"); - } - else { - icone(_T('icone_modifier_article'), "articles_edit.php3?id_article=$id_article", "article-24.gif", "edit.gif"); - } - - echo "</div>"; -} - - - - - -// -// 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 "<P>"; - debut_cadre_relief(); - echo "<center>"; - echo "<B>"._T('texte_proposer_publication')."</B>"; - echo aide ("artprop"); - bouton(_T('bouton_demande_publication'), "articles.php3?id_article=$id_article&statut_nouv=prop"); - echo "</center>"; - fin_cadre_relief(); -} - -echo "</div>"; - -echo "</div>"; -fin_cadre_relief(); - -// -// Forums -// - -echo "<BR><BR>"; - -$forum_retour = urlencode("articles.php3?id_article=$id_article"); - - -echo "\n<div align='center'>"; - icone(_T('icone_poster_message'), "forum_envoi.php3?statut=prive&adresse_retour=".$forum_retour."&id_article=$id_article&titre_message=".urlencode($titre), "forum-interne-24.gif", "creer.gif"); -echo "</div>"; - -echo "<P align='$spip_lang_left'>"; - - -$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 "<div class='serif2' align='center'>"; - for ($i = 0; $i < $total; $i = $i + $total_afficher){ - $y = $i + $total_afficher - 1; - if ($i == $debut) - echo "<FONT SIZE=3><B>[$i-$y]</B></FONT> "; - else - echo "[<A HREF='articles.php3?id_article=$id_article&debut=$i'>$i-$y</A>] "; - } - echo "</div>"; -} - - - -$query_forum = "SELECT * FROM spip_forum WHERE statut='prive' AND id_article='$id_article' AND id_parent=0 ORDER BY date_heure DESC LIMIT " - . (!$debut ? $total_afficher : "$debut,$total_afficher"); -$result_forum = spip_query($query_forum); -afficher_forum($result_forum, $forum_retour); - - -if (!$debut) $debut = 0; -$total_afficher = 8; -if ($total > $total_afficher) { - echo "<div class='serif2' align='center'>"; - for ($i = 0; $i < $total; $i = $i + $total_afficher){ - $y = $i + $total_afficher - 1; - if ($i == $debut) - echo "<FONT SIZE=3><B>[$i-$y]</B></FONT> "; - else - echo "[<A HREF='articles.php3?id_article=$id_article&debut=$i'>$i-$y</A>] "; - } - echo "</div>"; -} - - -echo "</div>\n"; - -fin_page(); +$var_nom($id_article, $ajout_auteur, $articles_mots, $articles_redac, $articles_versions, $change_accepter_forum, $change_petition, $changer_virtuel, $cherche_auteur, $cherche_mot, $debut, $dir_lang, $email_unique, $flag_auteur, $flag_editable, $langue_article, $message, $nom_select, $nouv_auteur, $nouv_mot, $rubrique_article, $site_obli, $site_unique, $supp_auteur, $supp_mot, $texte_petition, $titre_article); // Taches lentes - if ($ok_nouveau_statut AND $statut_ancien != $statut_nouv) { cron_articles($id_article, $statut_nouv, $statut_ancien); } ?> - diff --git a/ecrire/inc_articles.php b/ecrire/inc_articles.php index 59930d79e6..f2385b3c3e 100644 --- a/ecrire/inc_articles.php +++ b/ecrire/inc_articles.php @@ -10,6 +10,462 @@ * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * \***************************************************************************/ + // 28 paremetres, qui dit mieux ? + // moi ! elle en avait 61 en premiere approche + +function affiche_articles_dist($id_article, $ajout_auteur, $articles_mots, $articles_redac, $articles_versions, $change_accepter_forum, $change_petition, $changer_virtuel, $cherche_auteur, $cherche_mot, $debut, $dir_lang, $email_unique, $flag_auteur, $flag_editable, $langue_article, $message, $nom_select, $nouv_auteur, $nouv_mot, $rubrique_article, $site_obli, $site_unique, $supp_auteur, $supp_mot, $texte_petition, $titre_article) +{ + global $options, $spip_display, $spip_lang_left, $spip_lang_right; + +$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(); + +boite_info_articles($id_article, $statut_article, $visites, $articles_versions, $id_version); + +// +// Logos de l'article et Boites de configuration avancee +// + +boites_de_config_articles($id_article, $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); + + +echo "<div class='serif' align='$spip_lang_left'>"; + +dates_articles($id_article, $flag_editable, $statut_article, $articles_redac, $date,$annee, $mois, $jour, $heure, $minute, $annee_redac, $mois_redac, $jour_redac, $heure_redac, $minute_redac); + +// +// Liste des auteurs de l'article +// + +echo "<a name='auteurs'></a>"; + +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, $ajout_auteur, $flag_editable, $nouv_auteur, $supp_auteur); + +// +// Afficher les auteurs +// + +$les_auteurs = afficher_auteurs_articles($id_article, $flag_editable); + +// +// Ajouter un auteur +// + +ajouter_auteurs_articles($id_article, $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 $articles_mots != 'non') { + formulaire_mots('articles', $id_article, $nouv_mot, $supp_mot, $cherche_mot, $flag_editable); +} + +langues_articles($id_article, $langue_article, $flag_editable, $id_rubrique, $id_trad, $dir_lang, $nom_select); + + +afficher_statut_articles($id_article, $rubrique_article, $statut_article); + + +afficher_corps_articles($virtuel, $chapo, $texte, $ps); + +if ($flag_editable) { + echo "\n\n<div align='$spip_lang_right'><br />"; + bouton_modifier_articles($id_article, $modif,_T('texte_travail_article', $modif), "warning-24.gif", ""); + echo "</div>"; +} + +// +// 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 "<P>"; + debut_cadre_relief(); + echo "<center>"; + echo "<B>"._T('texte_proposer_publication')."</B>"; + echo aide ("artprop"); + bouton(_T('bouton_demande_publication'), "articles.php3?id_article=$id_article&statut_nouv=prop"); + echo "</center>"; + fin_cadre_relief(); +} + +echo "</div>"; + +echo "</div>"; +fin_cadre_relief(); + +affiche_forums_article($id_article, $titre, $debut); + +fin_page(); + +} + +function boite_info_articles($id_article, $statut_article, $visites, $articles_versions, $id_version) +{ + global $connect_statut, $options; + + debut_boite_info(); + + echo "<div align='center'>\n"; + + echo "<font face='Verdana,Arial,Sans,sans-serif' size='1'><b>"._T('info_numero_article')."</b></font>\n"; + echo "<br><font face='Verdana,Arial,Sans,sans-serif' size='6'><b>$id_article</b></font>\n"; + + voir_en_ligne ('article', $id_article, $statut_article); + + + $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"); +} + + if ($articles_versions AND $id_version>1 AND $options == "avancees") { + icone_horizontale(_T('info_historique_lien'), "articles_versions.php3?id_article=$id_article", "historique-24.gif", "rien.gif"); +} + + // Correction orthographique + if (lire_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'), "articles_ortho.php?id_article=$id_article", "ortho-24.gif", "rien.gif", 'echo', $js_ortho); + } + + echo "</div>\n"; + + fin_boite_info(); +} + +function boites_de_config_articles($id_article, $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')); + + +// +// Boites de configuration avancee +// + + if ($options == "avancees" && $connect_statut=='0minirezo' && $flag_editable) { + echo "<p>"; + 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 "<div class='verdana1' style='text-align: center;'><b>"; + if ($visible) + echo bouton_block_visible("forumpetition"); + else + echo bouton_block_invisible("forumpetition"); + echo _T('bouton_forum_petition') .aide('confforums'); + echo "</b></div>"; + if ($visible) + echo debut_block_visible("forumpetition"); + else + echo debut_block_invisible("forumpetition"); + + + echo "<font face='Verdana,Arial,Sans,sans-serif' size='1'>\n"; + + + // Forums + + if ($nb_forums) { + echo "<br />\n"; + icone_horizontale(_T('icone_suivi_forum', array('nb_forums' => $nb_forums)), + "articles_forum.php3?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); + + + // 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); + } + } + + $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 "\n<form action='".$GLOBALS['clean_link']->getUrl() + ."' method='POST'>"; + echo "\n<input type='hidden' name='id_article' value='$id_article'>"; + + echo "<select name='change_petition' + class='fondl' style='font-size:10px;' + onChange=\"setvisibility('valider_petition', 'visible');\" + >\n"; + + if ($petition) { + $menu = array( + 'on' => _T('bouton_radio_petition_activee'), + 'off'=> _T('bouton_radio_supprimer_petition') + ); + $val_menu = 'on'; + } else { + $menu = array( + 'off'=> _T('bouton_radio_pas_petition'), + 'on' => _T('bouton_radio_activer_petition') + ); + $val_menu = 'off'; + } + + + foreach ($menu as $val => $desc) { + echo "<option"; + if ($val_menu == $val) + echo " selected"; + echo " value='$val'>".$desc."</option>\n"; + } + echo "</select>\n"; + + if ($petition) { + if ($nb_signatures) { + echo "<br />\n"; + icone_horizontale($nb_signatures.' '. _T('info_signatures'), + "controle_petition.php3?id_article=$id_article", "suivi-petition-24.gif", ""); + } + + echo "<br />\n"; + + if ($email_unique=="oui") + echo "<input type='checkbox' name='email_unique' value='oui' id='emailunique' checked>"; + else + echo "<input type='checkbox' name='email_unique' value='oui' id='emailunique'>"; + echo " <label for='emailunique'>"._T('bouton_checkbox_signature_unique_email')."</label><BR>"; + if ($site_obli=="oui") + echo "<input type='checkbox' name='site_obli' value='oui' id='siteobli' checked>"; + else + echo "<input type='checkbox' name='site_obli' value='oui' id='siteobli'>"; + echo " <label for='siteobli'>"._T('bouton_checkbox_indiquer_site')."</label><BR>"; + if ($site_unique=="oui") + echo "<input type='checkbox' name='site_unique' value='oui' id='siteunique' checked>"; + else + echo "<input type='checkbox' name='site_unique' value='oui' id='siteunique'>"; + echo " <label for='siteunique'>"._T('bouton_checkbox_signature_unique_site')."</label><BR>"; + if ($message=="oui") + echo "<input type='checkbox' name='message' value='oui' id='message' checked>"; + else + echo "<input type='checkbox' name='message' value='oui' id='message'>"; + echo " <label for='message'>"._T('bouton_checkbox_envoi_message')."</label>"; + + echo "<P>"._T('texte_descriptif_petition')." :<BR>"; + echo "<TEXTAREA NAME='texte_petition' CLASS='forml' ROWS='4' COLS='10' wrap=soft>"; + echo $texte_petition; + echo "</TEXTAREA><P>\n"; + + echo "<P align='$spip_lang_right'>"; + } + + if (!$petition) echo "<span class='visible_au_chargement' id='valider_petition'>"; + echo "<INPUT TYPE='submit' NAME='Changer' CLASS='fondo' VALUE='"._T('bouton_changer')."' STYLE='font-size:10px'>"; + if (!$petition) echo "</span>"; + echo "</FORM>"; + + echo "</font>"; + echo fin_block(); + + fin_cadre_relief(); + + + + // Redirection (article virtuel) + debut_cadre_relief("site-24.gif"); + $visible = ($changer_virtuel || $virtuel); + + echo "<div class='verdana1' style='text-align: center;'><b>"; + if ($visible) + echo bouton_block_visible("redirection"); + else + echo bouton_block_invisible("redirection"); + echo _T('bouton_redirection'); + echo aide ("artvirt"); + echo "</b></div>"; + if ($visible) + echo debut_block_visible("redirection"); + else + echo debut_block_invisible("redirection"); + + echo "<form action='articles.php3?id_article=$id_article' method='post'>"; + echo "\n<INPUT TYPE='hidden' NAME='id_article' VALUE='$id_article'>"; + echo "\n<INPUT TYPE='hidden' NAME='changer_virtuel' VALUE='oui'>"; + $virtuelhttp = ($virtuel ? "" : "http://"); + + echo "<INPUT TYPE='text' NAME='virtuel' CLASS='formo' style='font-size:9px;' VALUE=\"$virtuelhttp$virtuel\" SIZE='40'><br>"; + echo "<font face='Verdana,Arial,Sans,sans-serif' size=2>"; + echo "(<b>"._T('texte_article_virtuel')." :</b> "._T('texte_reference_mais_redirige').")"; + echo "</font>"; + echo "<div align='$spip_lang_right'><INPUT TYPE='submit' NAME='Changer' CLASS='fondo' VALUE='"._T('bouton_changer')."' STYLE='font-size:10px'></div>"; + echo "</form>"; + echo fin_block(); + + fin_cadre_relief(); + } + +// +// Articles dans la meme rubrique +// + +meme_rubrique_articles($id_rubrique, $id_article, $options); + +} + + function changer_statut_articles($id_article, $statut) { spip_log("arti $id_article, $statut"); @@ -57,4 +513,873 @@ function cron_articles($id_article, $statut, $statut_ancien) } } +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 "<div> </div>"; + echo "<div class='bandeau_rubriques' style='z-index: 1;'>"; + bandeau_titre_boite2(_T('info_meme_rubrique'), "article-24.gif"); + echo "<div class='plan-articles'>"; + 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 = "<div class='arial1' style='float: $spip_lang_right; color: black; padding-$spip_lang_left: 4px;'><b>"._T('info_numero_abbreviation')."$ze_article</b></div>"; + } + echo "<a class='$ze_statut' style='font-size: 10px;' href='articles.php3?id_article=$ze_article'>$numero$ze_titre</a>"; + } + echo "</div>"; + echo "</div>"; + } +} + +function bouton_modifier_articles($id_article, $flag_modif, $mode, $ip, $im) +{ + if ($flag_modif) { + icone(_T('icone_modifier_article'), "articles_edit.php3?id_article=$id_article", $ip, $im); + echo "<font face='arial,helvetica,sans-serif' size='2'>$mode</font>"; + echo aide("artmodif"); + } + else { + icone(_T('icone_modifier_article'), "articles_edit.php3?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) +{ + global $dir_lang, $spip_lang_left, $connect_id_auteur; + + $logo_statut = "puce-".puce_statut($statut_article).".gif"; + + echo "\n<table cellpadding=0 cellspacing=0 border=0 width='100%'>"; + echo "<tr width='100%'><td width='100%' valign='top'>"; + + if ($surtitre) { + echo "<span $dir_lang><font face='arial,helvetica' size=3><b>"; + echo typo($surtitre); + echo "</b></font></span>\n"; + } + + gros_titre($titre, $logo_statut); + + if ($soustitre) { + echo "<span $dir_lang><font face='arial,helvetica' size=3><b>"; + echo typo($soustitre); + echo "</b></font></span>\n"; + } + + + if ($descriptif OR $url_site OR $nom_site) { + echo "<p><div align='$spip_lang_left' style='padding: 5px; border: 1px dashed #aaaaaa; background-color: #e4e4e4;' $dir_lang>"; + echo "<font size=2 face='Verdana,Arial,Sans,sans-serif'>"; + $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 "</font>"; + echo "</div>"; + } + + + if ($statut_article == 'prop') { + echo "<P><FONT FACE='Verdana,Arial,Sans,sans-serif' SIZE=2 COLOR='red'><B>"._T('text_article_propose_publication')."</B></FONT></P>"; + } + + echo "</td>"; + + $flag_modif = false; + + if ($flag_editable) { + echo "<td>". http_img_pack('rien.gif', " ", "width='5'") . "</td>\n"; + echo "<td align='center'>"; + + // 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) { + $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"]); + } + $modif = array('nom_auteur_modif' => $nom_auteur_modif, 'date_diff' => $date_diff); + } + } + } + bouton_modifier_articles($id_article, $modif, _T('avis_article_modifie', $modif), "article-24.gif", "edit.gif"); + + echo "</td>"; + } + echo "</tr></table>\n"; + echo "<div> </div>"; + return $modif; +} + + +function dates_articles($id_article, $flag_editable, $statut_article, $articles_redac, $date,$annee, $mois, $jour, $heure, $minute, $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 "<FORM ACTION='articles.php3' METHOD='GET' style='margin: 0px; padding: 0px;'>"; + echo "<INPUT TYPE='hidden' NAME='id_article' VALUE='$id_article'>"; + + if ($statut_article == 'publie') { + + echo "<div><b>"; + echo bouton_block_invisible("datepub"); + echo "<span class='verdana1'>"._T('texte_date_publication_article').'</span> '; + echo majuscules(affdate($date)), + "</b>".aide('artdate')."</div>"; + + echo debut_block_invisible("datepub"), + "<div style='margin: 5px; margin-$spip_lang_left: 20px;'>", + 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')\""), + "<span class='visible_au_chargement' id='valider_date'>", + " <INPUT TYPE='submit' NAME='Changer' CLASS='fondo' VALUE='"._T('bouton_changer')."'>", + "</span>", + "</div>", + fin_block(); + } + else { + echo "<div><b> <span class='verdana1'>"._T('texte_date_creation_article').'</span> '; + echo majuscules(affdate($date))."</b>".aide('artdate')."</div>"; + } + + $possedeDateRedac=($annee_redac.'-'.$mois_redac.'-'.$jour_redac != '0000-00-00'); + if (($options == 'avancees' AND $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 "<div><b>"; + echo bouton_block_invisible('dateredac'); + echo "<span class='verdana1'>" + . majuscules(_T('texte_date_publication_anterieure')) + .'</span> '. $date_affichee ." ".aide('artdate_redac')."</b></div>"; + + echo debut_block_invisible('dateredac'); + echo "<div style='margin: 5px; margin-$spip_lang_left: 20px;'>"; + echo '<table cellpadding="0" cellspacing="0" border="0" width="100%">'; + echo '<tr><td align="$spip_lang_left">'; + echo '<input type="radio" name="avec_redac" value="non" id="avec_redac_on"'; + if (!$possedeDateRedac) echo ' checked="checked"'; + echo " onClick=\"setvisibility('valider_date_prec', 'visible')\""; + echo ' /> <label for="avec_redac_on">'._T('texte_date_publication_anterieure_nonaffichee').'</label>'; + echo '<br /><input type="radio" name="avec_redac" value="oui" id="avec_redac_off"'; + if ($possedeDateRedac) echo ' checked="checked"'; + echo " onClick=\"setvisibility('valider_date_prec', 'visible')\""; + echo ' /> <label for="avec_redac_off">'._T('bouton_radio_afficher').' :</label> ', + 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 "<input type='text' name='annee_redac' class='fondl' value='".$annee_redac."' size='5' maxlength='4' onClick=\"setvisibility('valider_date_prec', 'visible')\"/>"; + + echo '<div align="center">', + 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), + "</div>\n"; + + echo '</td><td align="$spip_lang_right">'; + echo "<span class='visible_au_chargement' id='valider_date_prec'>"; + echo '<input type="submit" name="Changer" class="fondo" value="'._T('bouton_changer').'" />'; + echo "</span>"; + echo '</td></tr>'; + echo '</table>'; + echo "</div>"; + echo fin_block(); + } + + echo "</FORM>"; + 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 "<div style='text-align:center;'><b> <span class='verdana1'>$texte_date</span> "; + echo majuscules(affdate($date))."</b>".aide('artdate')."</div>"; + + + if ($annee_redac.'-'.$mois_redac.'-'.$jour_redac != '0000-00-00') { + $date_affichee = ' : '.majuscules(affdate($date_redac)); + echo "<div style='text-align:center;'><b> <span class='verdana1'>"._T(texte_date_publication_anterieure)."</span> "; + echo $date_affichee."</b>".aide('artdate_redac')."</div>"; + } + + fin_cadre_couleur(); + } +} + + +function langues_articles($id_article, $langue_article, $flag_editable, $id_rubrique, $id_trad, $dir_lang, $nom_select) +{ + + global $connect_statut, $couleur_claire, $options, $connect_toutes_rubriques; + + if ((lire_meta('multi_articles') == 'oui') + OR ((lire_meta('multi_rubriques') == 'oui') AND (lire_meta('gerer_trad') == 'oui'))) { + + $row = spip_fetch_array(spip_query("SELECT lang, langue_choisie FROM spip_articles WHERE id_article=$id_article")); + $langue_article = $row['lang']; + $langue_choisie_article = $row['langue_choisie']; + + if (lire_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 (lire_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']; + + if ($langue_choisie_article == 'oui') $herit = false; + else $herit = true; + + debut_cadre_couleur(); + echo "<div style='text-align: center;'>"; + echo menu_langues('changer_lang', $langue_article, _T('info_multi_cet_article').' ', $langue_parent); + echo "</div>\n"; + fin_cadre_couleur(); + + echo fin_block(); + } + + + // Gerer les groupes de traductions + if (lire_meta('gerer_trad') == 'oui') { + if ($flag_editable AND $supp_trad == 'oui') { // Ne plus lier a un groupe de trad + spip_query("UPDATE spip_articles SET id_trad = '0' 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' 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 WHERE id_trad = $id_trad_old"); + $id_trad = $id_trad_new; + } + + if ($flag_editable AND $lier_trad > 0) { // Lier a un groupe de trad + $query_lier = "SELECT id_trad FROM spip_articles WHERE id_article=$lier_trad"; + $result_lier = spip_query($query_lier); + 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 = "<div>"._T('trad_deja_traduit')."</div>"; + $nouveau_trad = $id_lier; + } + + spip_query("UPDATE spip_articles SET id_trad = $nouveau_trad WHERE id_article = $lier_trad"); + if ($id_lier > 0) spip_query("UPDATE spip_articles SET id_trad = $nouveau_trad WHERE id_trad = $id_lier"); + spip_query("UPDATE spip_articles SET id_trad = $nouveau_trad WHERE id_article = $id_article"); + if ($id_trad > 0) spip_query("UPDATE spip_articles SET id_trad = $nouveau_trad WHERE id_trad = $id_trad"); + + $id_trad = $nouveau_trad; + } + else + $err .= "<div>"._T('trad_article_inexistant')."</div>"; + + if ($err) echo "<font color='red' size=2' face='verdana,arial,helvetica,sans-serif'>$err</font>"; + } + + + // Afficher la liste des traductions + if ($id_trad != 0) { + $query_trad = "SELECT id_article, titre, lang, statut FROM spip_articles WHERE id_trad = $id_trad"; + $result_trad = spip_query($query_trad); + + + $table=''; + while ($row = spip_fetch_array($result_trad)) { + $vals = ''; + $id_article_trad = $row["id_article"]; + $titre_trad = $row["titre"]; + $lang_trad = $row["lang"]; + $statut_trad = $row["statut"]; + + changer_typo($lang_trad); + $titre_trad = "<span $dir_lang>$titre_trad</span>"; + + 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 = "<b>$titre_trad</b>"; + } else { + if ($connect_statut=='0minirezo' + AND $connect_toutes_rubriques) + $vals[] = "<a href='articles.php3?id_article=$id_article&id_trad_old=$id_trad&id_trad_new=$id_article_trad'>". + http_img_pack('langues-off-12.gif', _T('trad_reference'), "width='12' height='12' border='0'", _T('trad_reference')) . "</a>"; + else $vals[] = http_img_pack('langues-off-12.gif', "", "width='12' height='12' border='0'"); + } + + $ret .= "</td>"; + + $s = typo($titre_trad); + if ($id_article_trad != $id_article) + $s = "<a href='articles.php3?id_article=$id_article_trad'>$s</a>"; + 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 "<div class='liste'>"; + bandeau_titre_boite2(_T('trad_article_traduction'),''); + echo "<table width='100%' cellspacing='0' border='0' cellpadding='2'>"; + //echo "<tr bgcolor='#eeeecc'><td colspan='4' class='serif2'><b>"._T('trad_article_traduction')."</b></td></tr>"; + + $largeurs = array(7, 12, '', 100); + $styles = array('', '', 'arial2', 'arial2'); + afficher_liste($largeurs, $table, $styles); + + echo "</table>"; + echo "</div>"; + + } + + changer_typo($langue_article); + } + + echo debut_block_invisible('lier_traductions'); + + echo "<table width='100%'><tr>"; + if ($flag_editable AND $options == "avancees" AND !$ret) { + // Formulaire pour lier a un article + echo "<td class='arial2' width='60%'>"; + $lien = $GLOBALS['clean_link']; + $lien->delVar($nom_select); + $lien = $lien->getUrl(); + + echo "<form action='$lien' method='post' style='margin:0px; padding:0px;'>"; + echo _T('trad_lier'); + echo "<div align='$spip_lang_right'><input type='text' class='fondl' name='lier_trad' size='5'> <INPUT TYPE='submit' NAME='Valider' VALUE='"._T('bouton_valider')."' CLASS='fondl'></div>"; + echo "</form>"; + echo "</td>\n"; + echo "<td background='' width='10'> </td>"; + echo "<td background='" . _DIR_IMG_PACK . "tirets-separation.gif' width='2'>". http_img_pack('rien.gif', " ", "width='2' height='2'") . "</td>"; + echo "<td background='' width='10'> </td>"; + } + echo "<td>"; + icone_horizontale(_T('trad_new'), "articles_edit.php3?new=oui&lier_trad=$id_article&id_rubrique=$id_rubrique", "traductions-24.gif", "creer.gif"); + echo "</td>"; + if ($flag_editable AND $options == "avancees" AND $ret) { + echo "<td background='' width='10'> </td>"; + echo "<td background='" . _DIR_IMG_PACK . "tirets-separation.gif' width='2'>". http_img_pack('rien.gif', " ", "width='2' height='2'") . "</td>"; + echo "<td background='' width='10'> </td>"; + echo "<td>"; + icone_horizontale(_T('trad_delier'), "articles.php3?id_article=$id_article&supp_trad=oui", "traductions-24.gif", "supprimer.gif"); + echo "</td>\n"; + } + + echo "</tr></table>"; + + echo fin_block(); + } + + fin_cadre_enfonce(); + } +} + + + +function rechercher_auteurs_articles($cherche_auteur, $id_article, $ajout_auteur, $flag_editable, $nouv_auteur, $supp_auteur) +{ + global $spip_lang_left; + + $supprimer_bouton_creer_auteur = false; + + if ($cherche_auteur) { + echo "<P ALIGN='$spip_lang_left'>"; + $query = "SELECT id_auteur, nom FROM spip_auteurs"; + $result = spip_query($query); + $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 "<B>"._T('texte_aucun_resultat_auteur', array('cherche_auteur' => $cherche_auteur)).".</B><BR>"; + } + else if (count($resultat) == 1) { + $ajout_auteur = 'oui'; + list(, $nouv_auteur) = each($resultat); + echo "<B>"._T('texte_ajout_auteur')."</B><BR>"; + $query = "SELECT * FROM spip_auteurs WHERE id_auteur=$nouv_auteur"; + $result = spip_query($query); + echo "<UL>"; + while ($row = spip_fetch_array($result)) { + $id_auteur = $row['id_auteur']; + $nom_auteur = $row['nom']; + $email_auteur = $row['email']; + $bio_auteur = $row['bio']; + + echo "<LI><FONT FACE='Verdana,Arial,Sans,sans-serif' SIZE=2><B><FONT SIZE=3>".typo($nom_auteur)."</FONT></B>"; + echo "</FONT>\n"; + } + echo "</UL>"; + } + 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 "<B>"._T('texte_plusieurs_articles', array('cherche_auteur' => $cherche_auteur))."</B><BR>"; + $query = "SELECT * FROM spip_auteurs WHERE id_auteur IN ($les_auteurs) ORDER BY nom"; + $result = spip_query($query); + echo "<UL class='verdana1'>"; + while ($row = spip_fetch_array($result)) { + $id_auteur = $row['id_auteur']; + $nom_auteur = $row['nom']; + $email_auteur = $row['email']; + $bio_auteur = $row['bio']; + + echo "<li><b>".typo($nom_auteur)."</b>"; + + if ($email_auteur) echo " ($email_auteur)"; + echo " | <A HREF=\"articles.php3?id_article=$id_article&ajout_auteur=oui&nouv_auteur=$id_auteur#auteurs\">"._T('lien_ajouter_auteur')."</A>"; + + if (trim($bio_auteur)) { + echo "<br />".couper(propre($bio_auteur), 100)."\n"; + } + echo "</li>\n"; + } + echo "</UL>"; + } + } + else { + echo "<B>"._T('texte_trop_resultats_auteurs', array('cherche_auteur' => $cherche_auteur))."</B><BR>"; + } + + if ($GLOBALS['connect_statut'] == '0minirezo') { + echo "<div style='width: 200px;'>"; + $retour = urlencode($GLOBALS['clean_link']->getUrl()); + $titre = urlencode($cherche_auteur); + icone_horizontale(_T('icone_creer_auteur'), "auteur_infos.php3?new=oui&ajouter_id_article=$id_article&titre=$titre&redirect=$retour", "redacteurs-24.gif", "creer.gif"); + echo "</div> "; + + // message pour ne pas afficher le second bouton "creer un auteur" + $supprimer_bouton_creer_auteur = true; + } + + fin_boite_info(); + echo "<P>"; + + } + +// +// 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); + } + } + + return $supprimer_bouton_creer_auteur; +} + +function afficher_auteurs_articles($id_article, $flag_editable) +{ + global $connect_statut, $options,$connect_id_auteur; + + $les_auteurs = array(); + + $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 "<div class='liste'>"; + echo "<table width='100%' cellpadding='3' cellspacing='0' border='0' background=''>"; + $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')"; + + $query2 = "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"; + $result2 = spip_query($query2); + if ($result2) list($nombre_articles) = spip_fetch_array($result2); + else $nombre_articles = 0; + + $url_auteur = "auteurs_edit.php3?id_auteur=$id_auteur"; + + $vals[] = bonhomme_statut($row); + + $vals[] = "<A HREF=\"$url_auteur\"$bio_auteur>".typo($nom_auteur)."</A>"; + + $vals[] = bouton_imessage($id_auteur); + + + + if ($email_auteur) $vals[] = "<A HREF='mailto:$email_auteur'>"._T('email')."</A>"; + else $vals[] = " "; + + if ($url_site_auteur) $vals[] = "<A HREF='$url_site_auteur'>"._T('info_site_min')."</A>"; + 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[] = "<A HREF='articles.php3?id_article=$id_article&supp_auteur=$id_auteur#auteurs'>"._T('lien_retirer_auteur')." ". http_img_pack('croix-rouge.gif', "X", "width='7' height='7' border='0' align='middle'") . "</A>"; + } else { + $vals[] = ""; + } + + $table[] = $vals; + } + + + $largeurs = array('14', '', '', '', '', '', ''); + $styles = array('arial11', 'arial2', 'arial11', 'arial11', 'arial11', 'arial11', 'arial1'); + afficher_liste($largeurs, $table, $styles); + + + echo "</table></div>\n"; + + $les_auteurs = join(',', $les_auteurs); + } + return $les_auteurs ; +} + + +function ajouter_auteurs_articles($id_article, $les_auteurs, $flag_editable, $rubrique_article, $supprimer_bouton_creer_auteur) +{ + + global $connect_statut, $options,$connect_id_auteur, $couleur_claire ; + + if (!($flag_editable AND $options == 'avancees')) return; + + echo debut_block_invisible("auteursarticle"); + + $query = "SELECT * FROM spip_auteurs WHERE "; + if ($les_auteurs) $query .= "id_auteur NOT IN ($les_auteurs) AND "; + $query .= "statut!='5poubelle' AND statut!='6forum' AND statut!='nouveau' ORDER BY statut, nom"; + $result = spip_query($query); + + echo "<table width='100%'>"; + echo "<tr>"; + + if ($connect_statut == '0minirezo' + AND acces_rubrique($rubrique_article) + AND $options == "avancees" + AND !$supprimer_bouton_creer_auteur) { + echo "<td width='200'>"; + $retour = urlencode($GLOBALS['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 "</td>"; + echo "<td width='20'> </td>"; + } + + echo "<td>"; + + + if (spip_num_rows($result) > 0) { + echo "<FORM ACTION='articles.php3?id_article=$id_article#auteurs' METHOD='post'>"; + echo "<span class='verdana1'><B>"._T('titre_cadre_ajouter_auteur')." </B></span>\n"; + echo "<DIV><INPUT TYPE='Hidden' NAME='id_article' VALUE=\"$id_article\">"; + + if (spip_num_rows($result) > 200) { + echo "<INPUT TYPE='text' NAME='cherche_auteur' onClick=\"setvisibility('valider_ajouter_auteur','visible');\" CLASS='fondl' VALUE='' SIZE='20'>"; + echo "<span class='visible_au_chargement' id='valider_ajouter_auteur'>"; + echo " <INPUT TYPE='submit' NAME='Chercher' VALUE='"._T('bouton_chercher')."' CLASS='fondo'>"; + echo "</span>"; + } else { + echo "<INPUT TYPE='Hidden' NAME='ajout_auteur' VALUE='oui'>"; + echo "<SELECT NAME='nouv_auteur' SIZE='1' STYLE='width:150px;' CLASS='fondl' onChange=\"setvisibility('valider_ajouter_auteur','visible');\">"; + $group = false; + $group2 = false; + + while ($row = spip_fetch_array($result)) { + $id_auteur = $row["id_auteur"]; + $nom = $row["nom"]; + $email = $row["email"]; + $statut = $row["statut"]; + + $statut=str_replace("0minirezo", _T('info_administrateurs'), $statut); + $statut=str_replace("1comite", _T('info_redacteurs'), $statut); + $statut=str_replace("6visiteur", _T('info_visiteurs'), $statut); + + $premiere = strtoupper(substr(trim($nom), 0, 1)); + + if ($connect_statut != '0minirezo') + if ($p = strpos($email, '@')) + $email = substr($email, 0, $p).'@...'; + if ($email) + $email = " ($email)"; + + if ($statut != $statut_old) { + echo "\n<OPTION VALUE=\"x\">"; + echo "\n<OPTION VALUE=\"x\" style='background-color: $couleur_claire;'> $statut"; + } + + if ($premiere != $premiere_old AND ($statut != _T('info_administrateurs') OR !$premiere_old)) { + echo "\n<OPTION VALUE=\"x\">"; + } + + $texte_option = supprimer_tags(couper(typo("$nom$email"), 40)); + echo "\n<OPTION VALUE=\"$id_auteur\"> $texte_option"; + $statut_old = $statut; + $premiere_old = $premiere; + } + + echo "</SELECT>"; + echo "<span class='visible_au_chargement' id='valider_ajouter_auteur'>"; + echo " <INPUT TYPE='submit' NAME='Ajouter' VALUE="._T('bouton_ajouter')." CLASS='fondo'>"; + echo "</span>"; + } + echo "</div></FORM>"; + } + + echo "</td></tr></table>"; + + echo fin_block(); +} + +function afficher_corps_articles($virtuel, $chapo, $texte, $ps) +{ + global $revision_nbsp, $activer_revision_nbsp, $champs_extra, $extra, $les_notes, $dir_lang; + + echo "\n\n<div align='justify' style='padding: 10px;'>"; + + if ($virtuel) { + debut_boite_info(); + echo _T('info_renvoi_article')." ".propre("<center>[->$virtuel]</center>"); + fin_boite_info(); + } else { + $revision_nbsp = $activer_revision_nbsp; + + if (strlen($chapo) > 0) { + echo "<div $dir_lang style='font-size: small;'><b>"; + echo propre($chapo); + echo "</b></div>\n\n"; + } + + echo "<div $dir_lang style='font-size: small;'>"; +# echo reduire_image(propre($texte), 500,10000); + echo propre($texte); + echo "<br clear='both' />"; + echo "</div>"; + + if ($ps) { + echo debut_cadre_enfonce(); + echo "<div $dir_lang><font size=2 face='Verdana,Arial,Sans,sans-serif'>"; + echo justifier("<b>"._T('info_ps')."</b> ".propre($ps)); + echo "</font></div>"; + echo fin_cadre_enfonce(); + } + $revision_nbsp = false; + + if ($les_notes) { + echo debut_cadre_relief(); + echo "<div $dir_lang class='arial11'>"; + echo justifier("<b>"._T('info_notes')." :</b> ".$les_notes); + echo "</div>"; + echo fin_cadre_relief(); + } + + if ($champs_extra AND $extra) { + include_ecrire("inc_extra.php3"); + extra_affichage($extra, "articles"); + } + } +} + +function affiche_forums_article($id_article, $titre, $debut, $mute=false) +{ + global $spip_lang_left; + + echo "<BR><BR>"; + + $forum_retour = urlencode("articles.php3?id_article=$id_article"); + + if (!$mute) { + echo "\n<div align='center'>"; + icone(_T('icone_poster_message'), "forum_envoi.php3?statut=prive&adresse_retour=".$forum_retour."&id_article=$id_article&titre_message=".urlencode($titre), "forum-interne-24.gif", "creer.gif"); + echo "</div>"; + } + + echo "<P align='$spip_lang_left'>"; + + $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 "<div class='serif2' align='center'>"; + for ($i = 0; $i < $total; $i = $i + $total_afficher){ + $y = $i + $total_afficher - 1; + if ($i == $debut) + echo "<FONT SIZE=3><B>[$i-$y]</B></FONT> "; + else + echo "[<A HREF='articles.php3?id_article=$id_article&debut=$i'>$i-$y</A>] "; + } + echo "</div>"; +} + + $query_forum = "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"; + $result_forum = spip_query($query_forum); + afficher_forum($result_forum, $forum_retour, $mute); + + if (!$debut) $debut = 0; + $total_afficher = 8; + if ($total > $total_afficher) { + echo "<div class='serif2' align='center'>"; + for ($i = 0; $i < $total; $i = $i + $total_afficher){ + $y = $i + $total_afficher - 1; + if ($i == $debut) + echo "<FONT SIZE=3><B>[$i-$y]</B></FONT> "; + else + echo "[<A HREF='articles.php3?id_article=$id_article&debut=$i'>$i-$y</A>] "; + } + echo "</div>"; + } + + echo "</div>\n"; +} + +function afficher_statut_articles($id_article, $rubrique_article, $statut_article) +{ + global $connect_statut; + + if ($connect_statut == '0minirezo' AND acces_rubrique($rubrique_article)) { + echo "<FORM ACTION='articles.php3' METHOD='get'>"; + debut_cadre_relief("racine-site-24.gif"); + echo "<CENTER>"; + + echo "<INPUT TYPE='Hidden' NAME='id_article' VALUE=\"$id_article\">"; + + echo "<B>"._T('texte_article_statut')."</B> "; + + $statut_url_javascript="'" . _DIR_IMG_PACK . "' + puce_statut(options[selectedIndex].value);"; + echo "<SELECT NAME='statut_nouv' SIZE='1' CLASS='fondl' onChange=\"document.statut.src=$statut_url_javascript; setvisibility('valider_statut', 'visible');\">"; + echo "<OPTION" . mySel("prepa", $statut_article) ." style='background-color: white'>"._T('texte_statut_en_cours_redaction')."\n"; + echo "<OPTION" . mySel("prop", $statut_article) . " style='background-color: #FFF1C6'>"._T('texte_statut_propose_evaluation')."\n"; + echo "<OPTION" . mySel("publie", $statut_article) . " style='background-color: #B4E8C5'>"._T('texte_statut_publie')."\n"; + echo "<OPTION" . mySel("poubelle", $statut_article) + . http_style_background('rayures-sup.gif') . '>' ._T('texte_statut_poubelle')."\n"; + echo "<OPTION" . mySel("refuse", $statut_article) . " style='background-color: #FFA4A4'>"._T('texte_statut_refuse')."\n"; + echo "</SELECT>"; + + echo " ". http_img_pack("puce-".puce_statut($statut_article).'.gif', "", "border='0' NAME='statut'") . " "; + + // echo "<noscript><INPUT TYPE='submit' NAME='Valider' VALUE='"._T('bouton_valider')."' CLASS='fondo'></noscript>"; + echo "<span class='visible_au_chargement' id='valider_statut'>"; + echo "<INPUT TYPE='submit' NAME='Valider' VALUE='"._T('bouton_valider')."' CLASS='fondo'>"; + echo "</span>"; + echo aide ("artstatut"); + echo "</CENTER>"; + fin_cadre_relief(); + echo "</FORM>"; + } +} ?> \ No newline at end of file diff --git a/ecrire/inc_presentation.php3 b/ecrire/inc_presentation.php3 index d8102927d9..63aa6fddd2 100644 --- a/ecrire/inc_presentation.php3 +++ b/ecrire/inc_presentation.php3 @@ -1766,7 +1766,7 @@ function afficher_forum($request, $adresse_retour, $controle_id_article = 0) { } // boutons de moderation - if ($controle_id_article) + if ($controle_id_article && is_int($controle_id_article)) echo boutons_controle_forum($id_forum, $statut, $id_auteur, "id_article=$controle_id_article", $ip); echo safehtml(justifier(propre($texte))); diff --git a/ecrire/presentation.js b/ecrire/presentation.js index 2597145150..72bc2cc27b 100644 --- a/ecrire/presentation.js +++ b/ecrire/presentation.js @@ -238,11 +238,25 @@ function lancer_recherche_rub(champ, rac, exclus) { } } - - - - // effacement titre quand new=oui var antifocus=false; // effacement titre des groupes de mots-cles de plus de 50 mots var antifocus_mots = new Array(); + +function puce_statut(selection){ + if (selection=="publie"){ + return "puce-verte.gif"; + } + if (selection=="prepa"){ + return "puce-blanche.gif"; + } + if (selection=="prop"){ + return "puce-orange.gif"; + } + if (selection=="refuse"){ + return "puce-rouge.gif"; + } + if (selection=="poubelle"){ + return "puce-poubelle.gif"; + } +} -- GitLab