diff --git a/ecrire/exec/articles.php b/ecrire/exec/articles.php index 06f887ff52f43bd5fea599c2a8f32ba6566195b3..c3bfea049b13ec56b19b40ff33288ea46f8e6a50 100644 --- a/ecrire/exec/articles.php +++ b/ecrire/exec/articles.php @@ -109,8 +109,8 @@ function articles_affiche($id_article, $row, $cherche_auteur, $ids, $cherche_mot . (!$iconifier ? '' : $iconifier('id_article', $id_article,'articles')) - . (!($options == "avancees" && $connect_statut=='0minirezo' && $flag_editable) ? '' : ( boites_de_config_articles($id_article) . boite_article_virtuel($id_article, $virtuel))) - + . boites_de_config_articles($id_article, $flag_editable) + . boite_article_virtuel($id_article, $virtuel, $flag_editable) . meme_rubrique($id_rubrique, $id_article, 'article') . pipeline('affiche_gauche',array('args'=>array('exec'=>'articles','id_article'=>$id_article),'data'=>'')) @@ -226,43 +226,45 @@ function boite_info_articles($id_article, $statut_article, $visites, $id_version // // http://doc.spip.org/@boites_de_config_articles -function boites_de_config_articles($id_article) +function boites_de_config_articles($id_article, $modifiable) { - $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')")); + $poster = charger_fonction('poster', 'inc'); + $petitionner = charger_fonction('petitionner', 'inc'); + $poster = $poster($id_article,"articles","id_article=$id_article", $modifiable); + $petitionner = $petitionner($id_article,"articles","id_article=$id_article",$modifiable); + $masque = $poster . $petitionner; + + if (!$masque) return ''; + + $forums = spip_query("SELECT id_article FROM spip_forum WHERE id_article=$id_article AND statut IN ('publie', 'off', 'prop') LIMIT 1"); - $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 = spip_fetch_array($forums); - $nb_forums = $nb_forums['count']; - $nb_signatures = $nb_signatures['count']; - $visible = $nb_forums || $nb_signatures; + if (!$visible) { + + $signatures = spip_query("SELECT id_article FROM spip_signatures WHERE id_article=$id_article AND statut IN ('publie', 'poubelle') LIMIT 1"); + $visible = spip_fetch_array($signatures); + } $invite = "<span class='verdana1'><b>" . _T('bouton_forum_petition') . aide('confforums') . "</b></span>"; - $f = charger_fonction('poster', 'inc'); - $g = charger_fonction('petitionner', 'inc'); - - if ($nb_forums) { - $masque = icone_horizontale(_T('icone_suivi_forum', array('nb_forums' => $nb_forums)), generer_url_ecrire("articles_forum","id_article=$id_article"), "suivi-forum-24.gif", "", false); - } else $masque = ''; - - $masque .= $f($id_article,"articles","id_article=$id_article") - . $g($id_article,"articles","id_article=$id_article"); - return debut_cadre_relief("forum-interne-24.gif", true) . block_parfois_visible('forumpetition', $invite, $masque, 'text-align: center;', $visible) . fin_cadre_relief(true); } // http://doc.spip.org/@boite_article_virtuel -function boite_article_virtuel($id_article, $virtuel) +function boite_article_virtuel($id_article, $virtuel, $flag) { $f = charger_fonction('virtualiser', 'inc'); - $masque = $f($id_article, false, $virtuel, "articles", "id_article=$id_article"); + $masque = $f($id_article, $flag, $virtuel, "articles", "id_article=$id_article"); + + if (!$masque) return ''; $invite = "<span class='verdana1'>" . '<b>' diff --git a/ecrire/inc/petitionner.php b/ecrire/inc/petitionner.php index 614fe82c945810f6f0a05d390401c2ebb0032723..862a89fe590b2f67a114d88112c83d352bc15b0d 100644 --- a/ecrire/inc/petitionner.php +++ b/ecrire/inc/petitionner.php @@ -17,9 +17,13 @@ include_spip('inc/actions'); include_spip('inc/texte'); // http://doc.spip.org/@formulaire_petitionner -function inc_petitionner_dist($id_article, $script, $args, $ajax=false) +function inc_petitionner_dist($id_article, $script, $args, $modifiable) { - global $spip_lang_right; + global $spip_lang_right, $options, $connect_statut; + + if (!($options == "avancees" && $connect_statut=='0minirezo' && $modifiable)) + return ''; + $petition = spip_fetch_array(spip_query("SELECT * FROM spip_petitions WHERE id_article=$id_article")); diff --git a/ecrire/inc/poster.php b/ecrire/inc/poster.php index 2d01e6ac1f55eb9fa5b2a19976c4519bd9ee980d..0b091205212024dbee88bab54220417e990087b8 100644 --- a/ecrire/inc/poster.php +++ b/ecrire/inc/poster.php @@ -30,11 +30,21 @@ function get_forums_publics($id_article=0) { // Cree le formulaire de modification du reglage des forums de l'article // http://doc.spip.org/@formulaire_poster function inc_poster_dist($id_article, $script, $args, $flag=false) { - global $spip_lang_right; + + global $spip_lang_right, $options, $connect_statut; + + if (!($options == "avancees" && $connect_statut=='0minirezo' && $flag)) + return ''; $statut_forum = get_forums_publics($id_article); - $r.= "\n\t" + $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')")); + + if ($nb_forums) { + $r = icone_horizontale(_T('icone_suivi_forum', array('nb_forums' => $nb_forums)), generer_url_ecrire("articles_forum","id_article=$id_article"), "suivi-forum-24.gif", "", false); + } else $r = ''; + + $r = "\n\t" . _T('info_fonctionnement_forum') . "\n\t<select name='change_accepter_forum' class='fondl' @@ -56,7 +66,7 @@ function inc_poster_dist($id_article, $script, $args, $flag=false) { $r .= "\n\t</select>\n"; $r .= "<div align='$spip_lang_right' id='valider_poster_$id_article'" - . ($flag ? '' : " class='visible_au_chargement'") + . " class='visible_au_chargement'" . ">\n\t<input type='submit' class='fondo' style='font-size:10px' value='" . _T('bouton_changer') . "' /></div>\n"; diff --git a/ecrire/inc/virtualiser.php b/ecrire/inc/virtualiser.php index 73d40361742fbe22ba1ffa28b81c290a84011974..1a44199186fe8feb00dd35608bb403722159c788 100644 --- a/ecrire/inc/virtualiser.php +++ b/ecrire/inc/virtualiser.php @@ -16,7 +16,10 @@ include_spip('inc/actions'); // http://doc.spip.org/@formulaire_virtualiser function inc_virtualiser_dist($id_article, $flag, $virtuel, $script, $args) { - global $spip_lang_right; + global $spip_lang_right, $options, $connect_statut; + + if (!($options == "avancees" && $connect_statut=='0minirezo' && $flag)) + return ''; $http = ($virtuel ? "" : "http://");