Compare commits

...

19 Commits
master ... v1

Author SHA1 Message Date
spip.franck@lien-d-amis.net e719778a91 Je monte la version de facteur après sont dernier commit, et fait un z+1 pour être réduire aux max les possibilités qu'une vielle version soient en ligne (pour info, il ne devrait pas y avoir de problème d'encodage, j'ai fait deux vérifications avant mon commit) 4 years ago
spip.franck@lien-d-amis.net 6449feee91 - Suite à un problème de sécu concernant facteur, je monte la version mini des necessites pour réduire le risque que les gens aient une version de facteur à risque. 5 years ago
tcharlss@bravecassine.com d90de52c41 oups, oubli de fichiers dans le précédent commit 5 years ago
tcharlss@bravecassine.com 8e1750c1a8 Report de r106951 : ajout d'une saisie pour lister les listes de diffusion + compat SPIP 3.2 5 years ago
peetdu@gmail.com 5f1bc60bb9 Prendre en compte la recherche sur l’id de la table spip_mailsubscribers. 5 years ago
erational@erational.org 2afa76fa42 [fix] ne pas choisir comme séparateur "-" car le nom des listes peut contenir ce caractère 5 years ago
erational@erational.org afb89b4f3a petit oups, ne pas permettre les https:// 5 years ago
erational@erational.org 702eb14145 sur l'export, pouvoir exporter une liste donnée 5 years ago
spip.franck@lien-d-amis.net da7a399c6e - Ce n'est plus http://core.spip.org mais https://core.spip.net 5 years ago
spip.franck@lien-d-amis.net efefc2c7f5 - Ce n'est plus http://trad.spip.org mais https://trad.spip.net 5 years ago
spip.franck@lien-d-amis.net f62189b159 plugins.spip est maintenant en https, donc j'ajoute le "s" 5 years ago
spip.franck@lien-d-amis.net a17cbed82a code.spip est maintenant en https, donc, j'ajoute le "s" à http 5 years ago
spip.franck@lien-d-amis.net 022392d33f Mise à jour d'url, exemple http://doc.spip.org est devenu http://code.spip.net 6 years ago
spip.franck@lien-d-amis.net 55386c4e34 Contrib est en https, donc j'ajoute le "s", plus divers broutilles 6 years ago
abelass@gmail.com 410106f757 Orthographie 6 years ago
spip.franck@lien-d-amis.net dc823a1a81 Nouveau problème de sécu dans facteur à cause de PHPMailer 6 years ago
spip.franck@lien-d-amis.net b4b8b6a403 Je monte la version de facteur pour réduire le risque que des personne est une version de facteur avec un problème de sécu z+1 pour la peine 6 years ago
marcimat@rezo.net 9df4b7d0b8 Notice PHP en moins. 6 years ago
cedric@yterium.com 9b4459e01a On cree une branche de maintenance pour la v1 6 years ago
  1. 3
      .gitattributes
  2. 4
      action/confirm_mailsubscriber.php
  3. 4
      action/confirm_unsubscribe_mailsubscriber.php
  4. 27
      action/mailsubscribers_export.php
  5. 4
      action/subscribe_mailsubscriber.php
  6. 4
      action/unsubscribe_mailsubscriber.php
  7. 5
      base/mailsubscribers.php
  8. 5
      formulaires/configurer_mailsubscribers.php
  9. 4
      formulaires/editer_email_subscription.php
  10. 5
      formulaires/editer_mailsubscriber.php
  11. 6
      formulaires/newsletter_unsubscribe.php
  12. 97
      inc/mailsubscribers.php
  13. 26
      lang/mailsubscriber.xml
  14. 2
      lang/mailsubscriber_de.php
  15. 2
      lang/mailsubscriber_en.php
  16. 6
      lang/mailsubscriber_fr.php
  17. 2
      lang/mailsubscriber_nl.php
  18. 2
      lang/mailsubscriber_pt_br.php
  19. 2
      lang/mailsubscriber_ru.php
  20. 22
      lang/mailsubscriberscfg.xml
  21. 2
      lang/mailsubscriberscfg_de.php
  22. 2
      lang/mailsubscriberscfg_en.php
  23. 2
      lang/mailsubscriberscfg_nl.php
  24. 2
      lang/mailsubscriberscfg_pt_br.php
  25. 2
      lang/mailsubscriberscfg_ru.php
  26. 2
      lang/newsletter_de.php
  27. 14
      lang/paquet-mailsubscribers.xml
  28. 2
      lang/paquet-mailsubscribers_de.php
  29. 2
      lang/paquet-mailsubscribers_en.php
  30. 2
      lang/paquet-mailsubscribers_nl.php
  31. 2
      lang/paquet-mailsubscribers_pt_br.php
  32. 5
      mailsubscribers_administrations.php
  33. 5
      mailsubscribers_autorisations.php
  34. 21
      mailsubscribers_fonctions.php
  35. 4
      mailsubscribers_pipelines.php
  36. 4
      newsletter/lists.php
  37. 4
      newsletter/subscribe.php
  38. 4
      newsletter/subscriber.php
  39. 4
      newsletter/subscribers.php
  40. 4
      newsletter/unsubscribe.php
  41. 8
      notifications/instituermailsubscriber.php
  42. 10
      paquet.xml
  43. 2
      prive/objets/liste/mailsubscribers.html
  44. 7
      prive/squelettes/navigation/mailsubscribers.html
  45. 5
      prive/squelettes/navigation/mailsubscribers_fonctions.php
  46. 2
      saisies-vues/listes_diffusion.html
  47. 36
      saisies/listes_diffusion.html
  48. 120
      saisies/listes_diffusion.yaml

3
.gitattributes vendored

