laposte.net , http://bloog.net */
/* */
/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
/* de la Licence Publique G��ale GNU publi� par la Free Software Foundation */
/* (version 2). */
/* */
/* Ce programme est distribu�car potentiellement utile, mais SANS AUCUNE GARANTIE, */
/* ni explicite ni implicite, y compris les garanties de commercialisation ou */
/* d'adaptation dans un but sp�ifique. Reportez-vous �la Licence Publique G��ale GNU */
/* pour plus de d�ails. */
/* */
/* Vous devez avoir re� une copie de la Licence Publique G��ale GNU */
/* en m�e temps que ce programme ; si ce n'est pas le cas, �rivez �la */
/* Free Software Foundation, */
/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, �ats-Unis. */
/******************************************************************************************/
if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('inc/presentation');
include_spip('inc/mots');
include_spip('inc/lang');
include_spip('inc/affichage');
include_spip('base/spip-listes');
function exec_listes_dist(){
global $connect_statut;
global $connect_toutes_rubriques;
global $connect_id_auteur;
global $spip_lang_left,$spip_lang_right;
$new = _request('new');
$id_liste = _request('id_liste');
$titre = _request('titre');
$texte = _request('texte');
$pied_page = _request('pied_page');
//on peut plus ajouter un auteur la c buggue
//global $flag_auteur;
$creer_auteur = _request('creer_auteur');
//global $ajout_auteur;
$supp_auteur = _request('supp_auteur');
$cherche_auteur = _request('cherche_auteur');
//global $nouv_auteur;
$changer_lang = _request('changer_lang');
$Valider_auto = _request('Valider_auto');
$auto = _request('auto');
$changer_extra = _request('changer_extra');
$email_envoi = _request('email_envoi');
$patron = _request('patron');
$periode = _request('periode');
$sujet_message = _request('sujet_message');
$envoyer_direct = _request('envoyer_direct');
$debut = _request('debut');
$ok_nouveau_statut = _request('ok_nouveau_statut');
$statut_nouv = _request('statut_nouv');
$nomsite=lire_meta("nom_site");
$urlsite=lire_meta("adresse_site");
// Admin SPIP-Listes
echo debut_page(_T('spiplistes:spip_listes'), "redacteurs", "spiplistes");
if ($connect_statut != "0minirezo" ) {
echo "
"._T('spiplistes:acces_a_la_page')."
";
echo fin_page();
exit;
}
if (($connect_statut == "0minirezo") OR ($connect_id_auteur == $id_auteur)) {
$statut_auteur=$statut;
spip_listes_onglets("messagerie", _T('spiplistes:spip_listes'));
}
// Creer une liste -----------------------------------------
////
if ($id_liste==0) {
if ($new=='oui') {
if ($titre=='') $titre = _T('spiplistes:liste_sans_titre');
spip_query("INSERT INTO spip_listes (statut, date, lang) VALUES ('inact', NOW(),"._q($langue_new).")");
$id_liste = spip_insert_id();
//Auteur de la liste (moderateur)
spip_query("DELETE FROM spip_auteurs_mod_listes WHERE id_liste = "._q($id_liste));
spip_query("INSERT INTO spip_auteurs_mod_listes (id_auteur, id_liste) VALUES ("._q($connect_id_auteur).","._q($id_liste).")");
//abonner le moderateur a sa liste
spip_query("DELETE FROM spip_auteurs_listes WHERE id_liste = "._q($id_liste).")");
spip_query("INSERT INTO spip_auteurs_listes (id_auteur, id_liste) VALUES ("._q($connect_id_auteur).","._q($id_liste).")");
}
}
debut_gauche();
echo debut_boite_info();
echo '
'._T('spiplistes:liste_numero').' :
'.$id_liste.'
';
echo fin_boite_info();
spip_listes_raccourcis();
creer_colonne_droite();
debut_droite("messagerie");
//////////////////////////////////////////////////////
// Determiner les droits d'edition de la liste
//
$result = spip_query("SELECT statut, titre, maj FROM spip_listes WHERE id_liste="._q($id_liste));
if ($row = spip_fetch_array($result)) {
$statut_article = $row['statut'];
$titre_article = $row['titre'];
$maj = $row['maj'];
}
else {
$statut_article = '';
}
$result_auteur = spip_query("SELECT * FROM spip_auteurs_mod_listes WHERE id_liste="._q($id_liste)." AND id_auteur="._q($connect_id_auteur));
//
// Droits mieux structure que ca ?
//
$flag_auteur=true;
$flag_editable = ($flag_auteur AND ($statut_article == 'inact' OR $statut_article == 'liste' OR $statut_article == 'poublist'));
//
// Appliquer les modifications sur la liste
//
$ok_nouveau_statut = false;
//Modifier le statut de la liste
if ($statut_nouv) {
if ($flag_auteur) {
//il faut etre admin et abonn�pour modifer une liste
if ($statut_nouv == 'liste' AND $statut_article == 'inact')
$ok_nouveau_statut = true;
else if ($statut_nouv == 'inact' AND $statut_article == 'poublist')
$ok_nouveau_statut = true;
else if ($statut_nouv == 'poublist' AND $statut_article == 'inact')
$ok_nouveau_statut = true;
else if ($statut_nouv == 'poublist' AND $statut_article == 'liste')
$ok_nouveau_statut = true;
else if ($statut_nouv == 'inact' AND $statut_article == 'liste')
$ok_nouveau_statut = true;
else if ($statut_nouv == 'liste' AND $statut_article == 'poublist')
$ok_nouveau_statut = true;
}
if ($ok_nouveau_statut)
$result = spip_query("UPDATE spip_listes SET statut="._q($statut_nouv)." WHERE id_liste="._q($id_liste));
}
//modifier la date
if ($jour=intval(_request('jour')) && $flag_editable) {
$mois = intval(_request('mois'));
if (($annee=intval(_request('annee'))) == "0000") $mois = "00";
if ($mois == "00") $jour = "00";
$result = spip_query("UPDATE spip_listes SET date='$annee-$mois-$jour' WHERE id_liste="._q($id_liste));
}
// Enregistrer les modifs sur la liste
if ($titre && !$ajout_forum && $flag_editable) {
$titre = corriger_caracteres($titre);
$descriptif = corriger_caracteres($descriptif);
$texte = corriger_caracteres($texte);
$pied_page = corriger_caracteres($pied_page);
$result = spip_query("UPDATE spip_listes SET titre="._q($titre).",descriptif="._q($descriptif).",texte="._q($texte).",pied_page="._q($pied_page)." WHERE id_liste="._q($id_liste));
// afficher le nouveau titre dans la barre de fenetre
$titre_article = $titre;
}
if($changer_lang)
$result = spip_query("UPDATE spip_listes SET lang="._q($changer_lang)." WHERE id_liste="._q($id_liste));
// prendre en compte les modifs sur le message auto
if($Valider_auto){
if($auto == "oui"){
$result = spip_query("UPDATE spip_listes SET message_auto='oui' WHERE id_liste="._q($id_liste));
if($maj=="0000-00-00 00:00:00"){
$result = spip_query("UPDATE spip_listes SET maj=NOW() WHERE id_liste="._q($id_liste));
}
}
elseif ($auto == "non"){
$result = spip_query("UPDATE spip_listes SET message_auto='non', maj='0000-00-00 00:00:00' WHERE id_liste="._q($id_liste));
}
if(email_valide($email_envoi)){
$result = spip_query("UPDATE spip_listes SET email_envoi="._q($email_envoi)." WHERE id_liste="._q($id_liste));
}
if(($changer_extra == "oui") AND ($auto == "oui") ){
$result = spip_query("UPDATE spip_listes SET patron="._q($patron).", periode="._q($periode).", titre_message="._q($sujet_message)." WHERE id_liste="._q($id_liste));
if($envoyer_direct){
$majnouv = (time() - ($periode * 3600*24));
$result = spip_query("UPDATE spip_listes SET maj=FROM_UNIXTIME($majnouv), periode="._q($periode)." WHERE id_liste="._q($id_liste));
}
}
}
//
// Lire la liste
//
$result = spip_query("SELECT * FROM spip_listes WHERE id_liste="._q($id_liste));
if ($row = spip_fetch_array($result)) {
$id_liste = $row["id_liste"];
$titre = $row["titre"];
$titre_message = $row["titre_message"];
$pied_page = $row["pied_page"];
$texte = $row["texte"];
$date = $row["date"];
$statut_article = $row["statut"];
$maj_nouv = $row["maj"];
$email_envoi=$row["email_envoi"];
$message_auto = $row["message_auto"];
$periode = $row["periode"];
$patron = $row["patron"];
$lang = $row["lang"];
}
changer_typo('','liste'.$id_liste);
echo debut_cadre_relief();
echo "";
//
// Titre, surtitre, sous-titre
//
if($statut == 'liste') $logo_statut = 'puce-verte.gif';
if($statut == 'inact') $logo_statut = 'puce-blanche.gif';
if($statut == 'poublist') $logo_statut = 'puce-blanche.gif';
echo "\n";
echo "";
gros_titre($titre, $logo_statut);
echo " ";
echo justifier(propre($texte));
echo " ";
echo " | ";
if ($flag_editable) {
echo " | \n";
echo "";
echo listes_edit_presentation($id_liste);
echo " | ";
}
echo "
\n";
echo fin_cadre_relief();
//////////////////////////////////////////////////////
// Modifier le statut de la liste
//
echo "
";
if ($connect_statut == '0minirezo' ) {
echo debut_cadre_relief("racine-site-24.gif");
echo "";
echo "";
echo menu_langues('changer_lang', $lang , _T('spiplistes:langue'),'', '');
echo "
";
//regler email d'envoi de la liste
echo "";
echo fin_cadre_relief();
}
echo debut_cadre_relief(_DIR_PLUGIN_SPIPLISTES."img_pack/stock_timer.gif");
echo "";
echo fin_cadre_relief();
//
// Liste des abonnes
//
//
// Appliquer les modifications sur les abonnes
//
echo "";
//
// Afficher les abonnes
//
//
// Liste des abonnes a la liste
//
$editer_auteurs = charger_fonction('editer_auteurs','inc');
echo $editer_auteurs('liste',$id_liste,$flag_editable, _request('cherche_auteur'),_request('ids'),
_T('spiplistes:abon'),
'listes',
'abonne_edit');
////
// MODE EDIT LISTE FIN ---------------------------------------------------------
echo "".$GLOBALS['spiplistes_version']."
" ;
echo fin_gauche(), fin_page();
}
function listes_edit_presentation($id_liste){
return icone(_T('spiplistes:modifier_liste'), generer_url_ecrire("liste_edit","id_liste=$id_liste"),_DIR_PLUGIN_SPIPLISTES."img_pack/reply-to-all-24.gif", "edit.gif");
}
/******************************************************************************************/
/* SPIP-listes est un système de gestion de listes d'abonnés et d'envoi d'information */
/* par email pour SPIP. */
/* Copyright (C) 2004 Vincent CARON v.caronlaposte.net , http://bloog.net */
/* */
/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
/* de la Licence Publique Générale GNU publiée par la Free Software Foundation */
/* (version 2). */
/* */
/* Ce programme est distribué car potentiellement utile, mais SANS AUCUNE GARANTIE, */
/* ni explicite ni implicite, y compris les garanties de commercialisation ou */
/* d'adaptation dans un but spécifique. Reportez-vous à la Licence Publique Généale GNU */
/* pour plus de détails. */
/* */
/* Vous devez avoir reçu une copie de la Licence Publique Générale GNU */
/* en même temps que ce programme ; si ce n'est pas le cas, écrivez à la */
/* Free Software Foundation, */
/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, Etats-Unis. */
/******************************************************************************************/
?>