source: spip-zone/_plugins_/spip-lettres/exec/config_lettres_formulaire.php @ 45196

Last change on this file since 45196 was 45196, checked in by jluc@…, 10 years ago

Meilleur traitement des thématiques d'abonnement public

  • Création d'un sélecteur de thématique
  • Dans le privé, les administrateurs ne peuvent attribuer un abonnement qu'aux rubriques qui sont des thématiques d'abonnement déclarées et proposées au public - ça évite de perdre des abonnements dans la nature.
  • Une nouvelle option de config (mode toutes-rubriques) leur permet quand même de faire des abonnements à des rubriques non proposées au public.
  • Afficher le nom des thématiques et non celui des rubriques associées (sauf pour créer une nouvelle thématique à partir d'une rubrique, et sauf en mode toutes-rubriques)
  • Elimination du terme "thème" au profit de "thématique", ajustement des chaînes de langue, tenir compte du mode toutes-rubrique et du nombre de thématiques pour les affichages,... (il en reste encore un peu à faire).
  • Petits allégements de code html
  • Incrément de version et gestion des upgrades récents pour la valeur par défaut de la config
File size: 5.5 KB
Line 
1<?php
2
3
4        /**
5         * SPIP-Lettres
6         *
7         * Copyright (c) 2006-2009
8         * Agence Artégo http://www.artego.fr
9         * 
10         * Ce programme est un logiciel libre distribue sous licence GNU/GPLv3.
11         * Pour plus de details voir http://www.gnu.org/licenses/gpl-3.0.html
12         * 
13         **/
14
15
16        if (!defined("_ECRIRE_INC_VERSION")) return;
17        include_spip('inc/presentation');
18        include_spip('inc/config');
19        include_spip('inc/meta');
20        include_spip('lettres_fonctions');
21
22
23        function exec_config_lettres_formulaire() {
24
25                if (!autoriser('configurer', 'lettres')) {
26                        include_spip('inc/minipres');
27                        echo minipres();
28                        exit;
29                }
30
31                pipeline('exec_init',array('args'=>array('exec'=>'config_lettres_formulaire'),'data'=>''));
32
33                if (!empty($_POST['titre'])) {
34                        sql_replace('spip_themes', array('id_rubrique' => intval($_POST['id_parent']), 'titre' => $_POST['titre']));
35                        include_spip('inc/rubriques');
36                        calculer_langues_rubriques();
37                        $url = generer_url_ecrire('config_lettres_formulaire');
38                        header('Location: '.$url);
39                        exit();
40                };
41
42                // rubrique par défaut pour un nouvel abonné   
43                if ($_REQUEST['pardefaut']=='oui') {
44                        if (isset($_POST['supprimer'])) // pas d'abo par défaut
45                                ecrire_meta('spip_lettres_abonnement_par_defaut', -1); 
46                        else
47                                ecrire_meta('spip_lettres_abonnement_par_defaut', 
48                                                        $_POST['id_parent']);
49                        ecrire_metas();
50                        $url = generer_url_ecrire('config_lettres_formulaire');
51                        header('Location: '.$url);
52                        exit();
53                }                       
54
55                if (!empty($_GET['supprimer_theme'])) {
56                        sql_delete('spip_themes', 'id_theme='.intval($_GET['supprimer_theme']));
57                        $url = generer_url_ecrire('config_lettres_formulaire');
58                        header('Location: '.$url);
59                        exit();
60                }                       
61
62                $commencer_page = charger_fonction('commencer_page', 'inc');
63                echo $commencer_page(_T('titre_configuration'), "configuration", "configuration");
64
65
66                echo '<br /><br /><br />';
67                echo gros_titre(_T('titre_configuration'),'',false);
68                echo barre_onglets("configuration", "config_lettres_formulaire_top");
69                echo "<br>";
70                echo barre_onglets("lettres", "config_lettres_formulaire");
71
72                echo debut_gauche('', true);
73                echo debut_boite_info(true);
74                echo _T('lettresprive:aide_config_lettres_formulaire');
75                echo fin_boite_info(true);
76                echo pipeline('affiche_gauche',array('args'=>array('exec'=>'config_lettres_formulaire'),'data'=>''));
77
78                echo creer_colonne_droite('', true);
79                echo pipeline('affiche_droite',array('args'=>array('exec'=>'config_lettres_formulaire'),'data'=>''));
80
81                echo debut_droite('', true);
82
83                $themes = afficher_objets('theme', _T('lettresprive:themes_disponibles'), array('SELECT' => 'T.*, RUB.titre AS titre_rub', 'FROM' => 'spip_themes AS T LEFT JOIN spip_rubriques AS RUB ON RUB.id_rubrique=T.id_rubrique', 'ORDER BY' => 'T.titre'));
84                if ($themes) {
85                        echo $themes;
86                        echo '<br />';
87                } else {
88                        echo debut_boite_info(true);
89                        echo _T('lettresprive:aucun_theme_selectionne');
90                        echo fin_boite_info(true);
91                }
92
93                echo '<form method="post" action="'.generer_url_ecrire('config_lettres_formulaire').'">';
94                echo debut_cadre_trait_couleur("", true, "", _T('lettresprive:ajouter_theme'));
95               
96            echo '<p>';
97                // Ajout d'un message d'erreur (avec un style inline car ne n'est pas un CVT)
98                if (empty($_REQUEST['pardefaut']) and !empty($_POST['id_parent']) and empty($_POST['titre']))
99                        echo '<span style="color:red;">'._T('info_obligatoire').'</span><br/>';
100                echo '<label for="titre">';
101                echo _T('lettresprive:titre').'</label>&nbsp;&nbsp;&nbsp;';
102
103                echo '<input type="text" class="text" name="titre" id="titre" value="" />';
104                echo '</p>';
105            echo '<p>';
106                echo '<label for="id_parent">'._T('lettresprive:choix_rubrique').'</label>';
107                $selecteur_rubrique = charger_fonction('chercher_rubrique', 'inc');
108                echo $selecteur_rubrique(0, 'rubrique', false);
109                echo '</p>';
110
111                echo '<p style="text-align: right;"><input class="fondo" name="ajouter" type="submit" value="'._T('lettresprive:ajouter').'" /></p>';
112                echo fin_cadre_trait_couleur(true);
113                echo '</form>';
114               
115                // rubrique par défaut pour un nouvel abonné créé via la partie privée 
116                $nbt= lettres_nombre_themes();
117                if ($nbt==1) {
118                        ecrire_meta('spip_lettres_abonnement_par_defaut', 
119                                                lettres_rubrique_theme_par_defaut());
120                        ecrire_metas();
121                        echo '<p>'._T('lettresprive:theme_par_defaut_actuel')
122                                .lettres_titre_theme_par_defaut();
123                }
124                else if ($nbt>1) {
125                        echo '<form method="post" action="'.generer_url_ecrire('config_lettres_formulaire',"pardefaut=oui").'">';
126                        echo debut_cadre_trait_couleur("", true, "", _T('lettresprive:theme_par_defaut'));
127                                               
128                        echo '<p>'._T('lettresprive:theme_par_defaut_actuel')
129                                                .lettres_titre_theme_par_defaut();
130                        if ($GLOBALS['meta']['spip_lettres_abonnement_par_defaut']>=0)
131                                echo '<input class="fondo" style="float: right;"
132                                        name="supprimer" type="submit" value="'._T('lettresprive:supprimer').'" />';
133                        echo '</p>';
134                        if (sql_countsel("spip_themes")>1) {
135                                echo '<p style="margin-top:1em;">';
136                                echo '<label for="id_parent">'._T('lettresprive:theme_par_defaut_modifier').':</label>';
137                                echo choisir_thematique();
138                                echo '<input class="fondo" style="float: right;"
139                                        name="enregistrer" type="submit" value="'._T('lettresprive:enregistrer').'" />
140                                </p>';
141                        };
142                        echo fin_cadre_trait_couleur(true);
143                        echo '</form>';
144                };
145               
146                echo pipeline('affiche_milieu',array('args'=>array('exec'=>'config_lettres_formulaire'),'data'=>''));
147               
148                echo fin_gauche();
149
150                echo fin_page();
151        }
152?>
Note: See TracBrowser for help on using the repository browser.