@ -78,3 +78,6 @@ prive/themes/spip/images/mailsubscriber-16.png -text
prive/themes/spip/images/mailsubscriber-24.png -text
prive/themes/spip/images/mailsubscriber-32.png -text
prive/themes/spip/images/mailsubscriber-new-16.png -text
saisies-vues/listes_diffusion.html -text
saisies/listes_diffusion.html -text
saisies/listes_diffusion.yaml -text

4
action/confirm_mailsubscriber.php

@ -5,7 +5,9 @@
* Licence GNU/GPL v3
*/
if (!defined('_ECRIRE_INC_VERSION')) return;
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
/**

4
action/confirm_unsubscribe_mailsubscriber.php

@ -5,7 +5,9 @@
* Licence GNU/GPL v3
*/
if (!defined('_ECRIRE_INC_VERSION')) return;
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
/**

27
action/mailsubscribers_export.php

@ -5,18 +5,19 @@
* Licence GNU/GPL v3
*/
if (!defined('_ECRIRE_INC_VERSION')) return;
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
/**
* Exporter la base au format CSV
*
* @param null|string $statut
* @param null|string $args
*/
function action_mailsubscribers_export_dist($statut=null){
if (is_null($statut)){
function action_mailsubscribers_export_dist($args = null){
if (is_null($args)){
$securiser_action = charger_fonction('securiser_action','inc');
$statut = $securiser_action();
$args = $securiser_action();
}
if (!autoriser('exporter','_mailsubscribers')){
@ -25,13 +26,23 @@ function action_mailsubscribers_export_dist($statut=null){
exit;
}
$args = explode("~~", $args);
$statut = $args[0];
$liste = (isset($args[1])) ? trim($args[1]) : false;
$where = array();
// '' ou 'all' pour tout exporter (sauf poubelle)
if (in_array($statut,array('','all')))
if (in_array($statut,array('','all'))) {
$where[] = "statut<>".sql_quote('poubelle');
else
} else {
$where[] = "statut=".sql_quote($statut);
}
if ($liste) {
//$where[] = "listes LIKE '%".$liste."%'";
$where = array();
$where[] = "listes LIKE '%".$liste.",%' OR listes LIKE '%".$liste."' AND statut='valide'";
}
$entetes = array(
'email',

4
action/subscribe_mailsubscriber.php

@ -5,7 +5,9 @@
* Licence GNU/GPL v3
*/
if (!defined('_ECRIRE_INC_VERSION')) return;
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
/**
* Inscrire un email deja en base

4
action/unsubscribe_mailsubscriber.php

@ -5,7 +5,9 @@
* Licence GNU/GPL v3
*/
if (!defined('_ECRIRE_INC_VERSION')) return;
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
/**
* Des-inscrire un email deja en base

5
base/mailsubscribers.php

@ -5,7 +5,9 @@
* Licence GNU/GPL v3
*/
if (!defined('_ECRIRE_INC_VERSION')) return;
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
/**
@ -91,4 +93,3 @@ function mailsubscribers_declarer_tables_objets_sql($tables) {
?>

5
formulaires/configurer_mailsubscribers.php

@ -5,7 +5,10 @@
* Licence GNU/GPL v3
*/
if (!defined('_ECRIRE_INC_VERSION')) return;
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
include_spip("inc/mailsubscribers");
include_spip("inc/config");
include_spip("inc/cvt_configurer");

4
formulaires/editer_email_subscription.php

@ -5,7 +5,9 @@
* Licence GNU/GPL v3
*/
if (!defined('_ECRIRE_INC_VERSION')) return;
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
include_spip('inc/actions');
include_spip('inc/mailsubscribers');

5
formulaires/editer_mailsubscriber.php

@ -5,7 +5,9 @@
* Licence GNU/GPL v3
*/
if (!defined('_ECRIRE_INC_VERSION')) return;
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
include_spip('inc/actions');
include_spip('inc/mailsubscribers');
@ -72,4 +74,3 @@ function formulaires_editer_mailsubscriber_traiter_dist($id_mailsubscriber='new'
}
?>

6
formulaires/newsletter_unsubscribe.php

@ -5,7 +5,9 @@
* Licence GNU/GPL v3
*/
if (!defined('_ECRIRE_INC_VERSION')) return;
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
/**
* Declarer les champs postes et y integrer les valeurs par defaut
@ -56,5 +58,3 @@ function formulaires_newsletter_unsubscribe_traiter_dist($listes=''){
return array('message_ok'=>_T('newsletter:unsubscribe_message_ok',array('email'=>"<b>$email</b>")),'editable'=>true);
}
?>

97
inc/mailsubscribers.php

@ -6,7 +6,9 @@
*
*/
if (!defined('_ECRIRE_INC_VERSION')) return;
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
/**
* Recuperer email et arg dans l'action confirm/subscribe/unsubscribe
@ -105,9 +107,14 @@ function mailsubscribers_compte_inscrits($liste,$statut='valide'){
$ls = array_filter($ls);
$ls = array_unique($ls);
foreach($ls as $l){
if (!isset($count[$l][$row['statut']])) $count[$l][$row['statut']] = 0;
if (!isset($count[$l][$row['statut']])) {
$count[$l][$row['statut']] = 0;
}
$count[$l][$row['statut']] += $row['n'];
if ($row['statut']=='valide'){
if ($row['statut']=='valide') {
if (!isset($count_meta[$l])) {
$count_meta[$l] = 0;
}
$count_meta[$l] += $row['n'];
}
}
@ -183,8 +190,14 @@ function mailsubscribers_filtre_liste($liste,$category="newsletter"){
* (open,close,?)
*
* @param array $options
* category : filtrer les listes par category (dans ce cas la categorie est enlevee de l'id)
* status : filtrer les listes sur le status
* (array|string) tableau ou liste de status séparés par des virgules
* open | close : listes connues en config
* ? : listes en base
* id : filtrer les listes selon leurs identifiants (dans ce cas la categorie est enlevee de l'id)
* (array|string) tableau ou liste d'identifiants séparés par des virgules
* category : filtrer les listes par category (dans ce cas la categorie est enlevee de l'id)
* (string) nom d'une catégorie
* @return array
* array
* id : identifiant
@ -192,11 +205,21 @@ function mailsubscribers_filtre_liste($liste,$category="newsletter"){
* status : status de la liste
*/
function mailsubscribers_listes($options = array()){
$filtrer_status = $filtrer_category = false;
if (isset($options['status']))
$filtrer_status = $options['status'];
if (isset($options['category']))
// option : filtrer par statut
$filtrer_status = array();
if (!empty($options['status'])) {
$filtrer_status = is_array($options['status']) ? $options['status'] : explode(',', $options['status']);
}
// option : filtrer par catégorie
$filtrer_category = false;
if (isset($options['category'])) {
$filtrer_category = $options['category'];
}
// option : filtrer par identifiant
$filtrer_id = array();
if (!empty($options['id'])) {
$filtrer_id = is_array($options['id']) ? $options['id'] : explode(',', $options['id']);
}
$listes = array();
@ -208,33 +231,57 @@ function mailsubscribers_listes($options = array()){
AND count($known_lists)){
foreach ($known_lists as $kl){
$status = ($kl['status']=='open'?'open':'close');
$status_is_ok = (!$filtrer_status or in_array($status, $filtrer_status));
// si on filtre par catégorie ou par id, on enlève le prefixe de catégorie avant l'id
$id = $kl['id'];
if (!$filtrer_category OR $id=mailsubscribers_filtre_liste($id,$filtrer_category)){
$status = ($kl['status']=='open'?'open':'close');
if (!$filtrer_status OR $filtrer_status==$status) {
$listes[$id] = array(
'id' => $id,
'titre' => $kl['titre'],
'status' => $status
);
}
if ($filtrer_id
or $filtrer_category
) {
$category = ($filtrer_category ? $filtrer_category : 'newsletter');
$id = mailsubscribers_filtre_liste($id, $category); // renvoie une chaîne vide si pas ok
}
$id_is_ok = (!$filtrer_id or in_array($id, $filtrer_id));
$category_is_ok = (!$filtrer_category or ($filtrer_category and $id));
if ($status_is_ok
and $id_is_ok
and $category_is_ok
){
$listes[$id] = array(
'id' => $id,
'titre' => $kl['titre'],
'status' => $status
);
}
}
}
// puis trouver toutes les listes qui existent en base et non connues en config
// pas la peine si on a demande de filtrer les listes open ou close
if ($filtrer_status!=='?') {
// sauf si on a demandé des statuts spécifiques, dans ce cas il faut indiquer "?"
// (ces listes n'ont pas de status)
if (!$filtrer_status
or ($filtrer_status and in_array('?', $filtrer_status))
) {
$rows = sql_allfetsel("DISTINCT listes","spip_mailsubscribers","statut!=".sql_quote('poubelle'));
foreach ($rows as $row){
$ll = explode(",",$row['listes']);
foreach($ll as $l){
if ($id=$l
AND (
!$filtrer_category OR $id=mailsubscribers_filtre_liste($l,$filtrer_category)
)){
if (!isset($listes[$id]))
$listes[$id] = array('id'=>$id,'titre'=>$id,'status'=>'?');
// si on filtre par catégorie ou par id, on enlève le prefixe de catégorie avant l'id
$id = $l;
if ($filtrer_id
or $filtrer_category
) {
$category = ($filtrer_category ? $filtrer_category : 'newsletter');
$id = mailsubscribers_filtre_liste($id, $category); // renvoie une chaîne vide si pas ok
}
$id_is_ok = (!$filtrer_id or in_array($id, $filtrer_id));
$category_is_ok = (!$filtrer_category or ($filtrer_category and $id));
if ($id_is_ok
and $category_is_ok
and !isset($listes[$id])
) {
$listes[$id] = array('id'=>$id,'titre'=>$id,'status'=>'?');
}
}
}

26
lang/mailsubscriber.xml

@ -1,20 +1,20 @@
<traduction module="mailsubscriber" gestionnaire="salvatore" url="http://trad.spip.net" source="svn://zone.spip.org/spip-zone/_plugins_/mailsubscribers/trunk/lang/" reference="fr">
<langue code="de" url="http://trad.spip.net/tradlang_module/mailsubscriber?lang_cible=de" total="82" traduits="81" relire="0" modifs="0" nouveaux="1" pourcent="98.78">
<traducteur nom="Torsten Willmann" lien="http://trad.spip.net/auteur/torsten-willmann" />
<traduction module="mailsubscriber" gestionnaire="salvatore" url="https://trad.spip.net" source="svn://zone.spip.org/spip-zone/_plugins_/mailsubscribers/trunk/lang/" reference="fr">
<langue code="de" url="https://trad.spip.net/tradlang_module/mailsubscriber?lang_cible=de" total="82" traduits="81" relire="0" modifs="0" nouveaux="1" pourcent="98.78">
<traducteur nom="Torsten Willmann" lien="https://trad.spip.net/auteur/torsten-willmann" />
</langue>
<langue code="en" url="http://trad.spip.net/tradlang_module/mailsubscriber?lang_cible=en" total="82" traduits="82" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<traducteur nom="Hanjo" lien="http://trad.spip.net/auteur/hanjo" />
<langue code="en" url="https://trad.spip.net/tradlang_module/mailsubscriber?lang_cible=en" total="82" traduits="82" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<traducteur nom="Hanjo" lien="https://trad.spip.net/auteur/hanjo" />
</langue>
<langue code="fr" url="http://trad.spip.net/tradlang_module/mailsubscriber?lang_cible=fr" total="82" traduits="82" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<langue code="fr" url="https://trad.spip.net/tradlang_module/mailsubscriber?lang_cible=fr" total="82" traduits="82" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
</langue>
<langue code="nl" url="http://trad.spip.net/tradlang_module/mailsubscriber?lang_cible=nl" total="82" traduits="82" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<traducteur nom="Hanjo" lien="http://trad.spip.net/auteur/hanjo" />
<langue code="nl" url="https://trad.spip.net/tradlang_module/mailsubscriber?lang_cible=nl" total="82" traduits="82" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<traducteur nom="Hanjo" lien="https://trad.spip.net/auteur/hanjo" />
</langue>
<langue code="pt_br" url="http://trad.spip.net/tradlang_module/mailsubscriber?lang_cible=pt_br" total="82" traduits="81" relire="0" modifs="0" nouveaux="1" pourcent="98.78">
<traducteur nom="placido" lien="http://trad.spip.net/auteur/placido" />
<traducteur nom="Ricardo Porto" lien="http://trad.spip.net/auteur/ricardo-porto" />
<langue code="pt_br" url="https://trad.spip.net/tradlang_module/mailsubscriber?lang_cible=pt_br" total="82" traduits="81" relire="0" modifs="0" nouveaux="1" pourcent="98.78">
<traducteur nom="placido" lien="https://trad.spip.net/auteur/placido" />
<traducteur nom="Ricardo Porto" lien="https://trad.spip.net/auteur/ricardo-porto" />
</langue>
<langue code="ru" url="http://trad.spip.net/tradlang_module/mailsubscriber?lang_cible=ru" total="82" traduits="65" relire="0" modifs="0" nouveaux="17" pourcent="79.27">
<traducteur nom="Serge Markitanenko" lien="http://trad.spip.net/auteur/serge-markitanenko" />
<langue code="ru" url="https://trad.spip.net/tradlang_module/mailsubscriber?lang_cible=ru" total="82" traduits="65" relire="0" modifs="0" nouveaux="17" pourcent="79.27">
<traducteur nom="Serge Markitanenko" lien="https://trad.spip.net/auteur/serge-markitanenko" />
</langue>
</traduction>

2
lang/mailsubscriber_de.php

@ -1,6 +1,6 @@
<?php
// This is a SPIP language file -- Ceci est un fichier langue de SPIP
// extrait automatiquement de http://trad.spip.net/tradlang_module/mailsubscriber?lang_cible=de
// extrait automatiquement de https://trad.spip.net/tradlang_module/mailsubscriber?lang_cible=de
// ** ne pas modifier le fichier **
if (!defined('_ECRIRE_INC_VERSION')) {

2
lang/mailsubscriber_en.php

@ -1,6 +1,6 @@
<?php
// This is a SPIP language file -- Ceci est un fichier langue de SPIP
// extrait automatiquement de http://trad.spip.net/tradlang_module/mailsubscriber?lang_cible=en
// extrait automatiquement de https://trad.spip.net/tradlang_module/mailsubscriber?lang_cible=en
// ** ne pas modifier le fichier **
if (!defined('_ECRIRE_INC_VERSION')) {

6
lang/mailsubscriber_fr.php

@ -30,6 +30,8 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'erreur_adresse_existante' => 'Cette adresse email est déjà dans la liste',
'erreur_technique_subscribe' => 'Une erreur technique a empêché votre inscription.',
'explication_to_email' => 'Envoyer un email de pré-inscription aux adresses suivantes (plusieurs adresses séparées par une virgule si besoin).',
'explication_listes_diffusion_option_defaut' => 'Un ou plusieurs identifiants de listes séparés par des virgules',
'explication_listes_diffusion_option_statut' => 'Filtrer les listes selon les statuts',
// I
'icone_creer_mailsubscriber' => 'Ajouter une inscription',
@ -66,6 +68,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'label_toutes_les_listes' => 'Toutes',
'label_valid_subscribers_1' => 'Valider directement les inscriptions sans demande de confirmation',
'label_vider_table_1' => 'Supprimer toutes les adresses en base avant cet import',
'label_listes_diffusion_option_statut' => 'Statut',
// M
'mailsubscribers_poubelle' => 'Supprimés',
@ -93,7 +96,8 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'texte_statut_refuse' => 'suspendue',
'texte_statut_valide' => 'active',
'titre_bonjour' => 'Bonjour',
'titre_export_mailsubscribers' => 'Exporter les inscrits',
'titre_export_mailsubscribers' => 'Exporter tous les inscrits',
'titre_export_mailsubscribers_liste_courante' => 'Exporter les inscrits de la liste selectionnée',
'titre_export_mailsubscribers_all' => 'Exporter toutes les adresses',
'titre_import_mailsubscribers' => 'Importer des adresses',
'titre_langue_mailsubscriber' => 'Langue de cet inscrit',

2
lang/mailsubscriber_nl.php

@ -1,6 +1,6 @@
<?php
// This is a SPIP language file -- Ceci est un fichier langue de SPIP
// extrait automatiquement de http://trad.spip.net/tradlang_module/mailsubscriber?lang_cible=nl
// extrait automatiquement de https://trad.spip.net/tradlang_module/mailsubscriber?lang_cible=nl
// ** ne pas modifier le fichier **
if (!defined('_ECRIRE_INC_VERSION')) {

2
lang/mailsubscriber_pt_br.php

@ -1,6 +1,6 @@
<?php
// This is a SPIP language file -- Ceci est un fichier langue de SPIP
// extrait automatiquement de http://trad.spip.net/tradlang_module/mailsubscriber?lang_cible=pt_br
// extrait automatiquement de https://trad.spip.net/tradlang_module/mailsubscriber?lang_cible=pt_br
// ** ne pas modifier le fichier **
if (!defined('_ECRIRE_INC_VERSION')) {

2
lang/mailsubscriber_ru.php

@ -1,6 +1,6 @@
<?php
// This is a SPIP language file -- Ceci est un fichier langue de SPIP
// extrait automatiquement de http://trad.spip.net/tradlang_module/mailsubscriber?lang_cible=ru
// extrait automatiquement de https://trad.spip.net/tradlang_module/mailsubscriber?lang_cible=ru
// ** ne pas modifier le fichier **
if (!defined('_ECRIRE_INC_VERSION')) {

22
lang/mailsubscriberscfg.xml

@ -1,18 +1,18 @@
<traduction module="mailsubscriberscfg" gestionnaire="salvatore" url="http://trad.spip.net" source="svn://zone.spip.org/spip-zone/_plugins_/mailsubscribers/trunk/lang/" reference="fr">
<langue code="de" url="http://trad.spip.net/tradlang_module/mailsubscriberscfg?lang_cible=de" total="19" traduits="19" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<traducteur nom="Torsten Willmann" lien="http://trad.spip.net/auteur/torsten-willmann" />
<traduction module="mailsubscriberscfg" gestionnaire="salvatore" url="https://trad.spip.net" source="svn://zone.spip.org/spip-zone/_plugins_/mailsubscribers/trunk/lang/" reference="fr">
<langue code="de" url="https://trad.spip.net/tradlang_module/mailsubscriberscfg?lang_cible=de" total="19" traduits="19" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<traducteur nom="Torsten Willmann" lien="https://trad.spip.net/auteur/torsten-willmann" />
</langue>
<langue code="en" url="http://trad.spip.net/tradlang_module/mailsubscriberscfg?lang_cible=en" total="19" traduits="19" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<langue code="en" url="https://trad.spip.net/tradlang_module/mailsubscriberscfg?lang_cible=en" total="19" traduits="19" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
</langue>
<langue code="fr" url="http://trad.spip.net/tradlang_module/mailsubscriberscfg?lang_cible=fr" total="19" traduits="19" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<langue code="fr" url="https://trad.spip.net/tradlang_module/mailsubscriberscfg?lang_cible=fr" total="19" traduits="19" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
</langue>
<langue code="nl" url="http://trad.spip.net/tradlang_module/mailsubscriberscfg?lang_cible=nl" total="19" traduits="19" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<traducteur nom="Hanjo" lien="http://trad.spip.net/auteur/hanjo" />
<langue code="nl" url="https://trad.spip.net/tradlang_module/mailsubscriberscfg?lang_cible=nl" total="19" traduits="19" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<traducteur nom="Hanjo" lien="https://trad.spip.net/auteur/hanjo" />
</langue>
<langue code="pt_br" url="http://trad.spip.net/tradlang_module/mailsubscriberscfg?lang_cible=pt_br" total="19" traduits="19" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<traducteur nom="Ricardo Porto" lien="http://trad.spip.net/auteur/ricardo-porto" />
<langue code="pt_br" url="https://trad.spip.net/tradlang_module/mailsubscriberscfg?lang_cible=pt_br" total="19" traduits="19" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<traducteur nom="Ricardo Porto" lien="https://trad.spip.net/auteur/ricardo-porto" />
</langue>
<langue code="ru" url="http://trad.spip.net/tradlang_module/mailsubscriberscfg?lang_cible=ru" total="19" traduits="19" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<traducteur nom="Serge Markitanenko" lien="http://trad.spip.net/auteur/serge-markitanenko" />
<langue code="ru" url="https://trad.spip.net/tradlang_module/mailsubscriberscfg?lang_cible=ru" total="19" traduits="19" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<traducteur nom="Serge Markitanenko" lien="https://trad.spip.net/auteur/serge-markitanenko" />
</langue>
</traduction>

2
lang/mailsubscriberscfg_de.php

@ -1,6 +1,6 @@
<?php
// This is a SPIP language file -- Ceci est un fichier langue de SPIP
// extrait automatiquement de http://trad.spip.net/tradlang_module/mailsubscriberscfg?lang_cible=de
// extrait automatiquement de https://trad.spip.net/tradlang_module/mailsubscriberscfg?lang_cible=de
// ** ne pas modifier le fichier **
if (!defined('_ECRIRE_INC_VERSION')) {

2
lang/mailsubscriberscfg_en.php

@ -1,6 +1,6 @@
<?php
// This is a SPIP language file -- Ceci est un fichier langue de SPIP
// extrait automatiquement de http://trad.spip.net/tradlang_module/mailsubscriberscfg?lang_cible=en
// extrait automatiquement de https://trad.spip.net/tradlang_module/mailsubscriberscfg?lang_cible=en
// ** ne pas modifier le fichier **
if (!defined('_ECRIRE_INC_VERSION')) {

2
lang/mailsubscriberscfg_nl.php

@ -1,6 +1,6 @@
<?php
// This is a SPIP language file -- Ceci est un fichier langue de SPIP
// extrait automatiquement de http://trad.spip.net/tradlang_module/mailsubscriberscfg?lang_cible=nl
// extrait automatiquement de https://trad.spip.net/tradlang_module/mailsubscriberscfg?lang_cible=nl
// ** ne pas modifier le fichier **
if (!defined('_ECRIRE_INC_VERSION')) {

2
lang/mailsubscriberscfg_pt_br.php

@ -1,6 +1,6 @@
<?php
// This is a SPIP language file -- Ceci est un fichier langue de SPIP
// extrait automatiquement de http://trad.spip.net/tradlang_module/mailsubscriberscfg?lang_cible=pt_br
// extrait automatiquement de https://trad.spip.net/tradlang_module/mailsubscriberscfg?lang_cible=pt_br
// ** ne pas modifier le fichier **
if (!defined('_ECRIRE_INC_VERSION')) {

2
lang/mailsubscriberscfg_ru.php

@ -1,6 +1,6 @@
<?php
// This is a SPIP language file -- Ceci est un fichier langue de SPIP
// extrait automatiquement de http://trad.spip.net/tradlang_module/mailsubscriberscfg?lang_cible=ru
// extrait automatiquement de https://trad.spip.net/tradlang_module/mailsubscriberscfg?lang_cible=ru
// ** ne pas modifier le fichier **
if (!defined('_ECRIRE_INC_VERSION')) {

2
lang/newsletter_de.php

@ -16,7 +16,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'label_link_unsubscribe' => 'Diesen Newsletter abbestellen',
// S
'subscribe_message_ok' => 'Ihre ANmeldung unter der Adresse @email@ wird bearbeitet.',
'subscribe_message_ok' => 'Ihre Anmeldung unter der Adresse @email@ wird bearbeitet.',
'unsubscribe_message_ok' => 'Die Adresse @email@ wurde aus der Empfängerliste gestrichen.',

14
lang/paquet-mailsubscribers.xml

@ -1,13 +1,13 @@
<traduction module="paquet-mailsubscribers" gestionnaire="salvatore" url="http://trad.spip.net" source="svn://zone.spip.org/spip-zone/_plugins_/mailsubscribers/trunk/lang/" reference="fr">
<langue code="de" url="http://trad.spip.net/tradlang_module/paquet-mailsubscribers?lang_cible=de" total="2" traduits="2" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<traduction module="paquet-mailsubscribers" gestionnaire="salvatore" url="https://trad.spip.net" source="svn://zone.spip.org/spip-zone/_plugins_/mailsubscribers/trunk/lang/" reference="fr">
<langue code="de" url="https://trad.spip.net/tradlang_module/paquet-mailsubscribers?lang_cible=de" total="2" traduits="2" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
</langue>
<langue code="en" url="http://trad.spip.net/tradlang_module/paquet-mailsubscribers?lang_cible=en" total="2" traduits="2" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<langue code="en" url="https://trad.spip.net/tradlang_module/paquet-mailsubscribers?lang_cible=en" total="2" traduits="2" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
</langue>
<langue code="fr" url="http://trad.spip.net/tradlang_module/paquet-mailsubscribers?lang_cible=fr" total="2" traduits="2" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<langue code="fr" url="https://trad.spip.net/tradlang_module/paquet-mailsubscribers?lang_cible=fr" total="2" traduits="2" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
</langue>
<langue code="nl" url="http://trad.spip.net/tradlang_module/paquet-mailsubscribers?lang_cible=nl" total="2" traduits="2" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<langue code="nl" url="https://trad.spip.net/tradlang_module/paquet-mailsubscribers?lang_cible=nl" total="2" traduits="2" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
</langue>
<langue code="pt_br" url="http://trad.spip.net/tradlang_module/paquet-mailsubscribers?lang_cible=pt_br" total="2" traduits="2" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<traducteur nom="placido" lien="http://trad.spip.net/auteur/placido" />
<langue code="pt_br" url="https://trad.spip.net/tradlang_module/paquet-mailsubscribers?lang_cible=pt_br" total="2" traduits="2" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<traducteur nom="placido" lien="https://trad.spip.net/auteur/placido" />
</langue>
</traduction>

2
lang/paquet-mailsubscribers_de.php

@ -1,6 +1,6 @@
<?php
// This is a SPIP language file -- Ceci est un fichier langue de SPIP
// extrait automatiquement de http://trad.spip.net/tradlang_module/paquet-mailsubscribers?lang_cible=de
// extrait automatiquement de https://trad.spip.net/tradlang_module/paquet-mailsubscribers?lang_cible=de
// ** ne pas modifier le fichier **
if (!defined('_ECRIRE_INC_VERSION')) {

2
lang/paquet-mailsubscribers_en.php

@ -1,6 +1,6 @@
<?php
// This is a SPIP language file -- Ceci est un fichier langue de SPIP
// extrait automatiquement de http://trad.spip.net/tradlang_module/paquet-mailsubscribers?lang_cible=en
// extrait automatiquement de https://trad.spip.net/tradlang_module/paquet-mailsubscribers?lang_cible=en
// ** ne pas modifier le fichier **
if (!defined('_ECRIRE_INC_VERSION')) {

2
lang/paquet-mailsubscribers_nl.php

@ -1,6 +1,6 @@
<?php
// This is a SPIP language file -- Ceci est un fichier langue de SPIP
// extrait automatiquement de http://trad.spip.net/tradlang_module/paquet-mailsubscribers?lang_cible=nl
// extrait automatiquement de https://trad.spip.net/tradlang_module/paquet-mailsubscribers?lang_cible=nl
// ** ne pas modifier le fichier **
if (!defined('_ECRIRE_INC_VERSION')) {

2
lang/paquet-mailsubscribers_pt_br.php

@ -1,6 +1,6 @@
<?php
// This is a SPIP language file -- Ceci est un fichier langue de SPIP
// extrait automatiquement de http://trad.spip.net/tradlang_module/paquet-mailsubscribers?lang_cible=pt_br
// extrait automatiquement de https://trad.spip.net/tradlang_module/paquet-mailsubscribers?lang_cible=pt_br
// ** ne pas modifier le fichier **
if (!defined('_ECRIRE_INC_VERSION')) {

5
mailsubscribers_administrations.php

@ -5,7 +5,9 @@
* Licence GNU/GPL v3
*/
if (!defined('_ECRIRE_INC_VERSION')) return;
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
/**
@ -290,4 +292,3 @@ function mailsubscribers_vider_tables($nom_meta_base_version) {
effacer_meta($nom_meta_base_version);
}
?>

5
mailsubscribers_autorisations.php

@ -5,7 +5,9 @@
* Licence GNU/GPL v3
*/
if (!defined('_ECRIRE_INC_VERSION')) return;
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
// declaration vide pour ce pipeline.
function mailsubscribers_autoriser(){}
@ -49,4 +51,3 @@ function autoriser_mailsubscriber_supprimer_dist($faire, $type, $id, $qui, $opt)
?>

21
mailsubscribers_fonctions.php

@ -5,7 +5,9 @@
* Licence GNU/GPL v3
*/
if (!defined('_ECRIRE_INC_VERSION')) return;
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
function mailsubscriber_cle_action($action,$email,$jeton){
@ -32,3 +34,20 @@ function mailsubscriber_url_confirm($email,$jeton,$sep="&amp;"){
$url = parametre_url($url,"arg",mailsubscriber_cle_action("confirm",$email,$jeton),$sep);
return $url;
}
/**
* Un filtre pour lister les listes de diffusion dans un squelette
*
* @Note
* Les listes sont stockées différement entre la branche 1 et 2
*
* @uses mailsubscribers_listes
* @param array $options
* voir mailsubscribers_listes()
* @return array|int
*/
function filtre_mailsubscribers_listes_dist($options = array()) {
include_spip('inc/mailsubscribers');
return mailsubscribers_listes($options);
}

4
mailsubscribers_pipelines.php

@ -5,7 +5,9 @@
* Licence GNU/GPL v3
*/
if (!defined('_ECRIRE_INC_VERSION')) return;
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
function mailsubscribers_taches_generales_cron($taches){
// a peu pres tous les jours mais en se decalant un peu

4
newsletter/lists.php

@ -6,7 +6,9 @@
*
*/
if (!defined('_ECRIRE_INC_VERSION')) return;
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
include_spip('inc/config');
include_spip('inc/mailsubscribers');

4
newsletter/subscribe.php

@ -6,7 +6,9 @@
*
*/
if (!defined('_ECRIRE_INC_VERSION')) return;
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
include_spip("action/editer_objet");
include_spip('inc/mailsubscribers');

4
newsletter/subscriber.php

@ -6,7 +6,9 @@
*
*/
if (!defined('_ECRIRE_INC_VERSION')) return;
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
include_spip('inc/mailsubscribers');
include_spip('mailsubscribers_fonctions');

4
newsletter/subscribers.php

@ -6,7 +6,9 @@
*
*/
if (!defined('_ECRIRE_INC_VERSION')) return;
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
include_spip('inc/mailsubscribers');
include_spip('mailsubscribers_fonctions');

4
newsletter/unsubscribe.php

@ -6,7 +6,9 @@
*
*/
if (!defined('_ECRIRE_INC_VERSION')) return;
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
include_spip("action/editer_objet");
include_spip('inc/mailsubscribers');

8
notifications/instituermailsubscriber.php

@ -5,10 +5,12 @@
* Licence GNU/GPL v3
*/
if (!defined('_ECRIRE_INC_VERSION')) return;
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
// Fonction appelee par divers pipelines
// http://doc.spip.org/@notifications_instituerarticle_dist
// https://code.spip.net/@notifications_instituerarticle_dist
function notifications_instituermailsubscriber_dist($quoi, $id_mailsubscriber, $options) {
// ne devrait jamais se produire
@ -69,4 +71,4 @@ function notifications_instituermailsubscriber_dist($quoi, $id_mailsubscriber, $
}
}
?>

10
paquet.xml

@ -1,11 +1,11 @@
<paquet
prefix="mailsubscribers"
categorie="communication"
version="1.9.0"
version="1.10.2"
etat="stable"
compatibilite="[3.0.0;3.1.*]"
compatibilite="[3.0.0;3.2.*]"
logo="prive/themes/spip/images/mailsubscriber-32.png"
documentation="http://contrib.spip.net/mailsubscribers"
documentation="https://contrib.spip.net/mailsubscribers"
schema="0.3.0"
>
<nom>MailSubscribers</nom>
@ -28,5 +28,5 @@
<pipeline nom="taches_generales_cron" inclure="mailsubscribers_pipelines.php" />
<menu nom="mailsubscribers" titre="mailsubscriber:titre_mailsubscribers" parent="menu_activite" icone="images/mailsubscriber-16.png" action="mailsubscribers" />
<necessite nom="facteur" compatibilite="[2.4.5;]" />
</paquet>
<necessite nom="facteur" compatibilite="[3.6.2;]" />
</paquet>

2
prive/objets/liste/mailsubscribers.html

@ -18,7 +18,7 @@
</tr>
</thead>
<tbody>
<BOUCLE_mailsubscribers(MAILSUBSCRIBERS){id_mot?}{id_auteur?}{where?}{statut?}{listes==#GET{listes}}{recherche?}{tri #ENV{par,num email},#GET{defaut_tri}}{par email}{pagination #ENV{nb,10}}>
<BOUCLE_mailsubscribers(MAILSUBSCRIBERS){id_mailsubscriber?}{id_mot?}{id_auteur?}{where?}{statut?}{listes==#GET{listes}}{recherche?}{tri #ENV{par,num email},#GET{defaut_tri}}{par email}{pagination #ENV{nb,10}}>
<tr class='[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]'>
<td class='picto'>[(#CHEMIN_IMAGE{mailsubscriber-16.png}|balise_img)]</td>
<td class='statut'>[(#STATUT|puce_statut{mailsubscriber,#ID_MAILSUBSCRIBER})]</td>

7
prive/squelettes/navigation/mailsubscribers.html

@ -20,9 +20,14 @@
]
[(#PLUGIN{spip_bonux}|non)
<p>Pour importer ou exporter les listes d'inscrits, installez le plugin <a href="http://plugins.spip.net/spip_bonux">SPIP-Bonux</a></p>
<p>Pour importer ou exporter les listes d'inscrits, installez le plugin <a href="https://plugins.spip.net/spip_bonux">SPIP-Bonux</a></p>
]
[(#PLUGIN{spip_bonux}|oui)
[(#ENV{liste}|oui)
[(#URL_ACTION_AUTEUR{mailsubscribers_export,valide~~#ENV{liste}}|icone_horizontale{<:mailsubscriber:titre_export_mailsubscribers_liste_courante:>,mailsubscriber-24,export})]
<hr />
]
[(#URL_ACTION_AUTEUR{mailsubscribers_export,valide}|icone_horizontale{<:mailsubscriber:titre_export_mailsubscribers:>,mailsubscriber-24,export})]
[(#URL_ACTION_AUTEUR{mailsubscribers_export,all}|icone_horizontale{<:mailsubscriber:titre_export_mailsubscribers_all:>,mailsubscriber-24,export})]

5
prive/squelettes/navigation/mailsubscribers_fonctions.php

@ -5,5 +5,8 @@
* Licence GNU/GPL v3
*/
if (!defined('_ECRIRE_INC_VERSION')) return;
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
include_spip("inc/mailsubscribers");

2
saisies-vues/listes_diffusion.html

@ -0,0 +1,2 @@
[(#REM) On réutilise la saisie checkbox ]
<INCLURE{fond=saisies-vues/checkbox, env} />

36
saisies/listes_diffusion.html

@ -0,0 +1,36 @@
[(#REM)
Choix de listes de diffusions sous forme de cases à cocher.
Par défaut uniquement celles ouvertes.
Parametres :
- class : classe(s) css ajoutes au select
- defaut : valeur par defaut si pas présente dans l'environnement
identifiants séparés par des virgules ou sous forme de tableau
- valeur_forcee : valeur utilisee meme si une valeur est dans l'environnement
- statut : (string|array) filtrer par statut, par défaut "open"
statuts séparés par des virgules ou sous forme de tableau
open | close
- identifiant : (string|array) filtrer par identifiant
identifiants séparés par des virgules ou sous forme de tableau
- category : (string) filtrer par catégorie
Exemples d'appel :
[(#SAISIE{listes_diffusion,
label=<:newsletter:label_subscribe_lists:>})]
]
[(#REM) Normaliser les valeurs et récupérer les listes ]
#SET{defaut,#ENV{defaut}|saisies_chaine2tableau}
#SET{options,#ARRAY{
status, #ENV{statut,open},
id, #ENV{identifiant},
category, #ENV{category}
}}
#SET{datas,#ARRAY}
<BOUCLE_datas(DATA){source table, #GET{options}|mailsubscribers_listes}>
#SET{datas, #GET{datas}|array_merge{#ARRAY{#ID,#TITRE}}}
</BOUCLE_datas>
[(#REM) On réutilise la saisie checkbox ]
<INCLURE{fond=saisies/checkbox, datas=#GET{datas}, defaut=#GET{defaut}, env} />

120
saisies/listes_diffusion.yaml

@ -0,0 +1,120 @@
titre: '<:mailsubscriber:titre_listes_de_diffusion:>'
description: 'Sélecteur de listes de diffusion'
icone: 'prive/themes/spip/images/mailsubscribinglist-16.png'
options:
-
saisie: 'fieldset'
options:
nom: 'description'
label: '<:saisies:option_groupe_description:>'
saisies:
-
saisie: 'input'
options:
nom: 'label'
label: '<:saisies:option_label_label:>'
explication: '<:saisies:option_label_explication:>'
size: 50
-
saisie: 'input'
options:
nom: 'explication'
label: '<:saisies:option_explication_label:>'
explication: '<:saisies:option_explication_explication:>'
size: 50
-
saisie: 'input'
options:
nom: 'defaut'
label: '<:saisies:option_defaut_label:>'
explication: '<:mailsubscriber:explication_listes_diffusion_option_defaut:>'
size: 50
-
saisie: 'checkbox'
options:
nom: 'statut'
label: '<:mailsubscriber:label_listes_diffusion_option_statut:>'
explication: '<:mailsubscriber:explication_listes_diffusion_option_statut:>'
defaut: 'ouverte'
datas:
ouverte: '<:mailsubscribinglist:texte_statut_ouverte:>'
fermee: '<:mailsubscribinglist:texte_statut_fermee:>'
poubelle: '<:texte_statut_poubelle:>'
-
saisie: 'fieldset'
options:
nom: 'utilisation'
label: '<:saisies:option_groupe_utilisation:>'
saisies:
-
saisie: 'oui_non'
options:
nom: 'disable'
label: '<:saisies:option_disable_label:>'
explication: '<:saisies:option_disable_explication:>'
-
saisie: 'oui_non'
options:
nom: 'disable_avec_post'
label: '<:saisies:option_disable_avec_post_label:>'
explication: '<:saisies:option_disable_avec_post_explication:>'
-
saisie: 'fieldset'
options:
nom: 'affichage'
label: '<:saisies:option_groupe_affichage:>'
saisies:
-
saisie: 'textarea'
options:
nom: 'afficher_si'
label: '<:saisies:option_afficher_si_label:>'
explication: '<:saisies:option_afficher_si_explication:>'
rows: 5
-
saisie: 'textarea'
options:
nom: 'afficher_si_remplissage'
label: '<:saisies:option_afficher_si_remplissage_label:>'
explication: '<:saisies:option_afficher_si_remplissage_explication:>'
rows: 5
-
saisie: 'input'
options:
nom: 'attention'
label: '<:saisies:option_attention_label:>'
explication: '<:saisies:option_attention_explication:>'
size: 50
-
saisie: 'input'
options:
nom: 'class'
label: '<:saisies:option_class_label:>'
size: 50
-
saisie: 'input'
options:
nom: 'info_obligatoire'
label: '<:saisies:option_info_obligatoire_label:>'
explication: '<:saisies:option_info_obligatoire_explication:>'
-
saisie: 'fieldset'
options:
nom: 'obligatoire'
label: '<:saisies:option_groupe_validation:>'
saisies:
-
saisie: 'oui_non'
options:
nom: 'obligatoire'
label: '<:saisies:option_obligatoire_label:>'
-
saisie: 'input'
options:
nom: 'erreur_obligatoire'
label: '<:saisies:option_erreur_obligatoire_label:>'
explication: '<:saisies:option_erreur_obligatoire_explication:>'
defaut:
options:
label: '<:newsletter:label_subscribe_lists:>'
Loading…
Cancel
Save