source: spip-zone/_plugins_/mailsubscribers/trunk/formulaires/configurer_mailsubscribers.html @ 86325

Last change on this file since 86325 was 86325, checked in by cedric@…, 5 years ago

Evolutions fonctionnelles :

  • on peut creer automatiquement une liste des Administrateurs, Redacteurs et/ou Visiteurs, en cochant une case, qui seront synchronisées automatiquement une fois par jour
  • par extension, on peut synchroniser facilement la liste de son choix avec toutes données externes en ecrivant la fonction mailsubscribers_synchro_list_newsletter_{$id}() qui devra retourner une liste des abonnes avec au moins le champs 'email' pour chaque et optionnellement les champs 'nom' et 'prenom'. Des que la fonction existe, un message informe que la liste est synchronisée automatiquement
  • fonction de synchronisation facile d'une liste avec un tableau d'abonnes. Pour le moment la fonction ne peut fonctionner qu'avec un tableau, ce qui limite aux listes raisonnables (quelques milliers, mais pas plusieurs centaines de millier)
File size: 8.3 KB
Line 
1<div class="formulaire_spip formulaire_configurer formulaire_#FORM">
2
3        <h3 class="titrem"><:mailsubscriberscfg:cfg_titre_parametrages:></h3>
4
5        [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
6        [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
7
8        <form method="post" action="#ENV{action}">
9        <div>
10                #ACTION_FORMULAIRE{#ENV{action}}
11                <input type="hidden" name="_meta_casier" value="mailsubscribers" />
12                <ul>
13                        #SET{fl,mailsubscriberscfg}
14                        #SET{name,double_optin}#SET{obli,' '}#SET{defaut,'0'}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
15                        <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
16                                <label for="#GET{name}">[(#GET{fl}|concat{':label_',#GET{name}}|_T)]</label>[
17                                <span class='erreur_message'>(#GET{erreurs})</span>
18                                ]<select name="#GET{name}" class="select" id="#GET{name}">
19                                        #SET{val,0}
20                                        <option value="#GET{val}"[(#ENV{#GET{name},#GET{defaut}}|=={#GET{val}}|oui)selected="selected"]>[(#GET{fl}|concat{':label_',#GET{name},'_',#GET{val}}|_T)]</option>
21                                        #SET{val,1}
22                                        <option value="#GET{val}"[(#ENV{#GET{name},#GET{defaut}}|=={#GET{val}}|oui)selected="selected"]>[(#GET{fl}|concat{':label_',#GET{name},'_',#GET{val}}|_T)]</option>
23                                </select>
24                        </li>
25                        #SET{name,proposer_signup_optin}#SET{obli,''}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
26                        <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">[
27                                <span class='erreur_message'>(#GET{erreurs})</span>
28                                ]
29                                #SET{val,''}
30                                <input type="hidden" name="#GET{name}" value="#GET{val}" />
31                                #SET{val,1}
32                                <div class="choix">
33                                        <input type="checkbox" name="#GET{name}" class="checkbox" id="#GET{name}_#GET{val}" value="#GET{val}"[(#ENV{#GET{name},#GET{defaut}}|=={#GET{val}}|oui)checked="checked"] />
34                                        <label for="#GET{name}_#GET{val}">[(#GET{fl}|concat{':label_',#GET{name},'_',#GET{val}}|_T)]</label>
35                                </div>
36                        </li>
37                        <li class="fieldset">
38                                <fieldset>
39                                        <legend><:mailsubscriberscfg:legend_listes_diffusion:></legend>
40                                        #SET{tableau,#ARRAY{category,newsletter}|mailsubscribers_listes}
41                                        <BOUCLE_listes(POUR){tableau #GET{tableau}|array_merge{#ARRAY{new1,#LISTE,new2,#LISTE}}}>
42                                                #SET{index,#COMPTEUR_BOUCLE|moins{1}}
43                                                <h3 class="legend">#ENV*{lists/#GET{index}/titre,#VALEUR{titre}}</h3>
44                                                [<p class="explication">(#ENV*{lists/#GET{index}/id}|sinon{'-'}|mailsubscribers_compte_inscrits|singulier_ou_pluriel{mailsubscriber:info_1_mailsubscriber,mailsubscriber:info_nb_mailsubscribers}
45                                                        |concat{'. ',#ENV*{lists/#GET{index}/id}|sinon{'-'}|mailsubscribers_trouver_fonction_synchro|?{<:mailsubscriberscfg:info_liste_synchronisee_automatiquement:>}}|ltrim{'.'}|trim)</p>]
46                                                <ul class="liste-diffusion">
47                                                        #SET{name,id}#SET{obli,''}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs/lists/#GET{index}/#GET{name}}}
48                                                        <li class="editer editer_lists_[(#GET{index})]_#GET{name}[ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
49                                                                <label for="lists_[(#GET{index})]_#GET{name}">[(#GET{fl}|concat{':label_list_',#GET{name}}|_T)]</label>[
50                                                                <span class='erreur_message'>(#GET{erreurs})</span>
51                                                                ]<input type="text" name="lists[#GET{index}][#GET{name}]" class="text" value="#ENV*{lists/#GET{index}/#GET{name},#VALEUR{#GET{name}}}" id="lists_[(#GET{index})]_#GET{name}" [(#HTML5|et{#GET{obli}})required='required']/>
52                                                                <input type="hidden" name="lists[#GET{index}][#GET{name}_bak]" class="text" value="#ENV*{lists/#GET{index}/#GET{name},#VALEUR{#GET{name}}}" />
53                                                        </li>
54                                                        #SET{name,titre}#SET{obli,''}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs/lists/#GET{index}/#GET{name}}}
55                                                        <li class="editer editer_lists_[(#GET{index})]_#GET{name}[ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
56                                                                <label for="lists_[(#GET{index})]_#GET{name}">[(#GET{fl}|concat{':label_list_',#GET{name}}|_T)]</label>[
57                                                                <span class='erreur_message'>(#GET{erreurs})</span>
58                                                                ]<input type="text" name="lists[#GET{index}][#GET{name}]" class="text" value="#ENV*{lists/#GET{index}/#GET{name},#VALEUR{#GET{name}}}" id="lists_[(#GET{index})]_#GET{name}" [(#HTML5|et{#GET{obli}})required='required']/>
59                                                        </li>
60                                                        #SET{name,status}#SET{obli,''}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs/lists/#GET{index}/#GET{name}}}
61                                                        <li class="editer editer_lists_[(#GET{index})]_#GET{name}[ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
62                                                                <label for="lists_[(#GET{index})]_#GET{name}">[(#GET{fl}|concat{':label_list_',#GET{name}}|_T)]</label>[
63                                                                <span class='erreur_message'>(#GET{erreurs})</span>
64                                                                ]
65                                                                #SET{val,open}
66                                                                <div class="choix left choix_#GET{val}">
67                                                                        <input type="radio" name="lists[#GET{index}][#GET{name}]" class="radio" id="lists_[(#GET{index})]_#GET{name}_#GET{val}"
68                                                                                value="#GET{val}"[(#ENV*{lists/#GET{index}/#GET{name},#VALEUR{#GET{name}}}|=={#GET{val}}|oui)checked="checked"]
69                                                                                onchange="if ($(this).prop('checked')) $(this).parent().nextAll('.choix_delete_explication').hide();" />
70                                                                        <label for="lists_[(#GET{index})]_#GET{name}_#GET{val}">[(#GET{fl}|concat{':label_',#GET{name},'_',#GET{val}}|_T)]</label>
71                                                                </div>
72                                                                #SET{val,close}
73                                                                <div class="choix left choix_#GET{val}">
74                                                                        <input type="radio" name="lists[#GET{index}][#GET{name}]" class="radio" id="lists_[(#GET{index})]_#GET{name}_#GET{val}"
75                                                                                value="#GET{val}"[(#ENV*{lists/#GET{index}/#GET{name},#VALEUR{#GET{name}}}|=={#GET{val}}|oui)checked="checked"]
76                                                                                onchange="if ($(this).prop('checked')) $(this).parent().nextAll('.choix_delete_explication').hide();" />
77                                                                        <label for="lists_[(#GET{index})]_#GET{name}_#GET{val}">[(#GET{fl}|concat{':label_',#GET{name},'_',#GET{val}}|_T)]</label>
78                                                                </div>
79                                                                #SET{val,delete}
80                                                                <div class="choix right choix_#GET{val}">
81                                                                        <input type="radio" name="lists[#GET{index}][#GET{name}]" class="radio" id="lists_[(#GET{index})]_#GET{name}_#GET{val}"
82                                                                                value="#GET{val}"[(#ENV*{lists/#GET{index}/#GET{name},#VALEUR{#GET{name}}}|=={#GET{val}}|oui)checked="checked"]
83                                                                                onchange="if ($(this).prop('checked')) $(this).parent().nextAll('.choix_delete_explication').show();" />
84                                                                        <label for="lists_[(#GET{index})]_#GET{name}_#GET{val}" title="[(#GET{fl}|concat{':label_',#GET{name},'_',#GET{val},'_explication'}|_T|attribut_html)]">[(#GET{fl}|concat{':label_',#GET{name},'_',#GET{val}}|_T)]</label>
85                                                                </div>
86                                                                <div class="choix right choix_#GET{val}_explication explication"[(#ENV*{lists/#GET{index}/#GET{name},#VALEUR{#GET{name}}}|=={#GET{val}}|non)style="display:none"]>
87                                                                        [(#GET{fl}|concat{':label_',#GET{name},'_',#GET{val},'_explication'}|_T)]
88                                                                </div>
89                                                        </li>
90                                                </ul>
91                                        </BOUCLE_listes>
92                                </fieldset>
93                        </li>
94                        #SET{name,listes_auto_auteurs}#SET{obli,''}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
95                        <B_statuts>
96                        <li class="fieldset">
97                                <fieldset>
98                                        <legend><:mailsubscriberscfg:legend_listes_automatiques:></legend>
99                                        <ul>
100                                                <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">[
101                                                        <span class='erreur_message'>(#GET{erreurs})</span>
102                                                        ]
103                                                        <BOUCLE_statuts(POUR){tableau #ENV{_auteurs_possibles}}>
104                                                        #SET{val,#CLE}
105                                                        <div class="choix">
106                                                                <input type="checkbox" name="#GET{name}#EVAL{chr(91)}#EVAL{chr(93)}" class="checkbox" id="#GET{name}_#GET{val}" value="#GET{val}"[(#GET{val}|in_any{#ENV{#GET{name},#GET{defaut}}}|oui)checked="checked"] />
107                                                                <label for="#GET{name}_#GET{val}">[(#GET{fl}|concat{':label_',#GET{name}}|_T{#ARRAY{'statut',#VALEUR}})]</label>
108                                                        </div>
109                                                        </BOUCLE_statuts>
110                                                </li>
111                                        </ul>
112                                </fieldset>
113                        </li>
114                        </B_statuts>
115                </ul>
116
117                <p class="boutons"><span class="image_loading">&nbsp;</span><input type="submit" class="submit" value="<:bouton_enregistrer:>" /></p>
118        </div>
119        </form>
120</div>
121<style type="text/css">
122h3.legend {margin-top: 1.5em;margin-bottom: 0}
123.formulaire_spip ul.liste-diffusion {border-bottom: 1px solid #eee;padding-top: 1em !important;padding-bottom: 1em !important;margin-left: 125px}
124ul.liste-diffusion .editer {padding-top: 2px;padding-bottom: 2px;}
125ul.liste-diffusion .editer .choix.left {float: left}
126ul.liste-diffusion .editer .choix.right {float: right}
127ul.liste-diffusion .choix_close { margin-left:1em;}
128ul.liste-diffusion .choix_close label { margin-left:0;}
129ul.liste-diffusion .explication {clear: both}
130</style>
Note: See TracBrowser for help on using the repository browser.