erational 3 months ago
parent
commit
2e6f886bc0
  1. 26
      action/supprimer_lettre.php
  2. 43
      base/malettre.php
  3. 370
      formulaires/configurer_malettre.html
  4. 59
      formulaires/editer_malettre.html
  5. 151
      formulaires/envoi_malettre.html
  6. 490
      formulaires/envoi_malettre.php
  7. 38
      inclure/liste_lettre.html
  8. 3
      lang/paquet-malettre_fr.php
  9. 11
      malettre_administrations.php
  10. 5
      malettre_autoriser.php
  11. 37
      malettre_fonctions.php
  12. 20
      prive/listes/inc-lister-articlesmalettre.html
  13. 24
      prive/listes/inc-lister-evenementsmalettre.html
  14. 127
      public/malettre.html
  15. 6
      public/malettre_txt.html

26
action/supprimer_lettre.php

@ -16,21 +16,21 @@ function action_supprimer_lettre_dist() {
}
function action_supprimer_lettre_post($id_malettre) {
$id_malettre = intval($id_malettre);
// recuperer les urls pour les effacer
$result = sql_select('*',"spip_meslettres", "id_malettre=" . intval($id_malettre),'','',1);
while ($row = sql_fetch($result)){
$url_html = $row['url_html'];
spip_unlink(_DIR_IMG .$url_html);
$url_txt = $row['url_txt'];
spip_unlink(_DIR_IMG.$url_txt);
}
// effacer base
$id_malettre = intval($id_malettre);
// recuperer les urls pour les effacer
$result = sql_select('*',"spip_meslettres", "id_malettre=" . intval($id_malettre),'','',1);
while ($row = sql_fetch($result)){
$url_html = $row['url_html'];
spip_unlink(_DIR_IMG .$url_html);
$url_txt = $row['url_txt'];
spip_unlink(_DIR_IMG.$url_txt);
}
// effacer base
sql_delete("spip_meslettres", "id_malettre=" . intval($id_malettre));
include_spip('inc/invalideur');
suivre_invalideur("id='id_malettre/$id_malettre'");
}

43
base/malettre.php

@ -12,32 +12,29 @@ function malettre_declarer_tables_interfaces($interface){
function malettre_declarer_tables_objets_sql($tables){
/* Declaration de la table archive des lettres */
$tables['spip_meslettres'] = array(
/* Declaration de la table archive des lettres */
$tables['spip_meslettres'] = array(
/* Declarations principales */
'table_objet' => 'meslettres',
'table_objet_surnoms' => array('meslettres'),
'type' => 'meslettres',
'type_surnoms' => array('meslettres'),
'table_objet' => 'meslettres',
'table_objet_surnoms' => array('meslettres'),
'type' => 'meslettres',
'type_surnoms' => array('meslettres'),
/* La table */
'field'=> array(
"id_malettre" => "bigint(21) NOT NULL",
"titre" => "text NOT NULL",
"lang" => "varchar(255) NOT NULL",
"url_html" => "varchar(255) NULL",
"url_txt" => "varchar(255) NOT NULL",
"date" => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL"
),
'key' => array(
"PRIMARY KEY" => "id_malettre",
),
'principale' => 'oui'
);
'field'=> array(
"id_malettre" => "bigint(21) NOT NULL",
"titre" => "text NOT NULL",
"lang" => "varchar(255) NOT NULL",
"url_html" => "varchar(255) NULL",
"url_txt" => "varchar(255) NOT NULL",
"date" => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL"
),
'key' => array(
"PRIMARY KEY" => "id_malettre",
),
'principale' => 'oui'
);
return $tables;
}
}

370
formulaires/configurer_malettre.html

