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é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érale 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, États-Unis. */ /******************************************************************************************/ include_spip('inc/spiplistes_api'); function spip_listes_onglets($rubrique, $onglet){ global $id_auteur, $connect_id_auteur, $connect_statut, $statut_auteur, $options; echo debut_onglet(); if ($rubrique == "messagerie"){ echo onglet(_T('spiplistes:Historique_des_envois'), generer_url_ecrire("spip_listes"), "messagerie", $onglet, _DIR_PLUGIN_SPIPLISTES."img_pack/stock_hyperlink-mail-and-news-24.gif"); echo onglet(_T('spiplistes:Listes_de_diffusion'), generer_url_ecrire("listes_toutes"), "messagerie", $onglet, _DIR_PLUGIN_SPIPLISTES."img_pack/reply-to-all-24.gif"); echo onglet(_T('spiplistes:Suivi_des_abonnements'), generer_url_ecrire("abonnes_tous"), "messagerie", $onglet, _DIR_PLUGIN_SPIPLISTES."img_pack/addressbook-24.gif"); } echo fin_onglet(); } function boite_autocron(){ @define('_SPIP_LISTE_SEND_THREADS',1); include_spip('inc/spiplistes_cron'); if (cron_spiplistes_cron(0)) return; // rien a faire $res = spip_query("SELECT COUNT(a.id_auteur) AS n FROM spip_auteurs_courriers AS a JOIN spip_courriers AS c ON c.id_courrier=a.id_courrier WHERE c.statut='encour'"); $n = 0; if ($row = spip_fetch_array($res)) $n = $row['n']; if(true or $n > 0 ){ echo "
"; echo debut_boite_info(); //echo ""; echo "
"._T('spiplistes:envoi_en_cours')."
"; echo "
"; $total = $n; $res2 = spip_query("SELECT SUM(total_abonnes) AS total FROM spip_courriers WHERE statut='encour'"); $row2 = spip_fetch_array($res2); $total = $row2['total']; echo "
"; echo "

"._T('spiplistes:envoi_en_cours')." " . "$n/$total (" . round($n/$total*100)."%)

"; $href = generer_action_auteur('spiplistes_envoi_lot','envoyer'); for ($i=0;$i<_SPIP_LISTE_SEND_THREADS;$i++) echo ""; if (_request('exec')=='spip_listes') echo ""; echo "
"; echo ""; echo "

"._T('spiplistes:texte_boite_en_cours')."

" ; echo "

["._T('annuler')."]

"; echo fin_boite_info(); } //echo '
'; //spip_log("spip_listes : autocron"); } function spip_listes_raccourcis(){ global $connect_statut; // debut des racourcis echo debut_raccourcis(_DIR_PLUGIN_SPIPLISTES."img_pack/mailer_config.gif"); if ($connect_statut == "0minirezo") { icone_horizontale(_T('spiplistes:Nouveau_courrier'), generer_url_ecrire("courrier_edit","new=oui&type=nl"), _DIR_PLUGIN_SPIPLISTES."img_pack/stock_mail_send.gif"); // echo ""; // bug icone_horizontale() echo "
" ; echo "
" ; icone_horizontale(_T('spiplistes:Nouvelle_liste_de_diffusion'), generer_url_ecrire("liste_edit","new=oui"), _DIR_PLUGIN_SPIPLISTES."img_pack/reply-to-all-24.gif"); // echo ""; // bug icone_horizontale() icone_horizontale(_T('spiplistes:import_export'), generer_url_ecrire("import_export"), _DIR_PLUGIN_SPIPLISTES."img_pack/listes_inout.png"); // echo ""; // bug icone_horizontale() icone_horizontale(_T('spiplistes:Configuration'), generer_url_ecrire("config"),_DIR_PLUGIN_SPIPLISTES."img_pack/mailer_config.gif"); // echo ""; // bug icone_horizontale() } echo fin_raccourcis(); //Afficher la console d'envoi ? boite_autocron(); // colonne gauche boite info echo "
" ; echo debut_boite_info(); echo _T('spiplistes:_aide'); echo fin_boite_info(); } /** * spiplistes_afficher_en_liste * * affiche des listes d'éléments * * @param string titre * @param string image * @param string statut * @param string recherche * @param string nom_position * @return string la liste des lettres pour le statut demandé @author BoOz / Pierre Basson **/ function spiplistes_afficher_en_liste($titre, $image, $element='listes', $statut, $recherche='', $nom_position='position') { global $pas, $id_auteur; $position = intval($_GET[$nom_position]); $clause_where = ''; if (!empty($recherche)) { $clause_where.= ' AND ( titre LIKE '._q("%$recherche%").' OR descriptif LIKE '._q("%$recherche%").' OR texte LIKE '._q("%$recherche%").' )'; } $lettres = ''; if(!$pas) $pas=10 ; if(!$position) $position=0 ; if($element == 'listes'){ $requete_listes = 'SELECT id_liste, titre, date FROM spip_listes WHERE statut='._q($statut).' '.$clause_where.' ORDER BY date DESC LIMIT '.intval($position).','.intval($pas).''; } if($element == 'messages'){ $type='nl' ; $type2=""; $statut2=""; if($statut=='redac') $statut2=" OR statut='ready'"; if($statut=='auto'){ $type='auto'; $statut='publie'; } if($statut=='encour') $type2=" OR type='auto'"; $requete_listes = 'SELECT id_courrier, titre, date, nb_emails_envoyes FROM spip_courriers WHERE (type='._q($type).$type2.') AND (statut='._q($statut).$statut2.') '.$clause_where.' ORDER BY date DESC LIMIT '.intval($position).','.intval($pas).''; } if($element == 'abonnements'){ if($statut=='') $requete_listes = 'SELECT listes.id_liste, listes.titre, listes.statut, listes.date,lien.id_auteur,lien.id_liste FROM spip_auteurs_listes AS lien LEFT JOIN spip_listes AS listes ON lien.id_liste=listes.id_liste WHERE lien.id_auteur='._q($id_auteur).' AND (listes.statut="liste" OR listes.statut="inact") ORDER BY listes.date DESC LIMIT '.intval($position).','.intval($pas).''; else{ $requete_listes = 'SELECT id_courrier, titre, date, nb_emails_envoyes FROM spip_courriers WHERE type='._q($type).' AND statut='._q($statut).' '.$clause_where.' ORDER BY date DESC LIMIT '.intval($position).','.intval($pas).''; } } //echo "$requete_listes"; $resultat_aff = spip_query($requete_listes); if (@spip_num_rows($resultat_aff) > 0) { $en_liste.= "
\n"; $en_liste.= "
\n"; $en_liste.= "
\n"; $en_liste.= "\n"; $en_liste.= "
\n"; $en_liste.= "
\n"; $en_liste.= "\n"; $en_liste.= $titre; $en_liste.= "\n"; $en_liste.= "
\n"; $en_liste.= "
\n"; $en_liste.= "\n"; while ($row = spip_fetch_array($resultat_aff)) { $titre = $row['titre']; $date = affdate($row['date']); $retour = _DIR_RESTREINT_ABS.self(); switch ($element){ case "abonnements": $id_row = $row['id_liste']; $url_row = generer_url_ecrire('listes', 'id_liste='.$id_row); $url_desabo = generer_action_auteur('spiplistes_changer_statut_abonne', $row['id_auteur']."-listedesabo-$id_row", $retour); break; case "listes": $id_row = $row['id_liste']; $url_row = generer_url_ecrire('listes', 'id_liste='.$id_row); break; default: $id_row = $row['id_courrier']; $nb_emails_envoyes = $row['nb_emails_envoyes']; $url_row = generer_url_ecrire('gerer_courrier', 'id_message='.$id_row); } $en_liste.= "\n"; $en_liste.= ""; $en_liste.= "\n"; switch ($element){ case "abonnements": $en_liste.= "\n"; break; default: $en_liste.= "\n"; } $en_liste.= "\n"; $en_liste.= "\n"; } $en_liste.= "
"; switch ($statut) { case 'brouillon': $en_liste.= "puce-blanche"; break; case 'publie': $en_liste.= "puce-verte"; break; case 'envoi_en_cours': $en_liste.= "puce-orange"; break; } $en_liste.= "\n"; $en_liste.= "\n"; $en_liste.= ""._T('spiplistes:desabonnement')."".$date.""._T('spiplistes:numero').$id_row."
\n"; switch ($element){ case "listes": $requete_total = 'SELECT id_liste FROM spip_listes WHERE statut='._q($statut).' '.$clause_where.' ORDER BY date DESC'; $retour = 'listes_toutes'; break; case "messages": $requete_total = 'SELECT id_courrier FROM spip_courriers WHERE type='._q($type).' AND statut='._q($statut); $retour = 'spip_listes'; break; case "abonnements": $requete_total = 'SELECT listes.id_liste, listes.titre, listes.statut, listes.date, lien.id_auteur,lien.id_liste FROM spip_auteurs_listes AS lien LEFT JOIN spip_listes AS listes ON lien.id_liste=listes.id_liste WHERE lien.id_auteur='._q($id_auteur).' AND (listes.statut ="liste" OR listes.statut ="inact") ORDER BY listes.date DESC'; $retour = 'abonne_edit'; $param = '&id_auteur='.$id_auteur; break; } $resultat_total = spip_query($requete_total); $total = spip_num_rows($resultat_total); $en_liste.= spiplistes_afficher_pagination($retour, $param, $total, $position, $nom_position); $en_liste.= "
\n"; $en_liste.= "
\n"; } return $en_liste; } /** * adapte de lettres_afficher_pagination * * @param string fond * @param string arguments * @param int total * @param int position * @author Pierre Basson **/ function spiplistes_afficher_pagination($fond, $arguments, $total, $position, $nom) { global $pas; $pagination = ''; $i = 0; $nombre_pages = floor(($total-1)/$pas)+1; if($nombre_pages>1) { $pagination.= "
\n"; while($i<$nombre_pages) { $url = generer_url_ecrire($fond, $nom.'='.strval($i*$pas).$arguments, '&'); $item = strval($i+1); if(($i*$pas) != $position) { $pagination.= '   '.$item.''."\n"; } else { $pagination.= '   '.$item.''."\n"; } $i++; } $pagination.= "\n"; $pagination.= "
\n"; } return $pagination; } function spiplistes_cherche_auteur(){ if (!$cherche_auteur = _request('cherche_auteur')) return; echo "

"; $col = strpos($cherche_auteur, '@') !== false ? 'email' : 'nom'; $like = ''; if (strpos($cherche_auteur, '%') !== false) { $like = " WHERE $col LIKE '" . $cherche_auteur . "'"; $cherche_auteur = str_replace('%', ' ', $cherche_auteur); } $result = spip_query("SELECT id_auteur, $col FROM spip_auteurs$like"); while ($row = spip_fetch_array($result, SPIP_NUM)) { $table_auteurs[] = $row[1]; $table_ids[] = $row[0]; } $resultat = mots_ressemblants($cherche_auteur, $table_auteurs, $table_ids); echo debut_boite_info(); if (!$resultat) echo ""._T('texte_aucun_resultat_auteur', array('cherche_auteur' => $cherche_auteur)).".
"; elseif (count($resultat) == 1) { list(, $nouv_auteur) = each($resultat); echo ""._T('spiplistes:une_inscription')."
"; $result = spip_query("SELECT * FROM spip_auteurs WHERE id_auteur="._q($nouv_auteur)); echo "

"; } elseif (count($resultat) < 16) { reset($resultat); unset($les_auteurs); while (list(, $id_auteur) = each($resultat)) $les_auteurs[] = $id_auteur; if ($les_auteurs) { $les_auteurs = join(',', $les_auteurs); echo ""._T('texte_plusieurs_articles', array('cherche_auteur' => $cherche_auteur))."
"; $result = spip_query("SELECT * FROM spip_auteurs WHERE id_auteur IN ($les_auteurs) ORDER BY nom"); echo ""; } } else echo ""._T('texte_trop_resultats_auteurs', array('cherche_auteur' => $cherche_auteur))."
"; echo fin_boite_info(); echo "

"; } function spiplistes_afficher_auteurs($query, $url){ $tri = _request('tri') ? _request('tri') : 'nom'; $t = spip_query('SELECT COUNT(*) FROM spip_auteurs'); $nombre_auteurs = spip_fetch_array($t, SPIP_NUM); $nombre_auteurs = intval($nombre_auteurs[0]); // reglage du debut $max_par_page = 30; $debut = intval(_request('debut')); if ($debut > $nombre_auteurs - $max_par_page) { $debut = max(0,$nombre_auteurs - $max_par_page); } $t = spip_query($query . ' LIMIT ' . $debut . ',' . $max_par_page); $auteurs=array(); $les_auteurs = array(); while ($auteur = spip_fetch_array($t)) { if ($auteur['statut'] == '0minirezo') { $auteur['restreint'] = spip_num_rows(spip_query( "SELECT * FROM spip_auteurs_rubriques WHERE id_auteur="._q($auteur['id_auteur']))); } $auteurs[] = $auteur; $les_auteurs[] = $auteur['id_auteur']; } $lettre = array(); if (($tri == 'nom') AND $GLOBALS['options'] == 'avancees') { $qlettre = spip_query( 'select distinct upper(left(nom,1)) l, count(*) from spip_auteurs group by l order by l'); $count = 0; while ($rlettre = spip_fetch_array($qlettre, SPIP_NUM)) { $lettre[$rlettre[0]] = $count; $count += intval($rlettre[1]); } } // // Affichage // // ici commence la vraie boucle echo debut_cadre_relief('redacteurs-24.gif'); echo "\n"; if ($nombre_auteurs > $max_par_page) { echo "\n"; if (($tri == 'nom') AND $GLOBALS['options'] == 'avancees') { // affichage des lettres echo "\n"; } echo ""; } echo ""; echo "\n"; //translate extra field data list(,,,$trad,$val) = explode("|",_T("spiplistes:options")); $trad = explode(",",$trad); $val = explode(",",$val); $trad_map = Array(); for($index_map=0;$index_map"; // statut auteur echo "\n"; } echo "
"; echo ""; for ($j=0; $j < $nombre_auteurs; $j+=$max_par_page) { if ($j > 0) echo " | "; if ($j == $debut) echo "$j"; elseif ($j > 0) echo "$j"; else echo " 0"; if ($debut > $j AND $debut < $j+$max_par_page) echo " | $debut"; } echo ""; echo "
"; echo ""; foreach ($lettre as $key => $val) { if ($val == $debut) echo "$key "; else echo "$key "; } echo ""; echo "
"; $img = ""; if ($tri=='statut') echo $img; else echo "$img"; echo ""; if ($tri == '' OR $tri=='nom') echo ''._T('info_nom').''; else echo ""._T('info_nom').""; echo ""._T('info_site').""; echo ""; if ($visiteurs != 'oui') { if ($tri=='nombre') echo ""._T('spiplistes:format').""; else echo ""._T('spiplistes:format').""; } echo ""; echo ""._T('spiplistes:modifier').""; echo "
"; echo bonhomme_statut($row); // nom echo ''; echo "".typo($row['nom']).''; if ($connect_statut == '0minirezo' AND $row['restreint']) echo "  "._T('statut_admin_restreint').""; // contact if ($GLOBALS['options'] == 'avancees') { echo ''; if ($row['messagerie'] == 'oui' AND $row['login'] AND $activer_messagerie != "non" AND $connect_activer_messagerie != "non" AND $messagerie != "non") echo _T('spiplistes:erreur'); // bouton_imessage($row['id_auteur'],"force")." "; if ($connect_statut=="0minirezo"){ if (strlen($row['email'])>3) echo ""._T('lien_email').""; else echo " "; } if (strlen($row['url_site'])>3) echo ""._T('lien_site').""; else echo " "; } // Abonne ou pas ? echo ''; $id_auteur=$row['id_auteur'] ; $abo = spip_fetch_array(spip_query("SELECT `spip_listes_format` FROM `spip_auteurs_elargis` WHERE `id_auteur`=$id_auteur")) ; //var_dump($abo);die("coucou"); $abo = $abo["spip_listes_format"]; //var_dump($abo); if($abo == "non") echo "-"; else echo " ".$trad_map[$abo]; // Modifier l'abonnement echo ''; echo ""; $retour = parametre_url($url,'debut',$debut); $u = generer_action_auteur('spiplistes_changer_statut_abonne', $row['id_auteur']."-format", $retour); if($abo == 'html'){ $option_abo = ""._T('spiplistes:desabo') . " | "._T('spiplistes:texte').""; } elseif ($abo == 'texte') $option_abo = ""._T('spiplistes:desabo') . " | "._T('spiplistes:html').""; elseif(($abo == 'non')OR (!$abo)) $option_abo = ""._T('spiplistes:texte') . " | "._T('spiplistes:html').""; echo " ".$option_abo; echo "
\n"; echo ""; echo ""; $debut_suivant = $debut + $max_par_page; if ($debut_suivant < $nombre_auteurs OR $debut > 0) { echo ""; echo "\n"; } echo "
"; if ($debut > 0) { $debut_prec = strval(max($debut - $max_par_page, 0)); echo '
'; echo ""; echo "
"; } echo "
"; if ($debut_suivant < $nombre_auteurs) { echo '
'; echo ""; echo "
"; } echo "
\n"; echo fin_cadre_relief(); return join(',', $les_auteurs); } /******************************************************************************************/ /* SPIP-Listes est un systeme de gestion de listes d'abonnes et d'envoi d'information */ /* par email pour SPIP. http://bloog.net/spip-listes */ /* Copyright (C) 2004 Vincent CARON v.caronlaposte.net */ /* */ /* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */ /* de la Licence Publique Generale GNU publiee par la Free Software Foundation */ /* (version 2). */ /* */ /* Ce programme est distribue car potentiellement utile, mais SANS AUCUNE GARANTIE, */ /* ni explicite ni implicite, y compris les garanties de commercialisation ou */ /* d'adaptation dans un but specifique. Reportez-vous à la Licence Publique Generale GNU */ /* pour plus de détails. */ /* */ /* Vous devez avoir reçu une copie de la Licence Publique Generale GNU */ /* en meme temps que ce programme ; si ce n'est pas le cas, ecrivez a la */ /* Free Software Foundation, */ /* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, Etats-Unis. */ /******************************************************************************************/ ?>