diff --git a/.gitattributes b/.gitattributes index be29d9ee580f39a1de0812f28dfa63fb114d91bd..b7e037e8ab44d50c5f0c0d5fbfd0fadb5b7aa02a 100644 --- a/.gitattributes +++ b/.gitattributes @@ -510,12 +510,14 @@ ecrire/configuration/compresseur.php -text ecrire/configuration/compteur.php -text ecrire/configuration/contenu_forums.php -text ecrire/configuration/documents.php -text +ecrire/configuration/forums_prives.php -text ecrire/configuration/futurs.php -text ecrire/configuration/index.php -text ecrire/configuration/indexeur.php -text ecrire/configuration/langue.php -text ecrire/configuration/locuteur.php -text ecrire/configuration/logos.php -text +ecrire/configuration/messagerie_agenda.php -text ecrire/configuration/mots.php -text ecrire/configuration/notifications_forum.php -text ecrire/configuration/participants.php -text diff --git a/ecrire/configuration/forums_prives.php b/ecrire/configuration/forums_prives.php new file mode 100644 index 0000000000000000000000000000000000000000..2174bdcca09d63f5417fb8df1f5263104878b89e --- /dev/null +++ b/ecrire/configuration/forums_prives.php @@ -0,0 +1,53 @@ +<?php + +/***************************************************************************\ + * SPIP, Systeme de publication pour l'internet * + * * + * Copyright (c) 2001-2008 * + * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * + * * + * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * + * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * +\***************************************************************************/ + +if (!defined("_ECRIRE_INC_VERSION")) return; + +include_spip('inc/presentation'); +include_spip('inc/config'); + +function configuration_forums_prives_dist() +{ + $res = "<div class='verdana2'>" + . _L('Dans l’espace privé du site, vous pouvez activer plusieurs types de forums :') + . "<br />\n" + + . "<p>"._L('Un forum sous chaque article, brève, site référencé, etc. :') + . "<br />\n" + . afficher_choix('forum_prive_objets', $GLOBALS['meta']['forum_prive_objets'], + array('oui' => _L('Activer ces forums'), + 'non' => _L('Désactiver ces forums'))) + ."</p>\n" + + . "<p>"._L('Un forum global, ouvert à tous les rédacteurs :') + . "<br />\n" + . afficher_choix('forum_prive', $GLOBALS['meta']['forum_prive'], + array('oui' => _L('Activer le forum des rédacteurs'), + 'non' => _L('Désactiver le forum des rédacteurs'))) + ."</p>\n" + + . "<p>"._L('Un forum réservé aux administrateurs du site :') + . "<br />\n" + . afficher_choix('forum_prive_admin', $GLOBALS['meta']['forum_prive_admin'], + array('oui' => _T('item_activer_forum_administrateur'), + 'non' => _T('item_desactiver_forum_administrateur'))) + ."</p>\n" + + . "</div>"; + + $res = debut_cadre_trait_couleur("forum-interne-24.gif", true, "", _L('Forums de l’espace privé')) + . ajax_action_post('configurer', 'forums_prives', 'config_contenu','',$res) + . fin_cadre_trait_couleur(true); + + return ajax_action_greffe('configurer-forums_prives', '', $res); +} +?> diff --git a/ecrire/configuration/messagerie_agenda.php b/ecrire/configuration/messagerie_agenda.php new file mode 100644 index 0000000000000000000000000000000000000000..4d0fa567794b9ce5be09c79267393f5df3e0a1fc --- /dev/null +++ b/ecrire/configuration/messagerie_agenda.php @@ -0,0 +1,34 @@ +<?php + +/***************************************************************************\ + * SPIP, Systeme de publication pour l'internet * + * * + * Copyright (c) 2001-2008 * + * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * + * * + * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * + * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * +\***************************************************************************/ + +if (!defined("_ECRIRE_INC_VERSION")) return; + +include_spip('inc/presentation'); +include_spip('inc/config'); + +function configuration_messagerie_agenda_dist() +{ + $res = "<div class='verdana2'>" + . _L('Une messagerie permet aux rédacteurs du site de communiquer entre eux directement dans l’espace privé du site. Elle est associée à un agenda.') + . "<br />\n" + . afficher_choix('messagerie_agenda', $GLOBALS['meta']['messagerie_agenda'], + array('oui' => _L('Activer la messagerie et l’agenda'), + 'non' => _T('Désactiver la messagerie et l’agenda'))) + . "</div>"; + + $res = debut_cadre_trait_couleur("messagerie-24.gif", true, "", _L('Messagerie et agenda')) + . ajax_action_post('configurer', 'messagerie_agenda', 'config_contenu','',$res) + . fin_cadre_trait_couleur(true); + + return ajax_action_greffe('configurer-messagerie_agenda', '', $res); +} +?> diff --git a/ecrire/exec/auteur_infos.php b/ecrire/exec/auteur_infos.php index 32f21ceae9551cb0b9bbdaceec129413270447e9..915fcadf7a325d4da111d4eff6e20f0ee6f584dd 100644 --- a/ecrire/exec/auteur_infos.php +++ b/ecrire/exec/auteur_infos.php @@ -162,8 +162,11 @@ function auteurs_interventions($auteur) { echo afficher_objets('article',_T('info_articles_auteur'), array('FROM' => "spip_articles AS articles, spip_auteurs_articles AS lien", "WHERE" => "lien.id_auteur=$id_auteur AND lien.id_article=articles.id_article AND articles.statut IN ($aff_art)", 'ORDER BY' => "articles.date DESC")); - if ($id_auteur != $connect_id_auteur - AND autoriser('ecrire', '', '', $auteur)) { + // Messages de l'auteur et discussions en cours + if ($GLOBALS['meta']['messagerie_agenda'] != 'non' + AND $id_auteur != $connect_id_auteur + AND autoriser('ecrire', '', '', $auteur) + ) { echo "<div class='nettoyeur'> </div>"; echo debut_cadre_couleur('', true); @@ -174,7 +177,8 @@ function auteurs_interventions($auteur) { echo afficher_messages('<b>' . _T('info_vos_rendez_vous') . '</b>', ", spip_auteurs_messages AS lien, spip_auteurs_messages AS lien2", "lien.id_auteur=$connect_id_auteur AND lien2.id_auteur = $id_auteur AND statut='publie' AND type='normal' AND rv='oui' AND date_fin > NOW() AND lien.id_message=messages.id_message AND lien2.id_message=messages.id_message", $vus, false, false); echo icone_horizontale(_T('info_envoyer_message_prive'), generer_action_auteur("editer_message","normal/$id_auteur"), - "message.gif","", false); + "message.gif","", false); + echo fin_cadre_couleur(true); } } diff --git a/ecrire/exec/config_contenu.php b/ecrire/exec/config_contenu.php index 995404f0082e0ed33ab6482dd428326254a1e362..94c120e81cba84e92754d9c44fe98d025db2367d 100644 --- a/ecrire/exec/config_contenu.php +++ b/ecrire/exec/config_contenu.php @@ -41,36 +41,65 @@ function exec_config_contenu_dist() echo debut_droite('', true); $participants = charger_fonction('participants', 'configuration'); + $contenu_forums = charger_fonction('contenu_forums', 'configuration'); + $redacteurs = charger_fonction('redacteurs', 'configuration'); $visiteurs = charger_fonction('visiteurs', 'configuration'); - $contenu_forums = charger_fonction('contenu_forums', 'configuration'); + + $forums_prives = charger_fonction('forums_prives', 'configuration'); + $messagerie_agenda = charger_fonction('messagerie_agenda', 'configuration'); + $annonces = charger_fonction('annonces', 'configuration'); $notifications_forum = charger_fonction('notifications_forum', 'configuration'); - $administrateurs = charger_fonction('administrateurs', 'configuration'); -// Mode de participation aux forums - echo $participants(), "<br />"; + /* + * Forums publics + * + */ -// -// Inscriptions de redacteurs et visiteurs depuis le site public -// (la balise FORMULAIRE_INSCRIPTION sert au deux) -// - echo $redacteurs(), $visiteurs(), "<br />"; -// Champs actives sur les forums + echo "<h3>"._L('Sur le site public')."</h3>\n"; + + // Mode de participation aux forums + echo $participants(); + + // Champs actives sur les forums echo $contenu_forums(); -// -// Activer/desactiver mails automatiques -// - echo $annonces(), "<br />\n"; + echo "<br />"; - echo $notifications_forum(), "<br />\n"; -// Activer forum admins + /* + * Inscriptions de redacteurs et visiteurs depuis le site public + * (la balise FORMULAIRE_INSCRIPTION sert au deux) + */ + echo $redacteurs(), $visiteurs(), "<br />"; + + + /* + * Forums prives + * + */ + + echo "<h3>"._L('Dans l’espace privé')."</h3>\n"; + + // Forums prives + echo $forums_prives(); + echo $messagerie_agenda(); + + echo "<br />"; + + + /* + * mails automatiques + * + */ + echo "<h3>"._L('Notifications')."</h3>\n"; + + echo $annonces(), "<br />\n"; + echo $notifications_forum(), "<br />\n"; - echo $administrateurs(); // // Choix supplementaires proposees par les plugins diff --git a/ecrire/inc/boutons.php b/ecrire/inc/boutons.php index ca41ee1a871bd4e47d43c7a171a75f8b7c7818ad..9ea50c6ecf63914b7653d8f0094ee45ed24b97df 100644 --- a/ecrire/inc/boutons.php +++ b/ecrire/inc/boutons.php @@ -55,13 +55,21 @@ function definir_barre_boutons() { global $spip_lang, $spip_lang_rtl, $spip_lang_left, $spip_lang_right; - $boutons_admin=array( - 'accueil' => new Bouton('asuivre-48.png', 'icone_a_suivre'), - 'naviguer' => new Bouton("documents-48$spip_lang_rtl.png", - 'icone_edition_site'), - 'forum' => new Bouton('messagerie-48.png', 'titre_forum'), - 'auteurs' => new Bouton('redacteurs-48.png', 'icone_auteurs') - ); + $boutons_admin=array(); + + $boutons_admin['accueil'] = new Bouton( + 'asuivre-48.png', 'icone_a_suivre'); + + $boutons_admin['naviguer'] = new Bouton( + "documents-48$spip_lang_rtl.png", 'icone_edition_site'); + + if ($GLOBALS['meta']['forum_prive'] != 'non') + $boutons_admin['forum'] = new Bouton( + 'messagerie-48.png', 'titre_forum'); + + $boutons_admin['auteurs'] = new Bouton( + 'redacteurs-48.png', 'icone_auteurs'); + if ($GLOBALS['meta']["activer_statistiques"] != 'non' AND autoriser('voirstats')) { @@ -144,8 +152,15 @@ function definir_barre_boutons() { $sousmenu['controle_petition']= new Bouton("suivi-petition-24.gif", "icone_suivi_pettions"); - if ($sousmenu) - $boutons_admin['forum']->sousmenu= $sousmenu; + // Si le forum a ete desactive, mais qu'il y a un sous-menu de suivi + // des forums ou des petitions, on colle ce suivi sous le menu "a suivre" + if ($sousmenu) { + if (isset($boutons_admin['forum'])) + $boutons_admin['forum']->sousmenu= $sousmenu; + else + $boutons_admin['accueil']->sousmenu= $sousmenu; + } + // sous menu auteurs diff --git a/ecrire/inc/config.php b/ecrire/inc/config.php index 19162005f8296399263897248f141097ab7375e2..a5d6126ee791e518064e8fb4ff37b0e0f1da0d91 100644 --- a/ecrire/inc/config.php +++ b/ecrire/inc/config.php @@ -72,7 +72,10 @@ function liste_metas() 'adresse_neuf' => '', 'jours_neuf' => '', 'quoi_de_neuf' => 'non', - 'forum_prive_admin' => 'non', + 'forum_prive' => 'oui', # forum global dans l'espace prive + 'forum_prive_objets' => 'oui', # forum sous chaque article de l'espace prive + 'forum_prive_admin' => 'non', # forum des administrateurs + 'messagerie_agenda' => 'oui', 'articles_versions' => 'non', 'activer_statistiques' => 'non', diff --git a/ecrire/inc/discuter.php b/ecrire/inc/discuter.php index 431c2944f80a73da9602d02528cac3352a1ca30e..2781ba233328c71ce0e413cfc37cc0a2bdd05f44 100644 --- a/ecrire/inc/discuter.php +++ b/ecrire/inc/discuter.php @@ -45,6 +45,9 @@ function formulaire_discuter($script, $args, $debut, $pas, $ancre, $total, $obje // http://doc.spip.org/@inc_discuter_dist function inc_discuter_dist($id, $script, $objet, $statut='prive', $debut=1, $pas=10, $id_parent = 0) { + if ($GLOBALS['meta']['forum_prive_objets'] == 'non') + return ''; + $debut = intval($debut); if (!$pas) $pas = 10; $id = intval($id); diff --git a/ecrire/inc/formater_auteur.php b/ecrire/inc/formater_auteur.php index 300c833eff6ca2a5468868a6ca46a46a9b04437b..548ac23559098d30207d639edae436c0f42a4970 100644 --- a/ecrire/inc/formater_auteur.php +++ b/ecrire/inc/formater_auteur.php @@ -79,11 +79,20 @@ function formater_auteur_mail($row, $id_auteur) { global $spip_lang_rtl; - if (!autoriser('modifier', 'auteur', $id_auteur, $row)) - $href= 'mailto:' . $row['email']; - else $href = generer_action_auteur("editer_message","normal/$id_auteur"); - return "<a href='$href' title=\"" + if ($row['imessage'] != 'non' + AND $GLOBALS['meta']['messagerie_agenda'] != 'non') + $href = generer_action_auteur("editer_message","normal/$id_auteur"); + else if (strlen($row['email']) + AND autoriser('voir', 'auteur', $id_auteur)) + $href = 'mailto:' . $row['email']; + else + $href = ''; + + if ($href) + return "<a href='$href' title=\"" . _T('info_envoyer_message_prive') . "\" class='message'> </a>"; + else + return ''; } ?> diff --git a/ecrire/inc/gadgets.php b/ecrire/inc/gadgets.php index 1ed9e95b79a789fdd0a7cf9ce2c764213eb4b31a..23c4b2fcec150c8024eada2a567571ebe971ac22 100644 --- a/ecrire/inc/gadgets.php +++ b/ecrire/inc/gadgets.php @@ -164,22 +164,25 @@ function installer_gadgets($id_rubrique) . "' class='icone26' onmouseover=\"changestyle('bandeaurecherche'); jQuery('#form_recherche')[0].focus();\" onfocus=\"changestyle('bandeaurecherche');\" onblur=\"changestyle('bandeaurecherche');\">" . http_img_pack("loupe.png", _T('info_rechercher'), "width='26' height='20'") ."</a>" - . http_img_pack("rien.gif", "", "width='10'") - . "<a id='boutonbandeauagenda' href='" - . generer_url_ecrire("calendrier","type=semaine") - . "' class='icone26' onmouseover=\"changestyle('bandeauagenda');\">" - . http_img_pack("cal-rv.png", _T('icone_agenda'), "width='26' height='20'") - ."</a>" - . "<a href='" - . generer_url_ecrire("messagerie") - . "' class='icone26' onmouseover=\"changestyle('bandeaumessagerie');\" onfocus=\"changestyle('bandeaumessagerie');\" onblur=\"changestyle('bandeaumessagerie');\">" - . http_img_pack("cal-messagerie.png", _T('icone_messagerie_personnelle'), "width='26' height='20'") - ."</a>" - . "<a href='" - . generer_url_ecrire("synchro") - . "' class='icone26' onmouseover=\"changestyle('bandeausynchro');\" onfocus=\"changestyle('bandeausynchro');\" onblur=\"changestyle('bandeausynchro');\">" - . http_img_pack("cal-suivi.png", _T('icone_suivi_activite'), "width='26' height='20'") - . "</a>"; + + . (($GLOBALS['meta']['messagerie_agenda'] != 'non') + ? http_img_pack("rien.gif", "", "width='10'") + . "<a id='boutonbandeauagenda' href='" + . generer_url_ecrire("calendrier","type=semaine") + . "' class='icone26' onmouseover=\"changestyle('bandeauagenda');\">" + . http_img_pack("cal-rv.png", _T('icone_agenda'), "width='26' height='20'") + ."</a>" + . "<a href='" + . generer_url_ecrire("messagerie") + . "' class='icone26' onmouseover=\"changestyle('bandeaumessagerie');\" onfocus=\"changestyle('bandeaumessagerie');\" onblur=\"changestyle('bandeaumessagerie');\">" + . http_img_pack("cal-messagerie.png", _T('icone_messagerie_personnelle'), "width='26' height='20'") + ."</a>" + . "<a href='" + . generer_url_ecrire("synchro") + . "' class='icone26' onmouseover=\"changestyle('bandeausynchro');\" onfocus=\"changestyle('bandeausynchro');\" onblur=\"changestyle('bandeausynchro');\">" + . http_img_pack("cal-suivi.png", _T('icone_suivi_activite'), "width='26' height='20'") + . "</a>" + : ''); } // http://doc.spip.org/@repercuter_gadgets diff --git a/ecrire/inc/presentation.php b/ecrire/inc/presentation.php index f62110915402412b63257a5f32d883dfbf15554d..10e3456bd8b17462c13ca584326dbb3c009069aa 100644 --- a/ecrire/inc/presentation.php +++ b/ecrire/inc/presentation.php @@ -443,8 +443,10 @@ function envoi_link($nom_site_spip, $minipres=false) { . '" id="cssprivee" />' . "\n" // CSS calendrier - . '<link rel="stylesheet" type="text/css" href="' - . url_absolue(find_in_path('agenda.css')) .'" />' . "\n" + . (($GLOBALS['meta']['messagerie_agenda'] != 'non') + ? '<link rel="stylesheet" type="text/css" href="' + . url_absolue(find_in_path('agenda.css')) .'" />' . "\n" + : '') // CSS imprimante (masque des trucs, a completer) . '<link rel="stylesheet" type="text/css" href="'