@ -1,205 +1,211 @@
<div class="ajax formulaire_spip formulaire_configurer formulaire_#FORM formulaire_#FORM-#ENV{id,nouveau}">
<h3 class="titrem">
[(#CHEMIN{images/malettre-24.png}|image_reduire{24}|inserer_attribut{class,cadre-icone}|inserer_attribut{alt,''})]
<:malettre:config:></h3>
[(#CHEMIN{images/malettre-24.png}|image_reduire{24}|inserer_attribut{class,cadre-icone}|inserer_attribut{alt,''})]
<:malettre:config:>
</h3>
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV**{message_ok})</p>]
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV**{message_erreur})</p>]
[(#ENV{editable})
<form method='post' action='#ENV{action}'><div>
[(#REM) declarer les hidden qui declencheront le service du formulaire
parametre : url d'action ]
#ACTION_FORMULAIRE{#ENV{action}}
<ul>
[(#REM) ------------------------ EDITO ------------------------ ]
#SET{erreurs,#ENV**{erreurs}|table_valeur{id_article_edito}}
<li class="editer_id_article_edito[ (#GET{erreurs}|oui)erreur]">
<h3 class="legend"><:malettre:edito:></h3>
<label><:malettre:edito_article_numero:></label>
[<span class='erreur_message'>(#GET{erreurs})</span>]
<input type="text" name="id_article_edito" class="text" size="3" id='id_article_edito' value="[(#ENV{id_article_edito}|intval)]" />
[<a href="[(#URL_ECRIRE{article}|parametre_url{id_article,#ENV{id_article_edito}})]">(#INFO_TITRE{article,#ENV{id_article_edito}})</a>]
</li>
[(#REM) ------------------------ CHOIX OBJETS ------------------------ ]
<li><h3 class="legend"><:malettre:choix_objets:></h3></li>
#SET{erreurs,#ENV**{erreurs}|table_valeur{choix_objets}}
<li class="editer_choix_objets[ (#GET{erreurs}|oui)erreur]">
<label><:malettre:choix_objets:></label>
[<span class='erreur_message'>(#GET{erreurs})</span>]
<div class="choix">
<input type="checkbox" name="lister_articles" class="checkbox" value="on" id='lister_articles'[ (#ENV{lister_articles}|oui)checked="checked"] />
<label for='lister_articles'><:malettre:lister_articles:></label>
</div>
[(#PLUGIN{agenda}|oui)
<div class="choix">
<input type="checkbox" name="lister_evenements" class="checkbox" value="on" id='lister_evenements'[ (#ENV{lister_evenements}|oui)checked="checked"] />
<label for='lister_evenements'><:malettre:lister_evenements:></label>
</div>
]
</li>
[(#REM) ------------------------ EXPEDITEURS ------------------------ ]
[(#REM) ------------------------ EDITO ------------------------ ]
#SET{erreurs,#ENV**{erreurs}|table_valeur{id_article_edito}}
<li class="editer_id_article_edito[ (#GET{erreurs}|oui)erreur]">
<h3 class="legend"><:malettre:edito:></h3>
<label><:malettre:edito_article_numero:></label>
[<span class='erreur_message'>(#GET{erreurs})</span>]
<input type="text" name="id_article_edito" class="text" size="3" id='id_article_edito' value="[(#ENV{id_article_edito}|intval)]" />
[<a href="[(#URL_ECRIRE{article}|parametre_url{id_article,#ENV{id_article_edito}})]">(#INFO_TITRE{article,#ENV{id_article_edito}})</a>]
</li>
[(#REM) ------------------------ CHOIX OBJETS ------------------------ ]
<li>
<h3 class="legend"><:malettre:choix_objets:></h3>
</li>
#SET{erreurs,#ENV**{erreurs}|table_valeur{choix_objets}}
<li class="editer_choix_objets[ (#GET{erreurs}|oui)erreur]">
<label><:malettre:choix_objets:></label>
[<span class='erreur_message'>(#GET{erreurs})</span>]
<div class="choix">
<input type="checkbox" name="lister_articles" class="checkbox" value="on" id='lister_articles'[ (#ENV{lister_articles}|oui)checked="checked"] />
<label for='lister_articles'><:malettre:lister_articles:></label>
</div>
[(#PLUGIN{agenda}|oui)
<div class="choix">
<input type="checkbox" name="lister_evenements" class="checkbox" value="on" id='lister_evenements'[ (#ENV{lister_evenements}|oui)checked="checked"] />
<label for='lister_evenements'><:malettre:lister_evenements:></label>
</div>
]
</li>
[(#REM) ------------------------ EXPEDITEURS ------------------------ ]
<li class="fieldset fieldset_expediteurs">
<fieldset>
<h3 class="legend"><:malettre:expediteurs:></h3>
<table>
<tr>
<td></td>
<td><:malettre:nom:></td>
<td><:malettre:email:></td>
</tr>
<tr>
<td><:malettre:adresse{num=1}:></td>
<td><input type="text" name="expediteur_nom1" value="#ENV{expediteur_nom1, pierre dupond}" id="expediteur_nom1" /></td>
<td><input type="text" name="expediteur_email1" value="#ENV{expediteur_email1, p@mondomaine.org}" id="expediteur_email1" /></td>
</tr>
<tr>
<td><:malettre:adresse{num=2}:></td>
<td><input type="text" name="expediteur_nom2" value="#ENV{expediteur_nom2,}" id="expediteur_nom2" /></td>
<td><input type="text" name="expediteur_email2" value="#ENV{expediteur_email2,}" id="expediteur_email2" /></td>
</tr>
<tr>
<td><:malettre:adresse{num=3}:></td>
<td><input type="text" name="expediteur_nom3" value="#ENV{expediteur_nom3,}" id="expediteur_nom3" /></td>
<td><input type="text" name="expediteur_email3" value="#ENV{expediteur_email3,}" id="expediteur_email3" /></td>
</tr>
<td><:malettre:adresse{num=4}:></td>
<td><input type="text" name="expediteur_nom4" value="#ENV{expediteur_nom4,}" id="expediteur_nom4" /></td>
<td><input type="text" name="expediteur_email4" value="#ENV{expediteur_email4, }" id="expediteur_email4" /></td>
</tr>
<tr>
<td><:malettre:adresse{num=5}:></td>
<td><input type="text" name="expediteur_nom5" value="#ENV{expediteur_nom5,}" id="expediteur_nom5" /></td>
<td><input type="text" name="expediteur_email5" value="#ENV{expediteur_email5,}" id="expediteur_email5" /></td>
</tr>
<tr>
<td><:malettre:adresse{num=6}:></td>
<td><input type="text" name="expediteur_nom6" value="#ENV{expediteur_nom6,}" id="expediteur_nom6" /></td>
<td><input type="text" name="expediteur_email6" value="#ENV{expediteur_email6,}" id="expediteur_email6" /></td>
</tr>
<td><:malettre:adresse{num=7}:></td>
<td><input type="text" name="expediteur_nom7" value="#ENV{expediteur_nom7,}" id="expediteur_nom7" /></td>
<td><input type="text" name="expediteur_email7" value="#ENV{expediteur_email7,}" id="expediteur_email7" /></td>
</tr>
<td><:malettre:adresse{num=8}:></td>
<td><input type="text" name="expediteur_nom8" value="#ENV{expediteur_nom8,}" id="expediteur_nom8" /></td>
<td><input type="text" name="expediteur_email8" value="#ENV{expediteur_email8, }" id="expediteur_email8" /></td>
</tr>
<tr>
<td><:malettre:adresse{num=9}:></td>
<td><input type="text" name="expediteur_nom9" value="#ENV{expediteur_nom9,}" id="expediteur_nom9" /></td>
<td><input type="text" name="expediteur_email9" value="#ENV{expediteur_email9,}" id="expediteur_email9" /></td>
</tr>
<tr>
<td><:malettre:adresse{num=10}:></td>
<td><input type="text" name="expediteur_nom10" value="#ENV{expediteur_nom10,}" id="expediteur_nom10" /></td>
<td><input type="text" name="expediteur_email10" value="#ENV{expediteur_email10,}" id="expediteur_email10" /></td>
</tr>
</table>
<fieldset>
<h3 class="legend"><:malettre:expediteurs:></h3>
<table>
<tr>
<td></td>
<td><:malettre:nom:></td>
<td><:malettre:email:></td>
</tr>
<tr>
<td><:malettre:adresse{num=1}:></td>
<td><input type="text" name="expediteur_nom1" value="#ENV{expediteur_nom1, pierre dupond}" id="expediteur_nom1" /></td>
<td><input type="text" name="expediteur_email1" value="#ENV{expediteur_email1, p@mondomaine.org}" id="expediteur_email1" /></td>
</tr>
<tr>
<td><:malettre:adresse{num=2}:></td>
<td><input type="text" name="expediteur_nom2" value="#ENV{expediteur_nom2,}" id="expediteur_nom2" /></td>
<td><input type="text" name="expediteur_email2" value="#ENV{expediteur_email2,}" id="expediteur_email2" /></td>
</tr>
<tr>
<td><:malettre:adresse{num=3}:></td>
<td><input type="text" name="expediteur_nom3" value="#ENV{expediteur_nom3,}" id="expediteur_nom3" /></td>
<td><input type="text" name="expediteur_email3" value="#ENV{expediteur_email3,}" id="expediteur_email3" /></td>
</tr>
<tr>
<td><:malettre:adresse{num=4}:></td>
<td><input type="text" name="expediteur_nom4" value="#ENV{expediteur_nom4,}" id="expediteur_nom4" /></td>
<td><input type="text" name="expediteur_email4" value="#ENV{expediteur_email4, }" id="expediteur_email4" /></td>
</tr>
<tr>
<td><:malettre:adresse{num=5}:></td>
<td><input type="text" name="expediteur_nom5" value="#ENV{expediteur_nom5,}" id="expediteur_nom5" /></td>
<td><input type="text" name="expediteur_email5" value="#ENV{expediteur_email5,}" id="expediteur_email5" /></td>
</tr>
<tr>
<td><:malettre:adresse{num=6}:></td>
<td><input type="text" name="expediteur_nom6" value="#ENV{expediteur_nom6,}" id="expediteur_nom6" /></td>
<td><input type="text" name="expediteur_email6" value="#ENV{expediteur_email6,}" id="expediteur_email6" /></td>
</tr>
<tr>
<td><:malettre:adresse{num=7}:></td>
<td><input type="text" name="expediteur_nom7" value="#ENV{expediteur_nom7,}" id="expediteur_nom7" /></td>
<td><input type="text" name="expediteur_email7" value="#ENV{expediteur_email7,}" id="expediteur_email7" /></td>
</tr>
<tr>
<td><:malettre:adresse{num=8}:></td>
<td><input type="text" name="expediteur_nom8" value="#ENV{expediteur_nom8,}" id="expediteur_nom8" /></td>
<td><input type="text" name="expediteur_email8" value="#ENV{expediteur_email8, }" id="expediteur_email8" /></td>
</tr>
<tr>
<td><:malettre:adresse{num=9}:></td>
<td><input type="text" name="expediteur_nom9" value="#ENV{expediteur_nom9,}" id="expediteur_nom9" /></td>
<td><input type="text" name="expediteur_email9" value="#ENV{expediteur_email9,}" id="expediteur_email9" /></td>
</tr>
<tr>
<td><:malettre:adresse{num=10}:></td>
<td><input type="text" name="expediteur_nom10" value="#ENV{expediteur_nom10,}" id="expediteur_nom10" /></td>
<td><input type="text" name="expediteur_email10" value="#ENV{expediteur_email10,}" id="expediteur_email10" /></td>
</tr>
</table>
</fieldset>
</li>
[(#REM) ------------------------ DESTINATAIRES ------------------------ ]
<li class="fieldset fieldset_destinataires">
<fieldset>
<h3 class="legend">Destinataires</h3>
<table>
<tr>
<td></td>
<td><:malettre:nom:></td>
<td><:malettre:email:></td>
</tr>
<tr>
<td><:malettre:adresse{num=1}:></td>
<td><input type="text" name="adresse_nom1" value="#ENV{adresse_nom1, lettre d'information}" id="adresse_nom1" /></td>
<td><input type="text" name="adresse_email1" value="#ENV{adresse_email1, info@liste.mondomaine.org}" id="adresse_email1" /></td>
</tr>
<tr>
<td><:malettre:adresse{num=2}:></td>
<td><input type="text" name="adresse_nom2" value="#ENV{adresse_nom2,}" id="adresse_nom2" /></td>
<td><input type="text" name="adresse_email2" value="#ENV{adresse_email2,}" id="adresse_email2" /></td>
</tr>
<tr>
<td><:malettre:adresse{num=3}:></td>
<td><input type="text" name="adresse_nom3" value="#ENV{adresse_nom3,}" id="adresse_nom3" /></td>
<td><input type="text" name="adresse_email3" value="#ENV{adresse_email3,}" id="adresse_email3" /></td>
</tr>
<tr>
<td><:malettre:adresse{num=4}:></td>
<td><input type="text" name="adresse_nom4" value="#ENV{adresse_nom4,}" id="adresse_nom4" /></td>
<td><input type="text" name="adresse_email4" value="#ENV{adresse_email4,}" id="adresse_email4" /></td>
</tr>
<tr>
<td><:malettre:adresse{num=5}:></td>
<td><input type="text" name="adresse_nom5" value="#ENV{adresse_nom5,}" id="adresse_nom5" /></td>
<td><input type="text" name="adresse_email5" value="#ENV{adresse_email5,}" id="adresse_email5" /></td>
</tr>
<tr>
<td><:malettre:adresse{num=6}:></td>
<td><input type="text" name="adresse_nom6" value="#ENV{adresse_nom6,}" id="adresse_nom6" /></td>
<td><input type="text" name="adresse_email6" value="#ENV{adresse_email6,}" id="adresse_email6" /></td>
</tr>
<tr>
<td><:malettre:adresse{num=7}:></td>
<td><input type="text" name="adresse_nom7" value="#ENV{adresse_nom7,}" id="adresse_nom7" /></td>
<td><input type="text" name="adresse_email7" value="#ENV{adresse_email7,}" id="adresse_email7" /></td>
</tr>
<td><:malettre:adresse{num=8}:></td>
<td><input type="text" name="adresse_nom8" value="#ENV{adresse_nom8,}" id="adresse_nom8" /></td>
<td><input type="text" name="adresse_email8" value="#ENV{adresse_email8,}" id="adresse_email8" /></td>
</tr>
<tr>
<td><:malettre:adresse{num=9}:></td>
<td><input type="text" name="adresse_nom9" value="#ENV{adresse_nom9,}" id="adresse_nom9" /></td>
<td><input type="text" name="adresse_email9" value="#ENV{adresse_email9,}" id="adresse_email9" /></td>
</tr>
<tr>
<td><:malettre:adresse{num=10}:></td>
<td><input type="text" name="adresse_nom10" value="#ENV{adresse_nom10,}" id="adresse_nom10" /></td>
<td><input type="text" name="adresse_email10" value="#ENV{adresse_email10,}" id="adresse_email10" /></td>
</tr>
<tr>
<td><:malettre:adresse{num=11}:></td>
<td><input type="text" name="adresse_nom11" value="#ENV{adresse_nom11,}" id="adresse_nom11" /></td>
<td><input type="text" name="adresse_email11" value="#ENV{adresse_email11,}" id="adresse_email11" /></td>
</tr>
<tr>
<td><:malettre:adresse{num=12}:></td>
<td><input type="text" name="adresse_nom12" value="#ENV{adresse_nom12,}" id="adresse_nom12" /></td>
<td><input type="text" name="adresse_email12" value="#ENV{adresse_email12,}" id="adresse_email12" /></td>
</tr>
<td><:malettre:adresse{num=13}:></td>
<td><input type="text" name="adresse_nom13" value="#ENV{adresse_nom13,}" id="adresse_nom13" /></td>
<td><input type="text" name="adresse_email13" value="#ENV{adresse_email13,}" id="adresse_email13" /></td>
</tr>
<tr>
<td><:malettre:adresse{num=14}:></td>
<td><input type="text" name="adresse_nom14" value="#ENV{adresse_nom14,}" id="adresse_nom14" /></td>
<td><input type="text" name="adresse_email14" value="#ENV{adresse_email14,}" id="adresse_email14" /></td>
</tr>
<tr>
<td><:malettre:adresse{num=15}:></td>
<td><input type="text" name="adresse_nom15" value="#ENV{adresse_nom15,}" id="adresse_nom15" /></td>
<td><input type="text" name="adresse_email15" value="#ENV{adresse_email15,}" id="adresse_email15" /></td>
</tr>
</table>
<table>
<tr>
<td></td>
<td><:malettre:nom:></td>
<td><:malettre:email:></td>
</tr>
<tr>
<td><:malettre:adresse{num=1}:></td>
<td><input type="text" name="adresse_nom1" value="#ENV{adresse_nom1, lettre d'information}" id="adresse_nom1" /></td>
<td><input type="text" name="adresse_email1" value="#ENV{adresse_email1, info@liste.mondomaine.org}" id="adresse_email1" /></td>
</tr>
<tr>
<td><:malettre:adresse{num=2}:></td>
<td><input type="text" name="adresse_nom2" value="#ENV{adresse_nom2,}" id="adresse_nom2" /></td>
<td><input type="text" name="adresse_email2" value="#ENV{adresse_email2,}" id="adresse_email2" /></td>
</tr>
<tr>
<td><:malettre:adresse{num=3}:></td>
<td><input type="text" name="adresse_nom3" value="#ENV{adresse_nom3,}" id="adresse_nom3" /></td>
<td><input type="text" name="adresse_email3" value="#ENV{adresse_email3,}" id="adresse_email3" /></td>
</tr>
<tr>
<td><:malettre:adresse{num=4}:></td>
<td><input type="text" name="adresse_nom4" value="#ENV{adresse_nom4,}" id="adresse_nom4" /></td>
<td><input type="text" name="adresse_email4" value="#ENV{adresse_email4,}" id="adresse_email4" /></td>
</tr>
<tr>
<td><:malettre:adresse{num=5}:></td>
<td><input type="text" name="adresse_nom5" value="#ENV{adresse_nom5,}" id="adresse_nom5" /></td>
<td><input type="text" name="adresse_email5" value="#ENV{adresse_email5,}" id="adresse_email5" /></td>
</tr>
<tr>
<td><:malettre:adresse{num=6}:></td>
<td><input type="text" name="adresse_nom6" value="#ENV{adresse_nom6,}" id="adresse_nom6" /></td>
<td><input type="text" name="adresse_email6" value="#ENV{adresse_email6,}" id="adresse_email6" /></td>
</tr>
<tr>
<td><:malettre:adresse{num=7}:></td>
<td><input type="text" name="adresse_nom7" value="#ENV{adresse_nom7,}" id="adresse_nom7" /></td>
<td><input type="text" name="adresse_email7" value="#ENV{adresse_email7,}" id="adresse_email7" /></td>
</tr>
<tr>
<td><:malettre:adresse{num=8}:></td>
<td><input type="text" name="adresse_nom8" value="#ENV{adresse_nom8,}" id="adresse_nom8" /></td>
<td><input type="text" name="adresse_email8" value="#ENV{adresse_email8,}" id="adresse_email8" /></td>
</tr>
<tr>
<td><:malettre:adresse{num=9}:></td>
<td><input type="text" name="adresse_nom9" value="#ENV{adresse_nom9,}" id="adresse_nom9" /></td>
<td><input type="text" name="adresse_email9" value="#ENV{adresse_email9,}" id="adresse_email9" /></td>
</tr>
<tr>
<td><:malettre:adresse{num=10}:></td>
<td><input type="text" name="adresse_nom10" value="#ENV{adresse_nom10,}" id="adresse_nom10" /></td>
<td><input type="text" name="adresse_email10" value="#ENV{adresse_email10,}" id="adresse_email10" /></td>
</tr>
<tr>
<td><:malettre:adresse{num=11}:></td>
<td><input type="text" name="adresse_nom11" value="#ENV{adresse_nom11,}" id="adresse_nom11" /></td>
<td><input type="text" name="adresse_email11" value="#ENV{adresse_email11,}" id="adresse_email11" /></td>
</tr>
<tr>
<td><:malettre:adresse{num=12}:></td>
<td><input type="text" name="adresse_nom12" value="#ENV{adresse_nom12,}" id="adresse_nom12" /></td>
<td><input type="text" name="adresse_email12" value="#ENV{adresse_email12,}" id="adresse_email12" /></td>
</tr>
<tr>
<td><:malettre:adresse{num=13}:></td>
<td><input type="text" name="adresse_nom13" value="#ENV{adresse_nom13,}" id="adresse_nom13" /></td>
<td><input type="text" name="adresse_email13" value="#ENV{adresse_email13,}" id="adresse_email13" /></td>
</tr>
<tr>
<td><:malettre:adresse{num=14}:></td>
<td><input type="text" name="adresse_nom14" value="#ENV{adresse_nom14,}" id="adresse_nom14" /></td>
<td><input type="text" name="adresse_email14" value="#ENV{adresse_email14,}" id="adresse_email14" /></td>
</tr>
<tr>
<td><:malettre:adresse{num=15}:></td>
<td><input type="text" name="adresse_nom15" value="#ENV{adresse_nom15,}" id="adresse_nom15" /></td>
<td><input type="text" name="adresse_email15" value="#ENV{adresse_email15,}" id="adresse_email15" /></td>
</tr>
</table>
</fieldset>
</li>
</li>
</ul>
[(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
<!--extra-->
<p class='boutons'><span class='image_loading'>&nbsp;</span>
<input type='submit' class='submit' value='<:bouton_enregistrer:>' /></p>
[(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
<!--extra-->
<p class='boutons'>
<span class='image_loading'>&nbsp;</span>
<input type='submit' class='submit' value='<:bouton_enregistrer:>' />
</p>
</div></form>
]
</div>

59
formulaires/editer_malettre.html

@ -1,36 +1,33 @@
<div class="formulaire_spip formulaire_malettre">
[<div class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</div>]
[<div class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</div>]
[<div class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</div>]
[<div class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</div>]
[(#EDITABLE|oui)
<form action="#ENV{action}" method="post"><div>
#ACTION_FORMULAIRE{#ENV{action}}
<ul style="padding:5px;">
<!-- lang -->
[(#SAISIE{hidden,lang_select,valeur_forcee=#LANG})]
<!-- titre -->
[(#SAISIE{input,lettre_title,size=25,maxlength=255,label=<strong><:malettre:compose_sujet:></strong>})]
<!-- edito -->
[(#CONFIG{malettre/id_article_edito}|oui)
[(#CONFIG{malettre/id_article_edito}|=={0}|non)
<INCLURE{fond=inclure/contenu_edito_container} />
]]
<!-- liste articles -->
[(#CONFIG{malettre/lister_articles}|=={on}|oui)
<INCLURE{fond=prive/listes/inc-lister-articlesmalettre} />]
<!-- liste evt -->
[(#CONFIG{malettre/lister_evenements}|=={on}|oui)
<INCLURE{fond=prive/listes/inc-lister-evenementsmalettre} />]
</ul>
<p class="boutons"><input type="submit" class="submit" value="<:malettre:compose_submit:>" /></p>
</div></form>
]
[(#EDITABLE|oui)
<form action="#ENV{action}" method="post">
<div>
#ACTION_FORMULAIRE{#ENV{action}}
<ul style="padding:5px;">
<!-- lang -->
[(#SAISIE{hidden,lang_select,valeur_forcee=#LANG})]
<!-- titre -->
[(#SAISIE{input,lettre_title,size=25,maxlength=255,label=<strong><:malettre:compose_sujet:></strong>})]
<!-- edito -->
[(#CONFIG{malettre/id_article_edito}|oui)
[(#CONFIG{malettre/id_article_edito}|=={0}|non) <INCLURE{fond=inclure/contenu_edito_container} />]
]
<!-- liste articles -->
[(#CONFIG{malettre/lister_articles}|=={on}|oui) <INCLURE{fond=prive/listes/inc-lister-articlesmalettre} />]
<!-- liste evt -->
[(#CONFIG{malettre/lister_evenements}|=={on}|oui) <INCLURE{fond=prive/listes/inc-lister-evenementsmalettre} />]
</ul>
<p class="boutons"><input type="submit" class="submit" value="<:malettre:compose_submit:>" /></p>
</div>
</form>
]
</div>

151
formulaires/envoi_malettre.html

@ -1,81 +1,78 @@
<div class="formulaire_spip formulaire_envoi_malettre">
[<div class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</div>]
[<div class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</div>]
[(#EDITABLE|oui)
<form action="#ENV{action}" method="post"><div>
#ACTION_FORMULAIRE{#ENV{action}}
<ul style="padding:5px;">
<!-- lang -->
[(#SAISIE{hidden,lang_select,valeur_forcee=#LANG})]
<!-- titre -->
[(#SAISIE{input,lettre_title,size=25,maxlength=255,label=<strong><:malettre:compose_sujet:></strong>})]
<!-- expediteur -->
#SET{expedi,#ARRAY}
[(#CONFIG{malettre/expediteur_email1}|oui) [(#SET{expedi,#GET{expedi}|array_merge{#ARRAY{i1, #CONFIG{malettre/expediteur_nom1} &nbsp;&lt;#CONFIG{malettre/expediteur_email1}&gt; }}})] ]
[(#CONFIG{malettre/expediteur_email2}|oui) [(#SET{expedi,#GET{expedi}|array_merge{#ARRAY{i2, #CONFIG{malettre/expediteur_nom2} &nbsp;&lt;#CONFIG{malettre/expediteur_email2}&gt; }}})] ]
[(#CONFIG{malettre/expediteur_email3}|oui) [(#SET{expedi,#GET{expedi}|array_merge{#ARRAY{i3', #CONFIG{malettre/expediteur_nom3} &nbsp;&lt;#CONFIG{malettre/expediteur_email3}&gt; }}})] ]
[(#CONFIG{malettre/expediteur_email4}|oui) [(#SET{expedi,#GET{expedi}|array_merge{#ARRAY{i4, #CONFIG{malettre/expediteur_nom4} &nbsp;&lt;#CONFIG{malettre/expediteur_email4}&gt; }}})] ]
[(#CONFIG{malettre/expediteur_email5}|oui) [(#SET{expedi,#GET{expedi}|array_merge{#ARRAY{i5, #CONFIG{malettre/expediteur_nom5} &nbsp;&lt;#CONFIG{malettre/expediteur_email5}&gt; }}})] ]
[(#CONFIG{malettre/expediteur_email6}|oui) [(#SET{expedi,#GET{expedi}|array_merge{#ARRAY{i6', #CONFIG{malettre/expediteur_nom6} &nbsp;&lt;#CONFIG{malettre/expediteur_email6}&gt; }}})] ]
[(#CONFIG{malettre/expediteur_email7}|oui) [(#SET{expedi,#GET{expedi}|array_merge{#ARRAY{i7, #CONFIG{malettre/expediteur_nom7} &nbsp;&lt;#CONFIG{malettre/expediteur_email7}&gt; }}})] ]
[(#CONFIG{malettre/expediteur_email8}|oui) [(#SET{expedi,#GET{expedi}|array_merge{#ARRAY{i8, #CONFIG{malettre/expediteur_nom8} &nbsp;&lt;#CONFIG{malettre/expediteur_email8}&gt; }}})] ]
[(#CONFIG{malettre/expediteur_email9}|oui) [(#SET{expedi,#GET{expedi}|array_merge{#ARRAY{i9', #CONFIG{malettre/expediteur_nom9} &nbsp;&lt;#CONFIG{malettre/expediteur_email9}&gt; }}})] ]
[(#CONFIG{malettre/expediteur_email10}|oui) [(#SET{expedi,#GET{expedi}|array_merge{#ARRAY{i10', #CONFIG{malettre/expediteur_nom10} &nbsp;&lt;#CONFIG{malettre/expediteur_email10}&gt; }}})] ]
[(#SAISIE{selection,expediteur,cacher_option_intro=oui,label=<strong><:malettre:expediteur:></strong>,data=#GET{expedi}})]
[(#SAISIE{input,expediteur_more,size=25,maxlength=255,label=<:malettre:autre:><br /><i>(<:malettre:email_seulement:>)</i>})]
<!-- destinataires -->
#SET{desti,#ARRAY}
<!-- FIXME passerelle vers plugin mes abonnes -->
[(#CONFIG{malettre/adresse_email1}|oui) [(#SET{desti,#GET{desti}|array_merge{#ARRAY{i1, #CONFIG{malettre/adresse_nom1} &nbsp;&lt;#CONFIG{malettre/adresse_email1}&gt; }}})] ]
[(#CONFIG{malettre/adresse_email2}|oui) [(#SET{desti,#GET{desti}|array_merge{#ARRAY{i2, #CONFIG{malettre/adresse_nom2} &nbsp;&lt;#CONFIG{malettre/adresse_email2}&gt; }}})] ]
[(#CONFIG{malettre/adresse_email3}|oui) [(#SET{desti,#GET{desti}|array_merge{#ARRAY{i3, #CONFIG{malettre/adresse_nom3} &nbsp;&lt;#CONFIG{malettre/adresse_email3}&gt; }}})] ]
[(#CONFIG{malettre/adresse_email4}|oui) [(#SET{desti,#GET{desti}|array_merge{#ARRAY{i4, #CONFIG{malettre/adresse_nom4} &nbsp;&lt;#CONFIG{malettre/adresse_email4}&gt; }}})] ]
[(#CONFIG{malettre/adresse_email5}|oui) [(#SET{desti,#GET{desti}|array_merge{#ARRAY{i5, #CONFIG{malettre/adresse_nom5} &nbsp;&lt;#CONFIG{malettre/adresse_email5}&gt; }}})] ]
[(#CONFIG{malettre/adresse_email6}|oui) [(#SET{desti,#GET{desti}|array_merge{#ARRAY{i6, #CONFIG{malettre/adresse_nom6} &nbsp;&lt;#CONFIG{malettre/adresse_email6}&gt; }}})] ]
[(#CONFIG{malettre/adresse_email7}|oui) [(#SET{desti,#GET{desti}|array_merge{#ARRAY{i7, #CONFIG{malettre/adresse_nom7} &nbsp;&lt;#CONFIG{malettre/adresse_email7}&gt; }}})] ]
[(#CONFIG{malettre/adresse_email8}|oui) [(#SET{desti,#GET{desti}|array_merge{#ARRAY{i8, #CONFIG{malettre/adresse_nom8} &nbsp;&lt;#CONFIG{malettre/adresse_email8}&gt; }}})] ]
[(#CONFIG{malettre/adresse_email9}|oui) [(#SET{desti,#GET{desti}|array_merge{#ARRAY{i9, #CONFIG{malettre/adresse_nom9} &nbsp;&lt;#CONFIG{malettre/adresse_email9}&gt; }}})] ]
[(#CONFIG{malettre/adresse_email10}|oui) [(#SET{desti,#GET{desti}|array_merge{#ARRAY{i10, #CONFIG{malettre/adresse_nom10} &nbsp;&lt;#CONFIG{malettre/adresse_email10}&gt; }}})] ]
[(#CONFIG{malettre/adresse_email11}|oui) [(#SET{desti,#GET{desti}|array_merge{#ARRAY{i11, #CONFIG{malettre/adresse_nom11} &nbsp;&lt;#CONFIG{malettre/adresse_email11}&gt; }}})] ]
[(#CONFIG{malettre/adresse_email12}|oui) [(#SET{desti,#GET{desti}|array_merge{#ARRAY{i12, #CONFIG{malettre/adresse_nom12} &nbsp;&lt;#CONFIG{malettre/adresse_email12}&gt; }}})] ]
[(#CONFIG{malettre/adresse_email13}|oui) [(#SET{desti,#GET{desti}|array_merge{#ARRAY{i13, #CONFIG{malettre/adresse_nom13} &nbsp;&lt;#CONFIG{malettre/adresse_email13}&gt; }}})] ]
[(#CONFIG{malettre/adresse_email14}|oui) [(#SET{desti,#GET{desti}|array_merge{#ARRAY{i14, #CONFIG{malettre/adresse_nom14} &nbsp;&lt;#CONFIG{malettre/adresse_email14}&gt; }}})] ]
[(#CONFIG{malettre/adresse_email15}|oui) [(#SET{desti,#GET{desti}|array_merge{#ARRAY{i15, #CONFIG{malettre/adresse_nom15} &nbsp;&lt;#CONFIG{malettre/adresse_email15}&gt; }}})] ]
[(#SAISIE{checkbox,desti,label=<strong><:malettre:destinataires:></strong>,data=#GET{desti}})]
[(#SAISIE{input,desti_more,size=25,maxlength=255,label=<:malettre:autres:><br /><i>(<:malettre:email_seulement_autres:>)</i>})]
[(#SAISIE{checkbox,no_archive,label=<strong><:malettre:no_archive:></strong>,data=#ARRAY{'on',<:malettre:no_archive_info:>}})]
</ul>
<p class="boutons"><input type="submit" class="submit" value="<:malettre:lettre_envoyer:>" /></p>
<br />
<h5><:malettre:apercu:>
<br /><a href="[(#EVAL{_DIR_IMG}|concat{lettre/_malettre.html})]" target="_blank"><:malettre:lettre_preview_open:></a>
</h5>
<iframe height="400" style="overflow:scroll;width:98%;margin-bottom:15px;" src="[(#EVAL{_DIR_IMG}|concat{lettre/_malettre.html})]?nocache=[(#DATE|md5)]"></iframe>
<h5><:malettre:version_html:></h5>
<textarea cols='70' rows='20'>#ENV{sourcehtml}</textarea>
<h5><:malettre:version_txt:></h5>
<textarea cols='70' rows='20'>#ENV{sourcetxt}</textarea>
</div></form>
]
[<div class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</div>]
[<div class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</div>]
[(#EDITABLE|oui)
<form action="#ENV{action}" method="post"><div>
#ACTION_FORMULAIRE{#ENV{action}}
<ul style="padding:5px;">
<!-- lang -->
[(#SAISIE{hidden,lang_select,valeur_forcee=#LANG})]
<!-- titre -->
[(#SAISIE{input,lettre_title,size=25,maxlength=255,label=<strong><:malettre:compose_sujet:></strong>})]
<!-- expediteur -->
#SET{expedi,#ARRAY}
[(#CONFIG{malettre/expediteur_email1}|oui) [(#SET{expedi,#GET{expedi}|array_merge{#ARRAY{i1, #CONFIG{malettre/expediteur_nom1} &nbsp;&lt;#CONFIG{malettre/expediteur_email1}&gt; }}})] ]
[(#CONFIG{malettre/expediteur_email2}|oui) [(#SET{expedi,#GET{expedi}|array_merge{#ARRAY{i2, #CONFIG{malettre/expediteur_nom2} &nbsp;&lt;#CONFIG{malettre/expediteur_email2}&gt; }}})] ]
[(#CONFIG{malettre/expediteur_email3}|oui) [(#SET{expedi,#GET{expedi}|array_merge{#ARRAY{i3', #CONFIG{malettre/expediteur_nom3} &nbsp;&lt;#CONFIG{malettre/expediteur_email3}&gt; }}})] ]
[(#CONFIG{malettre/expediteur_email4}|oui) [(#SET{expedi,#GET{expedi}|array_merge{#ARRAY{i4, #CONFIG{malettre/expediteur_nom4} &nbsp;&lt;#CONFIG{malettre/expediteur_email4}&gt; }}})] ]
[(#CONFIG{malettre/expediteur_email5}|oui) [(#SET{expedi,#GET{expedi}|array_merge{#ARRAY{i5, #CONFIG{malettre/expediteur_nom5} &nbsp;&lt;#CONFIG{malettre/expediteur_email5}&gt; }}})] ]
[(#CONFIG{malettre/expediteur_email6}|oui) [(#SET{expedi,#GET{expedi}|array_merge{#ARRAY{i6', #CONFIG{malettre/expediteur_nom6} &nbsp;&lt;#CONFIG{malettre/expediteur_email6}&gt; }}})] ]
[(#CONFIG{malettre/expediteur_email7}|oui) [(#SET{expedi,#GET{expedi}|array_merge{#ARRAY{i7, #CONFIG{malettre/expediteur_nom7} &nbsp;&lt;#CONFIG{malettre/expediteur_email7}&gt; }}})] ]
[(#CONFIG{malettre/expediteur_email8}|oui) [(#SET{expedi,#GET{expedi}|array_merge{#ARRAY{i8, #CONFIG{malettre/expediteur_nom8} &nbsp;&lt;#CONFIG{malettre/expediteur_email8}&gt; }}})] ]
[(#CONFIG{malettre/expediteur_email9}|oui) [(#SET{expedi,#GET{expedi}|array_merge{#ARRAY{i9', #CONFIG{malettre/expediteur_nom9} &nbsp;&lt;#CONFIG{malettre/expediteur_email9}&gt; }}})] ]
[(#CONFIG{malettre/expediteur_email10}|oui) [(#SET{expedi,#GET{expedi}|array_merge{#ARRAY{i10', #CONFIG{malettre/expediteur_nom10} &nbsp;&lt;#CONFIG{malettre/expediteur_email10}&gt; }}})] ]
[(#SAISIE{selection,expediteur,cacher_option_intro=oui,label=<strong><:malettre:expediteur:></strong>,data=#GET{expedi}})]
[(#SAISIE{input,expediteur_more,size=25,maxlength=255,label=<:malettre:autre:><br /><i>(<:malettre:email_seulement:>)</i>})]
<!-- destinataires -->
#SET{desti,#ARRAY}
<!-- FIXME passerelle vers plugin mes abonnes -->
[(#CONFIG{malettre/adresse_email1}|oui) [(#SET{desti,#GET{desti}|array_merge{#ARRAY{i1, #CONFIG{malettre/adresse_nom1} &nbsp;&lt;#CONFIG{malettre/adresse_email1}&gt; }}})] ]
[(#CONFIG{malettre/adresse_email2}|oui) [(#SET{desti,#GET{desti}|array_merge{#ARRAY{i2, #CONFIG{malettre/adresse_nom2} &nbsp;&lt;#CONFIG{malettre/adresse_email2}&gt; }}})] ]
[(#CONFIG{malettre/adresse_email3}|oui) [(#SET{desti,#GET{desti}|array_merge{#ARRAY{i3, #CONFIG{malettre/adresse_nom3} &nbsp;&lt;#CONFIG{malettre/adresse_email3}&gt; }}})] ]
[(#CONFIG{malettre/adresse_email4}|oui) [(#SET{desti,#GET{desti}|array_merge{#ARRAY{i4, #CONFIG{malettre/adresse_nom4} &nbsp;&lt;#CONFIG{malettre/adresse_email4}&gt; }}})] ]
[(#CONFIG{malettre/adresse_email5}|oui) [(#SET{desti,#GET{desti}|array_merge{#ARRAY{i5, #CONFIG{malettre/adresse_nom5} &nbsp;&lt;#CONFIG{malettre/adresse_email5}&gt; }}})] ]
[(#CONFIG{malettre/adresse_email6}|oui) [(#SET{desti,#GET{desti}|array_merge{#ARRAY{i6, #CONFIG{malettre/adresse_nom6} &nbsp;&lt;#CONFIG{malettre/adresse_email6}&gt; }}})] ]
[(#CONFIG{malettre/adresse_email7}|oui) [(#SET{desti,#GET{desti}|array_merge{#ARRAY{i7, #CONFIG{malettre/adresse_nom7} &nbsp;&lt;#CONFIG{malettre/adresse_email7}&gt; }}})] ]
[(#CONFIG{malettre/adresse_email8}|oui) [(#SET{desti,#GET{desti}|array_merge{#ARRAY{i8, #CONFIG{malettre/adresse_nom8} &nbsp;&lt;#CONFIG{malettre/adresse_email8}&gt; }}})] ]
[(#CONFIG{malettre/adresse_email9}|oui) [(#SET{desti,#GET{desti}|array_merge{#ARRAY{i9, #CONFIG{malettre/adresse_nom9} &nbsp;&lt;#CONFIG{malettre/adresse_email9}&gt; }}})] ]
[(#CONFIG{malettre/adresse_email10}|oui) [(#SET{desti,#GET{desti}|array_merge{#ARRAY{i10, #CONFIG{malettre/adresse_nom10} &nbsp;&lt;#CONFIG{malettre/adresse_email10}&gt; }}})] ]
[(#CONFIG{malettre/adresse_email11}|oui) [(#SET{desti,#GET{desti}|array_merge{#ARRAY{i11, #CONFIG{malettre/adresse_nom11} &nbsp;&lt;#CONFIG{malettre/adresse_email11}&gt; }}})] ]
[(#CONFIG{malettre/adresse_email12}|oui) [(#SET{desti,#GET{desti}|array_merge{#ARRAY{i12, #CONFIG{malettre/adresse_nom12} &nbsp;&lt;#CONFIG{malettre/adresse_email12}&gt; }}})] ]
[(#CONFIG{malettre/adresse_email13}|oui) [(#SET{desti,#GET{desti}|array_merge{#ARRAY{i13, #CONFIG{malettre/adresse_nom13} &nbsp;&lt;#CONFIG{malettre/adresse_email13}&gt; }}})] ]
[(#CONFIG{malettre/adresse_email14}|oui) [(#SET{desti,#GET{desti}|array_merge{#ARRAY{i14, #CONFIG{malettre/adresse_nom14} &nbsp;&lt;#CONFIG{malettre/adresse_email14}&gt; }}})] ]
[(#CONFIG{malettre/adresse_email15}|oui) [(#SET{desti,#GET{desti}|array_merge{#ARRAY{i15, #CONFIG{malettre/adresse_nom15} &nbsp;&lt;#CONFIG{malettre/adresse_email15}&gt; }}})] ]
[(#SAISIE{checkbox,desti,label=<strong><:malettre:destinataires:></strong>,data=#GET{desti}})]
[(#SAISIE{input,desti_more,size=25,maxlength=255,label=<:malettre:autres:><br /><i>(<:malettre:email_seulement_autres:>)</i>})]
[(#SAISIE{checkbox,no_archive,label=<strong><:malettre:no_archive:></strong>,data=#ARRAY{'on',<:malettre:no_archive_info:>}})]
</ul>
<p class="boutons"><input type="submit" class="submit" value="<:malettre:lettre_envoyer:>" /></p>
<h5><:malettre:apercu:>
<br /><a href="[(#EVAL{_DIR_IMG}|concat{lettre/_malettre.html})]" target="_blank"><:malettre:lettre_preview_open:></a>
</h5>
<iframe height="400" style="overflow:scroll;width:98%;margin-bottom:15px;" src="[(#EVAL{_DIR_IMG}|concat{lettre/_malettre.html})]?nocache=[(#DATE|md5)]"></iframe>
<h5><:malettre:version_html:></h5>
<textarea cols='70' rows='20'>#ENV{sourcehtml}</textarea>
<h5><:malettre:version_txt:></h5>
<textarea cols='70' rows='20'>#ENV{sourcetxt}</textarea>
</div></form>
]
</div>

490
formulaires/envoi_malettre.php

@ -14,9 +14,11 @@ include_spip('inc/distant');
* Chargement des valeurs par défaut du formulaire
*/
function formulaires_envoi_malettre_charger_dist(){
if (_request('lettre_title'))
$lettre_title = strip_tags(_request('lettre_title'));
else $lettre_title = "";
if (_request('lettre_title')) {
$lettre_title = strip_tags(_request('lettre_title'));
} else {
$lettre_title = "";
}
include_spip('inc/config');
$adr_site = lire_config('adresse_site');
@ -29,21 +31,20 @@ function formulaires_envoi_malettre_charger_dist(){
$sourcetxt = isset($data['page']) ? $data['page'] : '';
} else {
$sourcehtml = recuperer_page($url_html);
$sourcetxt = recuperer_page($url_txt);
$sourcetxt = recuperer_page($url_txt);
}
$contexte = array(
'lettre_title'=>$lettre_title,
'expediteur' => '',
'expediteur_more' => '',
'desti' => '',
'desti_more' => '',
'sourcehtml'=>$sourcehtml,
'sourcetxt'=>$sourcetxt
);
$contexte = array(
'lettre_title'=>$lettre_title,
'expediteur' => '',
'expediteur_more' => '',
'desti' => '',
'desti_more' => '',
'sourcehtml'=>$sourcehtml,
'sourcetxt'=>$sourcetxt
);
return $contexte;
}
/**
@ -51,14 +52,15 @@ function formulaires_envoi_malettre_charger_dist(){
*/
function formulaires_envoi_malettre_verifier_dist(){
$erreurs = array();
if (_request('lettre_title')=="")
$erreurs['lettre_title'] = _T("malettre:obligatoire");
if ((_request('expediteur')=="") AND (_request('expediteur_more')==""))
$erreurs['expediteur'] = _T("malettre:obligatoire");
if ((_request('desti')=="") AND (_request('desti_more')==""))
$erreurs['desti'] = _T("malettre:obligatoire");
if (_request('lettre_title')=="") {
$erreurs['lettre_title'] = _T("malettre:obligatoire");
}
if ((_request('expediteur')=="") AND (_request('expediteur_more')=="")) {
$erreurs['expediteur'] = _T("malettre:obligatoire");
}
if ((_request('desti')=="") AND (_request('desti_more')=="")) {
$erreurs['desti'] = _T("malettre:obligatoire");
}
return $erreurs;
}
@ -67,237 +69,227 @@ function formulaires_envoi_malettre_verifier_dist(){
*/
function formulaires_envoi_malettre_traiter_dist(){
include_spip("inc/charsets");
include_spip("inc_presentation");
include_spip('inc/config');
$message = "";
// --------------------------------
// chemin
$path = _DIR_IMG;
$path_archive = "lettre";
$path_archive_full = $path.$path_archive;
include_spip('inc/config');
$path_url = lire_config('adresse_site');
$path_url_archive = $path_url."/IMG";
$p=explode(basename(_DIR_PLUGINS)."/",str_replace('\\','/',realpath(dirname(__file__))));
//
// envoi de la lettre
//
// lang
$lang = _request('lang_select');
if ($lang=="")
$lang = $GLOBALS['meta']['langue_site'];
// titre
$lettre_title = trim(strip_tags(_request('lettre_title')));
$lettre_title = str_replace("\"","'", $lettre_title);
if ($lettre_title == "") { // à supprimer ou integrer ou multilingue ?
$months=array(1=>'Janvier', 2=>'Fevrier', 3=>'Mars', 4=>'Avril', 5=>'Mai', 6=>'Juin', 7=>'Juillet', 8=>'Aout', 9=>'Septembre', 10=>'Octobre', 11=>'Novembre', 12=>'Decembre');
$today = getdate(mktime()-(24*3600));
$sujet = "Les nouveautes de ".$months[$today[mon]]." ".date("Y");
} else {
$sujet = $lettre_title;
}
// hash
$lettre_hash = substr(md5(time()),0,5);
$url_lettre_archive_short = "lettre_".date("Ymd")."_".$lettre_hash."_"._request('lang_select').".html";
$url_lettre_archive_txt_short = "lettre_".date("Ymd")."_".$lettre_hash."_"._request('lang_select').".txt";
$url_lettre_archive = "$path_url_archive/$path_archive/$url_lettre_archive_short";
$url_lettre_archive_txt = "$path_url_archive/$path_archive/$url_lettre_archive_txt_short";
// recup contenu HTML
$texte = $path_archive_full."/_malettre.html";
$fr=fopen($texte,"r");
while(!feof($fr)){
$recup = '';
while(!feof($fr))
$recup .= fgets($fr,1024);
}
fclose($fr);
$recup = str_replace("{URL_MALETTRE}",$url_lettre_archive,$recup);
$recup = str_replace("{TITRE_MALETTRE}",$sujet,$recup);
// recup contenu TXT
$texte = $path_archive_full."/_malettre_txt.html";
$fr=fopen($texte,"r");
while(!feof($fr)){
$recup_txt = '';
while(!feof($fr))
$recup_txt .= fgets($fr,1024);
}
fclose($fr);
$recup_txt = str_replace("{URL_MALETTRE}",$url_lettre_archive,$recup_txt);
// recup expediteur
$exp_email = _request('expediteur_more');
if ($exp_email=="") {
$id_expediteur = intval(substr(_request('expediteur'),1));
$exp_name = lire_config("malettre/expediteur_nom$id_expediteur");
$exp_email = lire_config("malettre/expediteur_email$id_expediteur");
if ($exp_email=="")
die("expediteur inconnu");
} else {
$exp_name = $exp_email;
}
// recup destinataire
$destinataire = array();
$destinataire_nom = array();
if ($desti = _request('desti')) {
foreach ($desti as $desti_item) { // on lit la config pour retrouver l'email
$id_desti = intval(substr($desti_item,1));
$desti_email = lire_config("malettre/adresse_email$id_desti");
$desti_nom = lire_config("malettre/adresse_nom$id_desti");
if ($desti_email !="") {
$destinataire[$id_desti] = $desti_email;
$destinataire_nom[$id_desti] = $desti_nom;
}
}
}
if ($desti_more = _request('desti_more')) {
$desti_more_array = explode(",",_request('desti_more'));
if (is_array($desti_more_array)) {
$destinataire = array_merge($destinataire, $desti_more_array);
$destinataire_nom = array_merge($destinataire_nom, $desti_more_array);
} else {
$destinataire[] = $desti_more;
$destinataire_nom[] = $desti_more;
}
}
/* FIXME: a finaliser : if (!defined('_DIR_PLUGIN_MESABONNES ...
if (_request('mes_abonnes')=='oui') {
if ($resultats = sql_select('email', 'spip_mesabonnes')) {
while ($res = sql_fetch($resultats))
$desti[] = $res['email'];
}
}
*/
$message = "<h3>"._T('malettre:envoi')." : <span style='font-weight:normal;font-size:12px;'>$sujet</span></h3>\n";
$message .= "<div style='border:1px solid;background:#eee;margin:10px 0;padding:10px;font-family:arial,sans-serif;font-size:0.9em;'>";
// envoi lettre
// a ameliorer grandement flood
// utiliser une methode ajax pour temporiser l'envoi par flot
// ou tout simple deleger a facteur ?
$i = 0;
$j = 0;
if (is_array($destinataire)) {
foreach ($destinataire as $k=>$adresse) { // envoi a tous les destinataires
if (!defined('_DIR_PLUGIN_FACTEUR')){
include_spip("lib/class.phpmailer"); // mettre à jour http://code.google.com/a/apache-extras.org/p/phpmailer/ ou necessite facteur ?
$mail = new PHPMailer();
$mail->From = "$exp_email";
$mail->FromName = "$exp_name";
$mail->AddReplyTo("$exp_email");
$mail->AddAddress($adresse,$adresse);
$i++;
$mail->WordWrap = 50; // set word wrap
$mail->IsHTML(true); // send as HTML
$mail->CharSet = "utf-8";
$mail->Subject = "$lettre_title";
$adresse_nom = $destinataire_nom[$k];
$recup_tmp = str_replace("{NOM_LISTE}",$adresse_nom,$recup);
$recup_txt_tmp = str_replace("{NOM_LISTE}",$adresse_nom,$recup_txt);
$mail->Body = $recup_tmp;
$mail->AltBody = $recup_txt_tmp;
$res = $mail->Send();
} else { // envoi via facteur
$envoyer_mail = charger_fonction('envoyer_mail','inc');
$corps = array(
"html" => $recup,
"texte" => $recup_txt,
"nom_envoyeur" => $exp_name,
"from" => $exp_email
);
$res = $envoyer_mail($destinataire,$lettre_title,$corps);
}
if (!$res) {
$message.= "<div style='color:red'><strong>$adresse_nom &lt;$adresse&gt;</strong> - "._T('malettre:erreur_envoi')."</div>";
//$message.= "Mailer Error: " . $mail->ErrorInfo;
$success_flag = false;
$j++;
} else {
$message.= "<div style='color:green'><strong>$adresse_nom &lt;$adresse&gt;</strong> - <span style='color:green'>"._T('malettre:succes_envoi')."</span></div>";
}
echo $msg;
}
} else {
$message.= "<div style='color:red'>"._T('malettre:erreur_no_dest')."</div>";
}
$message.= "</div>";
// $message.= "<div> $i / $j </div>";
// archivage de la lettre en dur
// FIXME: utiliser les methodes natives pour ecrire les fichiers
$no_archive = _request('no_archive');
if (!is_array($no_archive)) {
$message.= "<div style=\"margin:15px 0;\">"._T('malettre:archives_placer');
$lettre_archive = "$path_archive_full/lettre_".date("Ymd")."_".$lettre_hash."_"._request('lang_select').".html";
$f_archive=fopen($lettre_archive,"w");
fwrite($f_archive,$recup);
fclose($f_archive);
$message.= " <a href='$lettre_archive' target='_blank'>html</a> - ";
$lettre_archive = "$path_archive_full/lettre_".date("Ymd")."_".$lettre_hash."_"._request('lang_select').".txt";
$f_archive=fopen($lettre_archive,"w");
fwrite($f_archive,$recup_txt);
fclose($f_archive);
$message.= "<a href='$lettre_archive' target='_blank'>txt</a></div>";
// stockage en base
include_spip('base/abstract_sql');
sql_insertq('spip_meslettres',array(
'titre' => $lettre_title,
'lang' => $lang,
'url_html' => "lettre/$url_lettre_archive_short",
'url_txt' => "lettre/$url_lettre_archive_txt_short",
'date' => date('Y-m-d H:i:s')
));
$message.= "<p><a href='".generer_url_ecrire("malettre_archive")."'>"._T('malettre:archives_gerer')."</a></p>\n";
}
// --------------------------------
$redirect = "";
include_spip("inc/charsets");
include_spip("inc_presentation");
include_spip('inc/config');
$message = "";
// --------------------------------
// chemin
$path = _DIR_IMG;
$path_archive = "lettre";
$path_archive_full = $path.$path_archive;
$path_url = lire_config('adresse_site');
$path_url_archive = $path_url."/IMG";
$p = explode(basename(_DIR_PLUGINS)."/",str_replace('\\','/',realpath(dirname(__file__))));
//
// envoi de la lettre
//
// lang
$lang = _request('lang_select');
if ($lang == "") {
$lang = $GLOBALS['meta']['langue_site'];
}
// titre
$lettre_title = trim(strip_tags(_request('lettre_title')));
$lettre_title = str_replace("\"","'", $lettre_title);
if ($lettre_title == "") { // à supprimer ou integrer ou multilingue ?
$months=array(1=>'Janvier', 2=>'Fevrier', 3=>'Mars', 4=>'Avril', 5=>'Mai', 6=>'Juin', 7=>'Juillet', 8=>'Aout', 9=>'Septembre', 10=>'Octobre', 11=>'Novembre', 12=>'Decembre');
$today = getdate(mktime()-(24*3600));
$sujet = "Les nouveautes de ".$months[$today[mon]]." ".date("Y");
} else {
$sujet = $lettre_title;
}
// hash
$lettre_hash = substr(md5(time()),0,5);
$url_lettre_archive_short = "lettre_".date("Ymd")."_".$lettre_hash."_"._request('lang_select').".html";
$url_lettre_archive_txt_short = "lettre_".date("Ymd")."_".$lettre_hash."_"._request('lang_select').".txt";
$url_lettre_archive = "$path_url_archive/$path_archive/$url_lettre_archive_short";
$url_lettre_archive_txt = "$path_url_archive/$path_archive/$url_lettre_archive_txt_short";
// recup contenu HTML
$texte = $path_archive_full."/_malettre.html";
$fr=fopen($texte,"r");
while(!feof($fr)){
$recup = '';
while(!feof($fr)) {
$recup .= fgets($fr,1024);
}
}
fclose($fr);
$recup = str_replace("{URL_MALETTRE}",$url_lettre_archive,$recup);
$recup = str_replace("{TITRE_MALETTRE}",$sujet,$recup);
// recup contenu TXT
$texte = $path_archive_full."/_malettre_txt.html";
$fr=fopen($texte,"r");
while(!feof($fr)){
$recup_txt = '';
while(!feof($fr)) {
$recup_txt .= fgets($fr,1024);
}
}
fclose($fr);
$recup_txt = str_replace("{URL_MALETTRE}",$url_lettre_archive,$recup_txt);
// recup expediteur
$exp_email = _request('expediteur_more');
if ($exp_email=="") {
$id_expediteur = intval(substr(_request('expediteur'),1));
$exp_name = lire_config("malettre/expediteur_nom$id_expediteur");
$exp_email = lire_config("malettre/expediteur_email$id_expediteur");
if ($exp_email=="") {
die("expediteur inconnu");
}
} else {
$exp_name = $exp_email;
}
// recup destinataire
$destinataire = array();
$destinataire_nom = array();
if ($desti = _request('desti')) {
foreach ($desti as $desti_item) { // on lit la config pour retrouver l'email
$id_desti = intval(substr($desti_item,1));
$desti_email = lire_config("malettre/adresse_email$id_desti");
$desti_nom = lire_config("malettre/adresse_nom$id_desti");
if ($desti_email !="") {
$destinataire[$id_desti] = $desti_email;
$destinataire_nom[$id_desti] = $desti_nom;
}
}
}
if ($desti_more = _request('desti_more')) {
$desti_more_array = explode(",",_request('desti_more'));
if (is_array($desti_more_array)) {
$destinataire = array_merge($destinataire, $desti_more_array);
$destinataire_nom = array_merge($destinataire_nom, $desti_more_array);
} else {
$destinataire[] = $desti_more;
$destinataire_nom[] = $desti_more;
}
}
$message = "<h3>"._T('malettre:envoi')." : <span style='font-weight:normal;font-size:12px;'>$sujet</span></h3>\n";
$message .= "<div style='border:1px solid;background:#eee;margin:10px 0;padding:10px;font-family:arial,sans-serif;font-size:0.9em;'>";
// envoi lettre
// a ameliorer grandement flood
// utiliser une methode ajax pour temporiser l'envoi par flot
// ou tout simple deleger a facteur ?
$i = 0;
$j = 0;
if (is_array($destinataire)) {
foreach ($destinataire as $k=>$adresse) { // envoi a tous les destinataires
if (!defined('_DIR_PLUGIN_FACTEUR')){
include_spip("lib/class.phpmailer"); // mettre à jour http://code.google.com/a/apache-extras.org/p/phpmailer/ ou necessite facteur ?
$mail = new PHPMailer();
$mail->From = "$exp_email";
$mail->FromName = "$exp_name";
$mail->AddReplyTo("$exp_email");
$mail->AddAddress($adresse,$adresse);
$i++;
$mail->WordWrap = 50; // set word wrap
$mail->IsHTML(true); // send as HTML
$mail->CharSet = "utf-8";
$mail->Subject = "$lettre_title";
$adresse_nom = $destinataire_nom[$k];
$recup_tmp = str_replace("{NOM_LISTE}",$adresse_nom,$recup);
$recup_txt_tmp = str_replace("{NOM_LISTE}",$adresse_nom,$recup_txt);
$mail->Body = $recup_tmp;
$mail->AltBody = $recup_txt_tmp;
$res = $mail->Send();
} else { // envoi via facteur
$envoyer_mail = charger_fonction('envoyer_mail','inc');
$corps = array(
"html" => $recup,
"texte" => $recup_txt,
"nom_envoyeur" => $exp_name,
"from" => $exp_email
);
$res = $envoyer_mail($destinataire,$lettre_title,$corps);
}
if (!$res) {
$message.= "<div style='color:red'><strong>$adresse_nom &lt;$adresse&gt;</strong> - "._T('malettre:erreur_envoi')."</div>";
//$message.= "Mailer Error: " . $mail->ErrorInfo;
$success_flag = false;
$j++;
} else {
$message.= "<div style='color:green'><strong>$adresse_nom &lt;$adresse&gt;</strong> - <span style='color:green'>"._T('malettre:succes_envoi')."</span></div>";
}
echo $msg;
}
} else {
$message.= "<div style='color:red'>"._T('malettre:erreur_no_dest')."</div>";
}
$message.= "</div>";
// $message.= "<div> $i / $j </div>";
// archivage de la lettre en dur
// FIXME: utiliser les methodes natives pour ecrire les fichiers
$no_archive = _request('no_archive');
if (!is_array($no_archive)) {
$message.= "<div style=\"margin:15px 0;\">"._T('malettre:archives_placer');
$lettre_archive = "$path_archive_full/lettre_".date("Ymd")."_".$lettre_hash."_"._request('lang_select').".html";
$f_archive=fopen($lettre_archive,"w");
fwrite($f_archive,$recup);
fclose($f_archive);
$message.= " <a href='$lettre_archive' target='_blank'>html</a> - ";
$lettre_archive = "$path_archive_full/lettre_".date("Ymd")."_".$lettre_hash."_"._request('lang_select').".txt";
$f_archive=fopen($lettre_archive,"w");
fwrite($f_archive,$recup_txt);
fclose($f_archive);
$message.= "<a href='$lettre_archive' target='_blank'>txt</a></div>";
// stockage en base
include_spip('base/abstract_sql');
sql_insertq('spip_meslettres',array(
'titre' => $lettre_title,
'lang' => $lang,
'url_html' => "lettre/$url_lettre_archive_short",
'url_txt' => "lettre/$url_lettre_archive_txt_short",
'date' => date('Y-m-d H:i:s')
));
$message.= "<p><a href='".generer_url_ecrire("malettre_archive")."'>"._T('malettre:archives_gerer')."</a></p>\n";
}
// --------------------------------
$redirect = "";
// message
return array(
"editable" => false,
"message_ok" => "$message",
'redirect' => $redirect
'redirect' => $redirect
);
}

38
inclure/liste_lettre.html

@ -1,25 +1,27 @@
[(#REM) archives lettre]
<B_archive>
<table class="spip"><tbody>
<tr>
<th width="15"></th>
<th width="230"><:info_titre:></th>
<th width="40"><:date:></th>
<th width="30"></th>
<th width="30"></th>
<th width="30"></th>
</tr>
<table class="spip">
<tbody>
<tr>
<th width="15"></th>
<th width="230"><:info_titre:></th>
<th width="40"><:date:></th>
<th width="30"></th>
<th width="30"></th>
<th width="30"></th>
</tr>
<BOUCLE_archive(MESLETTRES){pagination 5}{!par date}>
<tr>
<td width="20">#ID_MALETTRE</td>
<td width="230"><a href='#'[ onclick="malettref.location.href='(#CHEMIN{#EVAL{_DIR_IMG}|concat{#URL_HTML}})'"] style='color:green;'>#TITRE</a> - <small>#LANG</small></td>
<td width="40">[(#DATE|affdate_court)]</td>
<td width="30">[<a href="(#CHEMIN{#EVAL{_DIR_IMG}|concat{#URL_HTML}})" target="_blank">html</a>]</td>
<td width="30">[<a href="(#CHEMIN{#EVAL{_DIR_IMG}|concat{#URL_TXT}})" target="_blank">txt</a>]</td>
<td width="30"><a href='[(#URL_ACTION_AUTEUR{supprimer_lettre,#ID_MALETTRE,#SELF})]' onclick='return confirm("<:malettre:effacer_confirm:>");' style='color:red;'><:malettre:effacer:></a></td>
</tr>
<tr>
<td width="20">#ID_MALETTRE</td>
<td width="230"><a href='#'[ onclick="malettref.location.href='(#CHEMIN{#EVAL{_DIR_IMG}|concat{#URL_HTML}})'"] style='color:green;'>#TITRE</a> - <small>#LANG</small></td>
<td width="40">[(#DATE|affdate_court)]</td>
<td width="30">[<a href="(#CHEMIN{#EVAL{_DIR_IMG}|concat{#URL_HTML}})" target="_blank">html</a>]</td>
<td width="30">[<a href="(#CHEMIN{#EVAL{_DIR_IMG}|concat{#URL_TXT}})" target="_blank">txt</a>]</td>
<td width="30"><a href='[(#URL_ACTION_AUTEUR{supprimer_lettre,#ID_MALETTRE,#SELF})]' onclick='return confirm("<:malettre:effacer_confirm:>");' style='color:red;'><:malettre:effacer:></a></td>
</tr>
</BOUCLE_archive>
</tbody></table>
</tbody>
</table>
<div class="pagination">[(#PAGINATION) - ]#GRAND_TOTAL <:malettre:lettres_dispo:></div>
<iframe width="900" height="500" src='' id='malettref' name='malettref' style="both;border:1px solid #666;position:relative;left:-200px;margin:1em;background:#333;"></iframe>

3
lang/paquet-malettre_fr.php

@ -6,8 +6,7 @@ if (!defined('_ECRIRE_INC_VERSION')) return;
$GLOBALS[$GLOBALS['idx_lang']] = array(
// P
'malettre_description' => 'Créer le contenu d\'une newsletter en s&#233;lectionnant manuellement édito, articles, événements
pour l\'envoyer ensuite à un gestionnaire de listes de type SYMPA, Mailman, ... ',
'malettre_description' => 'Créer le contenu d\'une newsletter en s&#233;lectionnant manuellement édito, articles, événements pour l\'envoyer ensuite à un gestionnaire de listes de type SYMPA, Mailman, ... ',
'malettre_slogan' => 'Compose une lettre d\'information sur mesure'
);

11
malettre_administrations.php

@ -16,7 +16,7 @@ function malettre_upgrade($nom_meta_base_version, $version_cible){
// Première installation
$maj['create'] = array(
array('maj_tables', array('spip_meslettres')),
array('malettre_creer_repertoire_documents')
array('malettre_creer_repertoire_documents')
);
include_spip('base/upgrade');
@ -24,14 +24,13 @@ function malettre_upgrade($nom_meta_base_version, $version_cible){
}
function malettre_vider_tables() {
sql_drop_table("spip_meslettres");
effacer_meta('malettre_base_version');
sql_drop_table("spip_meslettres");
effacer_meta('malettre_base_version');
}
function malettre_creer_repertoire_documents() {
include_spip('inc/getdocument');
creer_repertoire_documents('lettre');
include_spip('inc/getdocument');
creer_repertoire_documents('lettre');
}

5
malettre_autoriser.php

@ -9,10 +9,9 @@ function malettre_autoriser(){}
// declarations d'autorisations
function autoriser_malettre_bouton_dist($faire, $type, $id, $qui, $opt) {
return autoriser('voir', 'malettre', $id, $qui, $opt);
return autoriser('voir', 'malettre', $id, $qui, $opt);
}
function autoriser_malettre_voir_dist($faire, $type, $id, $qui, $opt) {
return (in_array($qui['statut'],array('0minirezo'))); // pour l'instant uniquement les admins
return (in_array($qui['statut'],array('0minirezo'))); // pour l'instant uniquement les admins
}

37
malettre_fonctions.php