示例#1
0
function exec_spiplistes_listes_toutes(){
	
	include_spip('inc/presentation');
	include_spip('inc/spiplistes_api');
	include_spip('inc/spiplistes_api_presentation');
	include_spip('inc/spiplistes_lister_courriers_listes');
	include_spip('inc/spiplistes_naviguer_paniers');
	include_spip('inc/spiplistes_agenda');
	
	global $connect_statut
		, $connect_id_auteur
		;

	$flag_editable = ($connect_statut == "0minirezo");

	if($flag_editable) {
		// initialise les variables postees par le formulaire
		foreach(array(
			'btn_supprimer_liste_confirme', 'id_liste' // _SPIPLISTES_EXEC_LISTE_GERER
			, 'btn_confirmer_envoi_maintenant', 'titre_message'
			, 'periode_agenda' // local: pour afficher l'agenda
			) as $key) {
			$$key = _request($key);
		}
		foreach(array('id_liste', 'periode_agenda') as $key) {
			$$key = intval($$key);
		}

		// envoyer maintenant demande' par _SPIPLISTES_EXEC_LISTE_GERER
		if($btn_confirmer_envoi_maintenant && ($id_liste > 0)) {
			$array_set = array(
				'date' => 'NOW()'
			);
			if(!spiplistes_listes_liste_modifier($id_liste, $array_set)) {
				spiplistes_log("ERR: listes_modifier_liste #$id_liste");
			}
		}

		// suppression demandee par _SPIPLISTES_EXEC_LISTE_GERER
		if($btn_supprimer_liste_confirme 
			&& $id_liste
			&& spiplistes_listes_liste_supprimer($id_liste)
		) {
			spiplistes_log("ID_LISTE #$id_liste DELETED BY ID_AUTEUR #$connect_id_auteur");
		}
	}

////////////////////////////////////
// PAGE CONTENU
////////////////////////////////////

	$titre_page = _T('spiplistes:listes_de_diffusion_');
	// Permet entre autres d'ajouter les classes a la page : <body class='$rubrique $sous_rubrique'>
	$rubrique = _SPIPLISTES_PREFIX;
	$sous_rubrique = "listes_toutes";

	$commencer_page = charger_fonction('commencer_page', 'inc');
	echo($commencer_page(_T('spiplistes:spiplistes') . " - " . $titre_page, $rubrique, $sous_rubrique));
	
	// la gestion des abonnes est reservee aux admins 
	if(!$flag_editable) {
		die (spiplistes_terminer_page_non_autorisee() . fin_page());
	}

	$page_result = ""
		. "<br /><br /><br />\n"
		. spiplistes_gros_titre($titre_page, '', true)
		. barre_onglets($rubrique, $sous_rubrique)
		. debut_gauche($rubrique, true)
		. spiplistes_naviguer_paniers_listes(_T('spiplistes:aller_aux_listes_'), true)
		. spiplistes_boite_agenda($periode_agenda)
		. pipeline('affiche_gauche', array('args'=>array('exec'=>$sous_rubrique),'data'=>''))
		//. creer_colonne_droite($rubrique, true)  // spiplistes_boite_raccourcis() s'en occupe
		. spiplistes_boite_raccourcis(true)
		. spiplistes_boite_autocron() 
		. spiplistes_boite_info_spiplistes(true)
		. pipeline('affiche_droite', array('args'=>array('exec'=>$sous_rubrique),'data'=>''))
		. debut_droite($rubrique, true)
		;
	
	// MODE LISTES: afficher les listes --------------------------------------------
	
	$page_result .= "";
	
	foreach(explode(";", _SPIPLISTES_LISTES_STATUTS_TOUS) as $statut) {
		$page_result .= ""
			. spiplistes_lister_courriers_listes(
				spiplistes_items_get_item("tab_t", $statut)
					.	(
						($desc = spiplistes_items_get_item("desc", $statut))
						? "<br /><span style='font-weight:normal;'>$desc</span>"
						: ""
						)
				, spiplistes_items_get_item("icon", $statut)
				, 'listes'
				, $statut
				, false
				, 'position'
				, _SPIPLISTES_EXEC_LISTE_GERER
			)
			;
	}
	
	echo($page_result);
		
	echo pipeline('affiche_milieu',array('args'=>array('exec'=>$sous_rubrique),'data'=>''))
		, spiplistes_html_signature(_SPIPLISTES_PREFIX)
		, fin_gauche(), fin_page();
	
}
function exec_spiplistes_courriers_casier () {
	
	include_spip ('inc/acces');
	include_spip ('inc/filtres');
	include_spip ('inc/config');
	include_spip ('inc/barre');
	
	include_spip ('inc/mots');
	include_spip ('inc/documents');
	
	include_spip('inc/spiplistes_api_globales');
	include_spip('inc/spiplistes_api');
	include_spip('inc/spiplistes_api_presentation');
	include_spip('inc/spiplistes_naviguer_paniers');

	global $connect_statut
		, $connect_toutes_rubriques
		, $connect_id_auteur
		, $supp_dest
		;

	///////////////////////////
	// initialise les variables postées par formulaire (formulaire gerer)
	foreach(array(
		'btn_confirmer_envoi', 'id_courrier', 'id_liste', 'id_auteur_test', 'btn_annuler_envoi'
		, 'statut'
		, 'btn_supprimer_courrier'
		, 'btn_arreter_envoi' // si valide, contient id du courrier
		) as $key) {
		$$key = _request($key);
	}
	foreach(array('id_courrier', 'id_liste', 'id_auteur_test'
		, 'btn_supprimer_courrier', 'btn_arreter_envoi'
		) as $key) {
		$$key = intval($$key);
	}

	$flag_admin = ($connect_statut == "0minirezo") && $connect_toutes_rubriques;
	$flag_moderateur = count($listes_moderees = spiplistes_mod_listes_id_auteur($connect_id_auteur));
	$flag_createur = ($id_courrier && ($connect_id_auteur == spiplistes_courrier_id_auteur_get($id_courrier)));

	$flag_modifiable = ($flag_admin || $flag_moderateur || $flag_createur);

	if($flag_modifiable) {

		// annuler le destinataire d'un courrier (retour de courrier_gerer)
		// repasse le courrier en mode 'redac'
		if($btn_annuler_envoi) {
			spiplistes_courrier_modifier(
				$id_courrier
				, array(
					'email_test' => ''
					, 'id_liste' => 0
					, 'total_abonnes' => 0
					, 'statut' => _SPIPLISTES_COURRIER_STATUT_REDAC
				)						
			);
		}

		// confirmer l'envoi d'un courrier
		if($btn_confirmer_envoi) {
			// passe le courrier directement a la meleuse
			if($id_liste >= 0) {
				// destinataire(s) = abonnés à une liste
				// si id_liste == 0, destinataire = adresse email de test
				spiplistes_courrier_supprimer_queue_envois('id_courrier', $id_courrier);
				spiplistes_courrier_remplir_queue_envois($id_courrier, $id_liste, $id_auteur_test);
				if($id_liste > 0) {
					spiplistes_debug_log('SEND id_courrier #'.$id_courrier
										. ' ON id_liste #'.$id_liste
										. ' BY id_auteur #'.$connect_id_auteur
										);
				} else {
					spiplistes_debug_log('SEND id_courrier #'.$id_courrier
										 . ' TO id_auteur #'.$id_auteur_test
										 . ' TEST BY id_auteur #'.$connect_id_auteur
										 );
				}
			}
			spiplistes_courrier_statut_modifier($id_courrier, _SPIPLISTES_COURRIER_STATUT_ENCOURS);
		}
	
		// supprimer un courrier des cases
		if($btn_supprimer_courrier) {
			sql_delete("spip_courriers", "id_courrier=".sql_quote($btn_supprimer_courrier)." LIMIT 1");
			spiplistes_courrier_supprimer_queue_envois('id_courrier', $btn_supprimer_courrier);
		}
		
		// arreter un courrier en cours d'envoi
		if($btn_arreter_envoi) {
			spiplistes_courrier_modifier(
				$btn_arreter_envoi 
				, array(
					'statut' => _SPIPLISTES_COURRIER_STATUT_STOPE
					, 'date_fin_envoi' => "NOW()"
				)
			);
			spiplistes_courrier_supprimer_queue_envois('id_courrier', $btn_arreter_envoi);
		}
		
	} // end if $flag_modifiable

////////////////////////////////////
// PAGE CONTENU
////////////////////////////////////

	$titre_page = _T('spiplistes:casier_a_courriers');
	// Permet entre autres d'ajouter les classes a' la page : <body class='$rubrique $sous_rubrique'>
	$rubrique = _SPIPLISTES_PREFIX;
	$sous_rubrique = "courriers_casier";

	$commencer_page = charger_fonction('commencer_page', 'inc');
	echo($commencer_page(_T('spiplistes:spiplistes') . " - " . $titre_page, $rubrique, $sous_rubrique));
	
	// la gestion des courriers est réservée aux admins 
	if($connect_statut != "0minirezo") {
		die (spiplistes_terminer_page_non_autorisee() . fin_page());
	}

	$page_result = ""
		. "<br /><br /><br />\n"
		. spiplistes_gros_titre($titre_page, '', true)
		. barre_onglets($rubrique, $sous_rubrique)
		. debut_gauche($rubrique, true)
		. spiplistes_naviguer_paniers_courriers(_T('spiplistes:aller_au_panier_'), true)
		. pipeline('affiche_gauche', array('args'=>array('exec'=>$sous_rubrique),'data'=>''))
		//. creer_colonne_droite($rubrique, true)  // spiplistes_boite_raccourcis() s'en occupe
		. spiplistes_boite_raccourcis(true)
		. spiplistes_boite_autocron()
		. spiplistes_boite_info_spiplistes(true)
		. pipeline('affiche_droite', array('args'=>array('exec'=>$sous_rubrique),'data'=>''))
		. debut_droite($rubrique, true)
		;
			
	$icone = _DIR_PLUGIN_SPIPLISTES_IMG_PACK.'courriers_listes-24.png';
	
	$_skip_statut = "Sauter une table pour afficher chronos";

	// Début de liste
	$listes_statuts = array(
		_SPIPLISTES_COURRIER_STATUT_ENCOURS, _SPIPLISTES_COURRIER_STATUT_REDAC
		, _SPIPLISTES_COURRIER_STATUT_READY
		, $_skip_statut
		, _SPIPLISTES_COURRIER_STATUT_AUTO, _SPIPLISTES_COURRIER_STATUT_PUBLIE
		, _SPIPLISTES_COURRIER_STATUT_VIDE, _SPIPLISTES_COURRIER_STATUT_IGNORE
		, _SPIPLISTES_COURRIER_STATUT_STOPE, _SPIPLISTES_COURRIER_STATUT_ERREUR
		);
	$mes_statuts = ($statut && in_array($statut, $listes_statuts)) ? array($statut) : $listes_statuts;
	foreach($mes_statuts as $statut) {

		if($statut == $_skip_statut) {
			// liste des courriers programmés (des listes)
			$page_result .= ""
				. spiplistes_afficher_pile_messages()
				. "<br />"
				;
		}
		else {
			$page_result .= ""
				. spiplistes_lister_courriers_listes(
					spiplistes_items_get_item("tab_t", $statut)
						.	(
							($desc = spiplistes_items_get_item("desc", $statut))
							? "<br /><span style='font-weight:normal;'>$desc</span>"
							: ""
							)
					, spiplistes_items_get_item("icon", $statut)
					, 'courriers'
					, $statut
					, false
					, 'position'
					, _SPIPLISTES_EXEC_COURRIER_GERER
				)
				;
		}
	}

	echo($page_result);
	
	echo pipeline('affiche_milieu',array('args'=>array('exec'=>$sous_rubrique),'data'=>''))
		, spiplistes_html_signature(_SPIPLISTES_PREFIX)
		, fin_gauche(), fin_page();

} // exec_spip_listes()
示例#3
0
function exec_spiplistes_abonne_edit () {

	include_spip('inc/spiplistes_api');
	include_spip('inc/spiplistes_api_presentation');
	include_spip('inc/spiplistes_lister_courriers_listes');

	global $connect_statut
		, $connect_toutes_rubriques
		, $connect_id_auteur
		;

	// initialise les variables postees par le formulaire
	foreach(array(
		'id_auteur'
		, 'btn_confirmer_format', 'modif_abo'
		) as $key) {
		$$key = _request($key);
	}
	foreach(array('id_auteur') as $key) {
		$$key = intval($$key);
	}

	$flag_editable = (
		($id_auteur > 0) 
		&& (
			(($connect_statut == "0minirezo") && $connect_toutes_rubriques)
			|| ($connect_id_auteur == $id_auteur)
			)
		);
	
	//////////////////////////////////////////////////////
	// Modifie format si demande
	if($flag_editable && $btn_confirmer_format) {
		switch($modif_abo) {
			case 'html':
			case 'texte':
				spiplistes_format_abo_modifier($id_auteur, $modif_abo);
				break;
			case 'suspend':
				spiplistes_format_abo_modifier($id_auteur, 'non');
				break;
			case 'non':
				spiplistes_abonnements_desabonner_statut($id_auteur, explode(";", _SPIPLISTES_LISTES_STATUTS_TOUS));
				break;
			}
	}

	//////////////////////////////////////////////////////
	// Recharge les donnees de l'auteur
	if($id_auteur > 0) {
	
		$sql_select = "nom,bio,email,nom_site,url_site,login,pass,statut,pgp,messagerie,imessage,low_sec";
		$sql_result = sql_select($sql_select, "spip_auteurs", "id_auteur=".sql_quote($id_auteur)." LIMIT 1");

		if($row = sql_fetch($sql_result)) {
			foreach(explode(",", $sql_select) as $key) {
				$$key = $row[$key];
			}
			$format_id_auteur = spiplistes_format_abo_demande($id_auteur);
		} else {
			$id_auteur = 0;
			$format_id_auteur = false;
		}
	}
	$format_abo = spiplistes_format_abo_demande($id_auteur);

	//////////////////////////////////////////////////////
	// preparation du bouton 
		// Propose de supprimer l'auteur invite 
	$gros_bouton_modifier = 
		($flag_editable)
		? icone (
				_T('admin_modifier_auteur')
				, generer_url_ecrire("auteur_infos", "id_auteur=$id_auteur&edit=oui")
				, 'redacteurs-24.gif'
				, "edit.gif"
				, "right"
				, false
				)
		: ""
		;
		// Propose de supprimer l'auteur invite 
	$gros_bouton_supprimer = 
		($id_auteur && $flag_editable && ($statut=='6forum'))
		? icone (
				_T('spiplistes:Supprimer_ce_contact')
				, generer_action_auteur(_SPIPLISTES_ACTION_SUPPRIMER_ABONNER, $id_auteur, generer_url_ecrire(_SPIPLISTES_EXEC_ABONNES_LISTE))
				, 'redacteurs-24.gif'
				, "supprimer.gif"
				, "right"
				, false
				)
		: ""
		;

////////////////////////////////////
// PAGE CONTENU
////////////////////////////////////

	$titre_page = _T('spiplistes:edition_dun_abonne');
	// Permet entre autres d'ajouter les classes a' la page : <body class='$rubrique $sous_rubrique'>
	$rubrique = _SPIPLISTES_PREFIX;
	$sous_rubrique = "abonne_edit";

	$commencer_page = charger_fonction('commencer_page', 'inc');
	echo($commencer_page(_T('spiplistes:spiplistes') . " - " . $titre_page, $rubrique, $sous_rubrique));
	
	// la gestion des abonnes est reservee aux admins et a l'auteur
	if(!$flag_editable) {
		// erreur sur appel de page ?
		if(!($id_auteur > 0)) {
			die (spiplistes_terminer_page_donnee_manquante() . fin_page());
		}
		die (spiplistes_terminer_page_non_autorisee() . fin_page());
	}
	
	$page_result = ""
		. "<br /><br /><br />\n"
		. spiplistes_gros_titre($titre_page, '', true)
		. barre_onglets($rubrique, $sous_rubrique)
		. debut_gauche($rubrique, true)
		. pipeline('affiche_gauche', array('args'=>array('exec'=>$sous_rubrique),'data'=>''))
		. spiplistes_boite_info_id(_T('titre_cadre_numero_auteur'), $id_auteur, true, 'id_auteur')
		//. creer_colonne_droite($rubrique, true)  // spiplistes_boite_raccourcis() s'en occupe
		. spiplistes_boite_raccourcis(true)
		. pipeline('affiche_droite', array('args'=>array('exec'=>$sous_rubrique),'data'=>''))
		. debut_droite($rubrique, true)
		;
	
	$page_result .= ""
		. debut_cadre_relief(spiplistes_get_icone_auteur($statut), true)
		. "\n<table cellpadding='0' cellspacing='0' border='0' width='100%'>\n"
		. "<tr><td valign='top'>\n"
		. spiplistes_gros_titre($nom, '', true)
		. "<br />\n"
		;
	if(strlen($email) || strlen($nom_site)) {			
		$page_result .= ""
			. "<span class='verdana3'>"
			. (strlen($email) ? _T('email_2')."<strong><a href='mailto:$email'>$email</a></strong><br />\n" : "")
			. (strlen($nom_site) ? _T('info_site_2')."<strong><a href='$url_site'>$nom_site</a></strong>" : "")
			. "</span><br />\n"
			;
	} 
	
	// Si adresse mail, permettre l'abonnement
	if(strlen($email)) {
		$message_alert_abo = 
			(!$format_id_auteur)
			? spiplistes_form_description_alert(_T('spiplistes:abonne_sans_format'), true)
			: ""
			;
		$page_result .= ""
			. "</td>"
			. "<td>"
			// le gros bouton modifier si besoin
			. $gros_bouton_modifier
			. "</td></tr>\n"
			. "<tr><td width='100%' colspan='2'>\n"
			. (strlen($bio) ? "<blockquote class='spip' style='padding:1em;'>".propre($bio)."</blockquote>\n" : "")
			. "</td>\n"
			. "</tr></table>\n"
			. "<br />\n"
			. debut_cadre_relief(_DIR_PLUGIN_SPIPLISTES_IMG_PACK.'courriers_listes-24.png', true, '', _T('spiplistes:format_de_reception').":")
			. spiplistes_form_debut(generer_url_ecrire(_SPIPLISTES_EXEC_ABONNE_EDIT), true)
			. spiplistes_form_description(_T('spiplistes:format_de_reception_desc'), true)
			. $message_alert_abo
			. debut_cadre_relief('', true)
			. "<table width='100%'  border='0' cellspacing='0' cellpadding='0'><tr>"
			. "<td class='verdana2'>"._T('spiplistes:format_de_reception')."</td>\n"
			. "<td>"
			. spiplistes_form_input_radio ('modif_abo', 'html', _T('spiplistes:html')
				, ($format_abo == 'html'), true, false)
			. "</td>\n"
			. "<td>"
			. spiplistes_form_input_radio ('modif_abo', 'texte', _T('spiplistes:texte')
				, ($format_abo == 'texte'), true, false)
			. "</td>\n"
			. "</tr></table>\n"
			. fin_cadre_relief(true)
			// suspendre les abonnements
			. debut_cadre_relief('', true)
			. spiplistes_form_input_radio ('modif_abo', 'suspend', _T('spiplistes:Desabonner_temporaire')
				, ($modif_abo == 'suspend'), true, false)
			. fin_cadre_relief(true)
			// resilier les abonnements
			. debut_cadre_relief('', true)
			. spiplistes_form_input_radio ('modif_abo', 'non', _T('spiplistes:Desabonner_definitif')
				, (($format_abo == 'non') && ($modif_abo != 'suspend')), true, false)
			. fin_cadre_relief(true)
			. "<input type='hidden' name='id_auteur' value=$id_auteur >\n"
			. spiplistes_form_bouton_valider('btn_confirmer_format')
			. spiplistes_form_fin(true)
			. fin_cadre_relief(true)
			;
	} else {
		$page_result .= ""
			. "</td><td></td></tr></table>\n"
			. "<p>"._T('spiplistes:adresse_mail_obligatoire')."</p>\n"
			. "<p><a href='".generer_url_ecrire("auteur_infos","id_auteur=$id_auteur&edit=oui")."'>"
				._T('spiplistes:editer_fiche_abonne')."</a></p>\n"
			;
	}
	
	$page_result .=
		fin_cadre_relief(true)
		//
		. "<br />\n"
		// Liste des abonnements
		. spiplistes_lister_courriers_listes(
			_T('spiplistes:abonne_listes')
			, _DIR_PLUGIN_SPIPLISTES_IMG_PACK.'courriers_listes-24.png'
			, 'abonnements'
			, ''
			, false
			, 'position'
			, _SPIPLISTES_EXEC_LISTE_GERER
			, $id_auteur
		)
		//
		. $gros_bouton_supprimer
		;
	
	echo($page_result);
	
	echo pipeline('affiche_milieu',array('args'=>array('exec'=>$sous_rubrique),'data'=>''))
		, spiplistes_html_signature(_SPIPLISTES_PREFIX)
		, fin_gauche(), fin_page();
}