1 | <?php |
---|
2 | |
---|
3 | /******************************************************************************************/ |
---|
4 | /* SPIP-listes est un système de gestion de listes d'information par email pour SPIP */ |
---|
5 | /* Copyright (C) 2004 Vincent CARON v.caron<at>laposte.net , http://bloog.net */ |
---|
6 | /* */ |
---|
7 | /* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */ |
---|
8 | /* de la Licence Publique Générale GNU publiée par la Free Software Foundation */ |
---|
9 | /* (version 2). */ |
---|
10 | /* */ |
---|
11 | /* Ce programme est distribué car potentiellement utile, mais SANS AUCUNE GARANTIE, */ |
---|
12 | /* ni explicite ni implicite, y compris les garanties de commercialisation ou */ |
---|
13 | /* d'adaptation dans un but spécifique. Reportez-vous à la Licence Publique Générale GNU */ |
---|
14 | /* pour plus de détails. */ |
---|
15 | /* */ |
---|
16 | /* Vous devez avoir reçu une copie de la Licence Publique Générale GNU */ |
---|
17 | /* en même temps que ce programme ; si ce n'est pas le cas, écrivez à la */ |
---|
18 | /* Free Software Foundation, */ |
---|
19 | /* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, États-Unis. */ |
---|
20 | /******************************************************************************************/ |
---|
21 | |
---|
22 | include_spip('inc/spiplistes_api'); |
---|
23 | |
---|
24 | |
---|
25 | function spip_listes_onglets($rubrique, $onglet){ |
---|
26 | global $id_auteur, $connect_id_auteur, $connect_statut, $statut_auteur, $options; |
---|
27 | |
---|
28 | echo debut_onglet(); |
---|
29 | if ($rubrique == "messagerie"){ |
---|
30 | 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"); |
---|
31 | echo onglet(_T('spiplistes:Listes_de_diffusion'), generer_url_ecrire("listes_toutes"), "messagerie", $onglet, _DIR_PLUGIN_SPIPLISTES."img_pack/reply-to-all-24.gif"); |
---|
32 | echo onglet(_T('spiplistes:Suivi_des_abonnements'), generer_url_ecrire("abonnes_tous"), "messagerie", $onglet, _DIR_PLUGIN_SPIPLISTES."img_pack/addressbook-24.gif"); |
---|
33 | } |
---|
34 | echo fin_onglet(); |
---|
35 | } |
---|
36 | |
---|
37 | |
---|
38 | function boite_autocron(){ |
---|
39 | @define('_SPIP_LISTE_SEND_THREADS',1); |
---|
40 | include_spip('inc/spiplistes_cron'); |
---|
41 | if (cron_spiplistes_cron(0)) return; // rien a faire |
---|
42 | $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'"); |
---|
43 | $n = 0; |
---|
44 | if ($row = spip_fetch_array($res)) |
---|
45 | $n = $row['n']; |
---|
46 | |
---|
47 | if(true or $n > 0 ){ |
---|
48 | echo "<br />"; |
---|
49 | echo debut_boite_info(); |
---|
50 | //echo "<script type='text/javascript' src='".find_in_path('javascript/autocron.js')."'></script>"; |
---|
51 | |
---|
52 | echo "<div style='font-weight:bold;text-align:center'>"._T('spiplistes:envoi_en_cours')."</div>"; |
---|
53 | echo "<div style='padding : 10px;text-align:center'><img src='"._DIR_PLUGIN_SPIPLISTES."img_pack/48_import.gif'></div>"; |
---|
54 | |
---|
55 | $total = $n; |
---|
56 | $res2 = spip_query("SELECT SUM(total_abonnes) AS total FROM spip_courriers WHERE statut='encour'"); |
---|
57 | $row2 = spip_fetch_array($res2); |
---|
58 | $total = $row2['total']; |
---|
59 | echo "<div id='meleuse'>"; |
---|
60 | echo "<p align='center' id='envoi_statut'>"._T('spiplistes:envoi_en_cours')." " |
---|
61 | . "<strong id='envois_restants'>$n</strong>/<span id='envois_total'>$total</span> (<span id='envois_restant_pourcent'>" |
---|
62 | . round($n/$total*100)."</span>%)</p>"; |
---|
63 | |
---|
64 | $href = generer_action_auteur('spiplistes_envoi_lot','envoyer'); |
---|
65 | |
---|
66 | for ($i=0;$i<_SPIP_LISTE_SEND_THREADS;$i++) |
---|
67 | echo "<span id='proc$i' class='processus' name='$href'></span>"; |
---|
68 | if (_request('exec')=='spip_listes') |
---|
69 | echo "<a href='".generer_url_ecrire('spip_listes')."' id='redirect_after'></a>"; |
---|
70 | echo "</div>"; |
---|
71 | |
---|
72 | echo "<script><!-- |
---|
73 | var target = $('#envois_restants'); |
---|
74 | var total = $('#envois_total').html(); |
---|
75 | var target_pc = $('#envois_restant_pourcent'); |
---|
76 | function redirect_fin(){ |
---|
77 | redirect = $('#redirect_after'); |
---|
78 | if (redirect.length>0){ |
---|
79 | href = redirect.attr('href'); |
---|
80 | setTimeout('document.location.href = \"'+href+'\"',0); |
---|
81 | } |
---|
82 | } |
---|
83 | jQuery.fn.runProcessus = function(url) { |
---|
84 | var proc=this; |
---|
85 | var href=url; |
---|
86 | $(target).load(url,function(data){ |
---|
87 | restant = $(target).html(); |
---|
88 | pourcent=Math.round(restant/total*100); |
---|
89 | $(target_pc).html(pourcent); |
---|
90 | if (Math.round(restant)>0) |
---|
91 | $(proc).runProcessus(href); |
---|
92 | else |
---|
93 | redirect_fin(); |
---|
94 | }); |
---|
95 | } |
---|
96 | $('span.processus').each(function(){ |
---|
97 | var href = $(this).attr('name'); |
---|
98 | $(this).html(ajax_image_searching).runProcessus(href); |
---|
99 | //run_processus($(this).attr('id')); |
---|
100 | }); |
---|
101 | //--></script>"; |
---|
102 | echo "<p>"._T('spiplistes:texte_boite_en_cours')."</p>" ; |
---|
103 | echo "<p align='center'><a href='".generer_url_ecrire('gerer_courrier','change_statut=publie&id_message='.$id_mess)."'>["._T('annuler')."]</a></p>"; |
---|
104 | echo fin_boite_info(); |
---|
105 | } |
---|
106 | //echo ' <div style="background-image: url(\''. generer_url_action('cron','&var='.time()).'\');"> </div> '; |
---|
107 | //spip_log("spip_listes : autocron"); |
---|
108 | } |
---|
109 | |
---|
110 | function spip_listes_raccourcis(){ |
---|
111 | global $connect_statut; |
---|
112 | |
---|
113 | // debut des racourcis |
---|
114 | echo debut_raccourcis(_DIR_PLUGIN_SPIPLISTES."img_pack/mailer_config.gif"); |
---|
115 | |
---|
116 | if ($connect_statut == "0minirezo") { |
---|
117 | icone_horizontale(_T('spiplistes:Nouveau_courrier'), generer_url_ecrire("courrier_edit","new=oui&type=nl"), _DIR_PLUGIN_SPIPLISTES."img_pack/stock_mail_send.gif"); |
---|
118 | // echo "</a>"; // bug icone_horizontale() |
---|
119 | echo "<br />" ; |
---|
120 | echo "<br />" ; |
---|
121 | |
---|
122 | 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"); |
---|
123 | // echo "</a>"; // bug icone_horizontale() |
---|
124 | icone_horizontale(_T('spiplistes:import_export'), generer_url_ecrire("import_export"), _DIR_PLUGIN_SPIPLISTES."img_pack/listes_inout.png"); |
---|
125 | // echo "</a>"; // bug icone_horizontale() |
---|
126 | |
---|
127 | icone_horizontale(_T('spiplistes:Configuration'), generer_url_ecrire("config"),_DIR_PLUGIN_SPIPLISTES."img_pack/mailer_config.gif"); |
---|
128 | // echo "</a>"; // bug icone_horizontale() |
---|
129 | } |
---|
130 | echo fin_raccourcis(); |
---|
131 | |
---|
132 | //Afficher la console d'envoi ? |
---|
133 | boite_autocron(); |
---|
134 | |
---|
135 | // colonne gauche boite info |
---|
136 | echo "<br />" ; |
---|
137 | echo debut_boite_info(); |
---|
138 | echo _T('spiplistes:_aide'); |
---|
139 | echo fin_boite_info(); |
---|
140 | } |
---|
141 | |
---|
142 | /** |
---|
143 | * spiplistes_afficher_en_liste |
---|
144 | * |
---|
145 | * affiche des listes d'éléments |
---|
146 | * |
---|
147 | * @param string titre |
---|
148 | * @param string image |
---|
149 | * @param string statut |
---|
150 | * @param string recherche |
---|
151 | * @param string nom_position |
---|
152 | * @return string la liste des lettres pour le statut demandé @author BoOz / Pierre Basson |
---|
153 | **/ |
---|
154 | function spiplistes_afficher_en_liste($titre, $image, $element='listes', $statut, $recherche='', $nom_position='position') { |
---|
155 | |
---|
156 | global $pas, $id_auteur; |
---|
157 | $position = intval($_GET[$nom_position]); |
---|
158 | |
---|
159 | $clause_where = ''; |
---|
160 | if (!empty($recherche)) { |
---|
161 | $clause_where.= ' AND ( titre LIKE '._q("%$recherche%").' OR descriptif LIKE '._q("%$recherche%").' OR texte LIKE '._q("%$recherche%").' )'; |
---|
162 | } |
---|
163 | |
---|
164 | $lettres = ''; |
---|
165 | |
---|
166 | if(!$pas) $pas=10 ; |
---|
167 | if(!$position) $position=0 ; |
---|
168 | |
---|
169 | if($element == 'listes'){ |
---|
170 | $requete_listes = 'SELECT id_liste, |
---|
171 | titre, |
---|
172 | date |
---|
173 | FROM spip_listes |
---|
174 | WHERE statut='._q($statut).' '.$clause_where.' |
---|
175 | ORDER BY date DESC |
---|
176 | LIMIT '.intval($position).','.intval($pas).''; |
---|
177 | } |
---|
178 | |
---|
179 | if($element == 'messages'){ |
---|
180 | $type='nl' ; |
---|
181 | $type2=""; |
---|
182 | $statut2=""; |
---|
183 | if($statut=='redac') |
---|
184 | $statut2=" OR statut='ready'"; |
---|
185 | if($statut=='auto'){ |
---|
186 | $type='auto'; |
---|
187 | $statut='publie'; |
---|
188 | } |
---|
189 | if($statut=='encour') |
---|
190 | $type2=" OR type='auto'"; |
---|
191 | |
---|
192 | $requete_listes = 'SELECT id_courrier, |
---|
193 | titre, |
---|
194 | date, nb_emails_envoyes |
---|
195 | FROM spip_courriers |
---|
196 | WHERE (type='._q($type).$type2.') AND (statut='._q($statut).$statut2.') '.$clause_where.' |
---|
197 | ORDER BY date DESC |
---|
198 | LIMIT '.intval($position).','.intval($pas).''; |
---|
199 | } |
---|
200 | |
---|
201 | if($element == 'abonnements'){ |
---|
202 | if($statut=='') |
---|
203 | $requete_listes = 'SELECT listes.id_liste, listes.titre, listes.statut, listes.date,lien.id_auteur,lien.id_liste |
---|
204 | FROM spip_auteurs_listes AS lien |
---|
205 | LEFT JOIN spip_listes AS listes ON lien.id_liste=listes.id_liste |
---|
206 | WHERE lien.id_auteur='._q($id_auteur).' AND (listes.statut="liste" OR listes.statut="inact") |
---|
207 | ORDER BY listes.date DESC LIMIT '.intval($position).','.intval($pas).''; |
---|
208 | else{ |
---|
209 | $requete_listes = 'SELECT id_courrier, |
---|
210 | titre, |
---|
211 | date, nb_emails_envoyes |
---|
212 | FROM spip_courriers |
---|
213 | WHERE type='._q($type).' AND statut='._q($statut).' '.$clause_where.' |
---|
214 | ORDER BY date DESC |
---|
215 | LIMIT '.intval($position).','.intval($pas).''; |
---|
216 | } |
---|
217 | } |
---|
218 | |
---|
219 | //echo "$requete_listes"; |
---|
220 | $resultat_aff = spip_query($requete_listes); |
---|
221 | |
---|
222 | |
---|
223 | if (@spip_num_rows($resultat_aff) > 0) { |
---|
224 | |
---|
225 | $en_liste.= "<div class='liste'>\n"; |
---|
226 | $en_liste.= "<div style='position: relative;'>\n"; |
---|
227 | $en_liste.= "<div style='position: absolute; top: -12px; left: 3px;'>\n"; |
---|
228 | $en_liste.= "<img src='".$image."' />\n"; |
---|
229 | $en_liste.= "</div>\n"; |
---|
230 | $en_liste.= "<div style='background-color: white; color: black; padding: 3px; padding-left: 30px; border-bottom: 1px solid #444444;' class='verdana2'>\n"; |
---|
231 | $en_liste.= "<b>\n"; |
---|
232 | $en_liste.= $titre; |
---|
233 | $en_liste.= "</b>\n"; |
---|
234 | $en_liste.= "</div>\n"; |
---|
235 | $en_liste.= "</div>\n"; |
---|
236 | $en_liste.= "<table width='100%' cellpadding='2' cellspacing='0' border='0'>\n"; |
---|
237 | |
---|
238 | while ($row = spip_fetch_array($resultat_aff)) { |
---|
239 | $titre = $row['titre']; |
---|
240 | $date = affdate($row['date']); |
---|
241 | |
---|
242 | $retour = _DIR_RESTREINT_ABS.self(); |
---|
243 | switch ($element){ |
---|
244 | case "abonnements": |
---|
245 | $id_row = $row['id_liste']; |
---|
246 | $url_row = generer_url_ecrire('listes', 'id_liste='.$id_row); |
---|
247 | $url_desabo = generer_action_auteur('spiplistes_changer_statut_abonne', $row['id_auteur']."-listedesabo-$id_row", $retour); |
---|
248 | break; |
---|
249 | case "listes": |
---|
250 | $id_row = $row['id_liste']; |
---|
251 | $url_row = generer_url_ecrire('listes', 'id_liste='.$id_row); |
---|
252 | break; |
---|
253 | default: |
---|
254 | $id_row = $row['id_courrier']; |
---|
255 | $nb_emails_envoyes = $row['nb_emails_envoyes']; |
---|
256 | $url_row = generer_url_ecrire('gerer_courrier', 'id_message='.$id_row); |
---|
257 | } |
---|
258 | |
---|
259 | $en_liste.= "<tr class='tr_liste'>\n"; |
---|
260 | $en_liste.= "<td width='11'>"; |
---|
261 | switch ($statut) { |
---|
262 | case 'brouillon': |
---|
263 | $en_liste.= "<img src='"._DIR_IMG_PACK."puce-blanche.gif' alt='puce-blanche' border='0' style='margin: 1px;' />"; |
---|
264 | break; |
---|
265 | case 'publie': |
---|
266 | $en_liste.= "<img src='"._DIR_IMG_PACK."puce-verte.gif' alt='puce-verte' border='0' style='margin: 1px;' />"; |
---|
267 | break; |
---|
268 | case 'envoi_en_cours': |
---|
269 | $en_liste.= "<img src='"._DIR_IMG_PACK."puce-orange.gif' alt='puce-orange' border='0' style='margin: 1px;' />"; |
---|
270 | break; |
---|
271 | } |
---|
272 | $en_liste.= "</td>"; |
---|
273 | $en_liste.= "<td class='arial2'>\n"; |
---|
274 | $en_liste.= "<div>\n"; |
---|
275 | $en_liste.= "<a href=\"".$url_row."\" dir='ltr' style='display:block;'>\n"; |
---|
276 | $en_liste.= $titre; |
---|
277 | |
---|
278 | if ($element == 'listes') { |
---|
279 | $nb_abo= spip_num_rows(spip_query("SELECT id_auteur FROM spip_auteurs_listes WHERE id_liste="._q($id_row))); |
---|
280 | $nb_abo = ($nb_abo>1)? $nb_abo._T('spiplistes:nb_abonnes_plur') : $nb_abo._T('spiplistes:nb_abonnes_sing'); |
---|
281 | |
---|
282 | $en_liste.= " <span style='font-size:100%;color:#666666' dir='ltr'>\n"; |
---|
283 | $en_liste.= "(".$nb_abo.")\n"; |
---|
284 | $en_liste.= "</span>\n"; |
---|
285 | } |
---|
286 | |
---|
287 | if($nb_emails_envoyes>0){ |
---|
288 | $en_liste.= "<span style='font-size:100%;color:#666666' dir='ltr'>\n"; |
---|
289 | $en_liste.= "(".$nb_emails_envoyes.")\n"; |
---|
290 | $en_liste.= "</span>\n"; |
---|
291 | } |
---|
292 | |
---|
293 | $en_liste.= "</a>\n"; |
---|
294 | $en_liste.= "</div>\n"; |
---|
295 | $en_liste.= "</td>\n"; |
---|
296 | |
---|
297 | switch ($element){ |
---|
298 | case "abonnements": |
---|
299 | $en_liste.= "<td width='120' class='arial1'><a href=\"".$url_desabo."\" dir='ltr' style='display:block;'>"._T('spiplistes:desabonnement')."</a></td>\n"; |
---|
300 | break; |
---|
301 | default: |
---|
302 | $en_liste.= "<td width='120' class='arial1'>".$date."</td>\n"; |
---|
303 | } |
---|
304 | |
---|
305 | $en_liste.= "<td width='50' class='arial1'><b>"._T('spiplistes:numero').$id_row."</b></td>\n"; |
---|
306 | $en_liste.= "</tr>\n"; |
---|
307 | |
---|
308 | } |
---|
309 | $en_liste.= "</table>\n"; |
---|
310 | |
---|
311 | switch ($element){ |
---|
312 | case "listes": |
---|
313 | $requete_total = 'SELECT id_liste |
---|
314 | FROM spip_listes |
---|
315 | WHERE statut='._q($statut).' '.$clause_where.' |
---|
316 | ORDER BY date DESC'; |
---|
317 | $retour = 'listes_toutes'; |
---|
318 | break; |
---|
319 | case "messages": |
---|
320 | $requete_total = 'SELECT id_courrier |
---|
321 | FROM spip_courriers |
---|
322 | WHERE type='._q($type).' AND statut='._q($statut); |
---|
323 | $retour = 'spip_listes'; |
---|
324 | break; |
---|
325 | case "abonnements": |
---|
326 | $requete_total = 'SELECT listes.id_liste, listes.titre, listes.statut, listes.date, lien.id_auteur,lien.id_liste |
---|
327 | FROM spip_auteurs_listes AS lien |
---|
328 | LEFT JOIN spip_listes AS listes |
---|
329 | ON lien.id_liste=listes.id_liste |
---|
330 | WHERE lien.id_auteur='._q($id_auteur).' AND (listes.statut ="liste" OR listes.statut ="inact") |
---|
331 | ORDER BY listes.date DESC'; |
---|
332 | $retour = 'abonne_edit'; |
---|
333 | $param = '&id_auteur='.$id_auteur; |
---|
334 | break; |
---|
335 | } |
---|
336 | |
---|
337 | $resultat_total = spip_query($requete_total); |
---|
338 | $total = spip_num_rows($resultat_total); |
---|
339 | |
---|
340 | $en_liste.= spiplistes_afficher_pagination($retour, $param, $total, $position, $nom_position); |
---|
341 | $en_liste.= "</div>\n"; |
---|
342 | $en_liste.= "<br />\n"; |
---|
343 | } |
---|
344 | |
---|
345 | return $en_liste; |
---|
346 | |
---|
347 | } |
---|
348 | |
---|
349 | |
---|
350 | |
---|
351 | /** |
---|
352 | * adapte de lettres_afficher_pagination |
---|
353 | * |
---|
354 | * @param string fond |
---|
355 | * @param string arguments |
---|
356 | * @param int total |
---|
357 | * @param int position |
---|
358 | * @author Pierre Basson |
---|
359 | **/ |
---|
360 | function spiplistes_afficher_pagination($fond, $arguments, $total, $position, $nom) { |
---|
361 | global $pas; |
---|
362 | $pagination = ''; |
---|
363 | $i = 0; |
---|
364 | |
---|
365 | $nombre_pages = floor(($total-1)/$pas)+1; |
---|
366 | |
---|
367 | if($nombre_pages>1) { |
---|
368 | |
---|
369 | $pagination.= "<div style='background-color: white; color: black; padding: 3px; padding-left: 30px; padding-right: 40px; text-align: right;' class='verdana2'>\n"; |
---|
370 | while($i<$nombre_pages) { |
---|
371 | $url = generer_url_ecrire($fond, $nom.'='.strval($i*$pas).$arguments, '&'); |
---|
372 | $item = strval($i+1); |
---|
373 | if(($i*$pas) != $position) { |
---|
374 | $pagination.= ' <a href="'.$url.'">'.$item.'</a>'."\n"; |
---|
375 | } else { |
---|
376 | $pagination.= ' <i>'.$item.'</i>'."\n"; |
---|
377 | } |
---|
378 | $i++; |
---|
379 | } |
---|
380 | |
---|
381 | $pagination.= "</ul>\n"; |
---|
382 | $pagination.= "</div>\n"; |
---|
383 | } |
---|
384 | |
---|
385 | return $pagination; |
---|
386 | } |
---|
387 | |
---|
388 | |
---|
389 | function spiplistes_cherche_auteur(){ |
---|
390 | if (!$cherche_auteur = _request('cherche_auteur')) return; |
---|
391 | |
---|
392 | echo "<p align='left'>"; |
---|
393 | $col = strpos($cherche_auteur, '@') !== false ? 'email' : 'nom'; |
---|
394 | $like = ''; |
---|
395 | if (strpos($cherche_auteur, '%') !== false) { |
---|
396 | $like = " WHERE $col LIKE '" . $cherche_auteur . "'"; |
---|
397 | $cherche_auteur = str_replace('%', ' ', $cherche_auteur); |
---|
398 | } |
---|
399 | $result = spip_query("SELECT id_auteur, $col FROM spip_auteurs$like"); |
---|
400 | |
---|
401 | while ($row = spip_fetch_array($result, SPIP_NUM)) { |
---|
402 | $table_auteurs[] = $row[1]; |
---|
403 | $table_ids[] = $row[0]; |
---|
404 | } |
---|
405 | |
---|
406 | $resultat = mots_ressemblants($cherche_auteur, $table_auteurs, $table_ids); |
---|
407 | echo debut_boite_info(); |
---|
408 | if (!$resultat) |
---|
409 | echo "<b>"._T('texte_aucun_resultat_auteur', array('cherche_auteur' => $cherche_auteur)).".</b><br />"; |
---|
410 | elseif (count($resultat) == 1) { |
---|
411 | list(, $nouv_auteur) = each($resultat); |
---|
412 | echo "<b>"._T('spiplistes:une_inscription')."</b><br />"; |
---|
413 | $result = spip_query("SELECT * FROM spip_auteurs WHERE id_auteur="._q($nouv_auteur)); |
---|
414 | echo "<ul>"; |
---|
415 | while ($row = spip_fetch_array($result)) { |
---|
416 | $id_auteur = $row['id_auteur']; |
---|
417 | $nom_auteur = $row['nom']; |
---|
418 | $email_auteur = $row['email']; |
---|
419 | $bio_auteur = $row['bio']; |
---|
420 | |
---|
421 | echo "<li><font face='Verdana,Arial,Sans,sans-serif' size=2><b><font size=3><a href=\"?exec=abonne_edit&id_auteur=$id_auteur\">".typo($nom_auteur)."</a></font></b>"; |
---|
422 | echo " | $email_auteur"; |
---|
423 | echo "</font>\n"; |
---|
424 | } |
---|
425 | echo "</ul>"; |
---|
426 | } |
---|
427 | elseif (count($resultat) < 16) { |
---|
428 | reset($resultat); |
---|
429 | unset($les_auteurs); |
---|
430 | while (list(, $id_auteur) = each($resultat)) |
---|
431 | $les_auteurs[] = $id_auteur; |
---|
432 | if ($les_auteurs) { |
---|
433 | $les_auteurs = join(',', $les_auteurs); |
---|
434 | echo "<b>"._T('texte_plusieurs_articles', array('cherche_auteur' => $cherche_auteur))."</b><br />"; |
---|
435 | $result = spip_query("SELECT * FROM spip_auteurs WHERE id_auteur IN ($les_auteurs) ORDER BY nom"); |
---|
436 | echo "<ul>"; |
---|
437 | while ($row = spip_fetch_array($result)) { |
---|
438 | $id_auteur = $row['id_auteur']; |
---|
439 | $nom_auteur = $row['nom']; |
---|
440 | $email_auteur = $row['email']; |
---|
441 | $bio_auteur = $row['bio']; |
---|
442 | |
---|
443 | echo "<li><font face='Verdana,Arial,Sans,sans-serif' size=2><b><font size=3>".typo($nom_auteur)."</font></b>"; |
---|
444 | if ($email_auteur) |
---|
445 | echo " ($email_auteur)"; |
---|
446 | echo " | <a href=\"".generer_url_ecrire("abonne_edit","id_auteur=$id_auteur")."\">"._T('spiplistes:choisir')."</a>"; |
---|
447 | if (trim($bio_auteur)) |
---|
448 | echo "<br /><font size=1>".couper(propre($bio_auteur), 100)."</font>\n"; |
---|
449 | echo "</font><p>\n"; |
---|
450 | } |
---|
451 | echo "</ul>"; |
---|
452 | } |
---|
453 | } |
---|
454 | else |
---|
455 | echo "<b>"._T('texte_trop_resultats_auteurs', array('cherche_auteur' => $cherche_auteur))."</b><br />"; |
---|
456 | |
---|
457 | echo fin_boite_info(); |
---|
458 | echo "<p>"; |
---|
459 | } |
---|
460 | |
---|
461 | function spiplistes_afficher_auteurs($query, $url){ |
---|
462 | $tri = _request('tri') ? _request('tri') : 'nom'; |
---|
463 | |
---|
464 | $t = spip_query('SELECT COUNT(*) FROM spip_auteurs'); |
---|
465 | $nombre_auteurs = spip_fetch_array($t, SPIP_NUM); |
---|
466 | $nombre_auteurs = intval($nombre_auteurs[0]); |
---|
467 | |
---|
468 | // reglage du debut |
---|
469 | $max_par_page = 30; |
---|
470 | $debut = intval(_request('debut')); |
---|
471 | if ($debut > $nombre_auteurs - $max_par_page) { |
---|
472 | $debut = max(0,$nombre_auteurs - $max_par_page); |
---|
473 | } |
---|
474 | |
---|
475 | $t = spip_query($query . ' LIMIT ' . $debut . ',' . $max_par_page); |
---|
476 | |
---|
477 | $auteurs=array(); |
---|
478 | $les_auteurs = array(); |
---|
479 | while ($auteur = spip_fetch_array($t)) { |
---|
480 | if ($auteur['statut'] == '0minirezo') { |
---|
481 | $auteur['restreint'] = spip_num_rows(spip_query( |
---|
482 | "SELECT * FROM spip_auteurs_rubriques WHERE id_auteur="._q($auteur['id_auteur']))); |
---|
483 | } |
---|
484 | $auteurs[] = $auteur; |
---|
485 | $les_auteurs[] = $auteur['id_auteur']; |
---|
486 | } |
---|
487 | |
---|
488 | $lettre = array(); |
---|
489 | if (($tri == 'nom') AND $GLOBALS['options'] == 'avancees') { |
---|
490 | $qlettre = spip_query( |
---|
491 | 'select distinct upper(left(nom,1)) l, count(*) from spip_auteurs group by l order by l'); |
---|
492 | $count = 0; |
---|
493 | while ($rlettre = spip_fetch_array($qlettre, SPIP_NUM)) { |
---|
494 | $lettre[$rlettre[0]] = $count; |
---|
495 | $count += intval($rlettre[1]); |
---|
496 | } |
---|
497 | } |
---|
498 | |
---|
499 | // |
---|
500 | // Affichage |
---|
501 | // |
---|
502 | |
---|
503 | // ici commence la vraie boucle |
---|
504 | echo debut_cadre_relief('redacteurs-24.gif'); |
---|
505 | echo "<table border='0' cellpadding=3 cellspacing=0 width='100%' class='arial2'>\n"; |
---|
506 | |
---|
507 | if ($nombre_auteurs > $max_par_page) { |
---|
508 | echo "<tr bgcolor='white'><td colspan='6'>"; |
---|
509 | echo "<font face='Verdana,Arial,Sans,sans-serif' size='1'>"; |
---|
510 | for ($j=0; $j < $nombre_auteurs; $j+=$max_par_page) { |
---|
511 | if ($j > 0) echo " | "; |
---|
512 | |
---|
513 | if ($j == $debut) |
---|
514 | echo "<b>$j</b>"; |
---|
515 | elseif ($j > 0) |
---|
516 | echo "<a href='".parametre_url($url,'debut',$j)."'>$j</a>"; |
---|
517 | else |
---|
518 | echo " <a href='".parametre_url($url,'debut',0)."'>0</a>"; |
---|
519 | |
---|
520 | if ($debut > $j AND $debut < $j+$max_par_page) |
---|
521 | echo " | <b>$debut</b>"; |
---|
522 | } |
---|
523 | echo "</font>"; |
---|
524 | echo "</td></tr>\n"; |
---|
525 | |
---|
526 | if (($tri == 'nom') AND $GLOBALS['options'] == 'avancees') { |
---|
527 | // affichage des lettres |
---|
528 | echo "<tr bgcolor='white'><td colspan='6'>"; |
---|
529 | echo "<font face='Verdana,Arial,Sans,sans-serif' size=2>"; |
---|
530 | foreach ($lettre as $key => $val) { |
---|
531 | if ($val == $debut) |
---|
532 | echo "<b>$key</b> "; |
---|
533 | else |
---|
534 | echo "<a href='".parametre_url($url,'debut',$val)."'>$key</a> "; |
---|
535 | } |
---|
536 | echo "</font>"; |
---|
537 | echo "</td></tr>\n"; |
---|
538 | } |
---|
539 | echo "<tr height='5'></tr>"; |
---|
540 | } |
---|
541 | |
---|
542 | echo "<tr bgcolor='#DBE1C5'>"; |
---|
543 | echo "<td width='20'>"; |
---|
544 | $img = "<img src='"._DIR_IMG_PACK."/admin-12.gif' alt='' border='0'>"; |
---|
545 | if ($tri=='statut') |
---|
546 | echo $img; |
---|
547 | else |
---|
548 | echo "<a href='".parametre_url($url,'tri','statut')."' title='"._T('lien_trier_statut')."'>$img</a>"; |
---|
549 | |
---|
550 | echo "</td><td>"; |
---|
551 | if ($tri == '' OR $tri=='nom') |
---|
552 | echo '<b>'._T('info_nom').'</b>'; |
---|
553 | else |
---|
554 | echo "<a href='".parametre_url($url,'tri','nom')."' title='"._T('lien_trier_nom')."'><b>"._T('info_nom')."</b></a>"; |
---|
555 | |
---|
556 | echo "</td><td colspan='2'><b>"._T('info_site')."</b>"; |
---|
557 | echo "</td><td>"; |
---|
558 | if ($visiteurs != 'oui') { |
---|
559 | if ($tri=='nombre') |
---|
560 | echo "<b>"._T('spiplistes:format')."</b>"; |
---|
561 | else |
---|
562 | echo "<b>"._T('spiplistes:format')."</b>"; |
---|
563 | } |
---|
564 | echo "</td><td>"; |
---|
565 | echo "<b>"._T('spiplistes:modifier')."</b>"; |
---|
566 | |
---|
567 | echo "</td></tr>\n"; |
---|
568 | |
---|
569 | //translate extra field data |
---|
570 | list(,,,$trad,$val) = explode("|",_T("spiplistes:options")); |
---|
571 | $trad = explode(",",$trad); |
---|
572 | $val = explode(",",$val); |
---|
573 | $trad_map = Array(); |
---|
574 | for($index_map=0;$index_map<count($val);$index_map++) { |
---|
575 | $trad_map[$val[$index_map]] = $trad[$index_map]; |
---|
576 | } |
---|
577 | $i=0; |
---|
578 | foreach ($auteurs as $row) { |
---|
579 | // couleur de ligne |
---|
580 | $couleur = ($i % 2) ? '#FFFFFF' : $couleur_claire; |
---|
581 | $i++; |
---|
582 | echo "<tr bgcolor='$couleur'>"; |
---|
583 | |
---|
584 | |
---|
585 | // statut auteur |
---|
586 | echo "<td>"; |
---|
587 | echo bonhomme_statut($row); |
---|
588 | |
---|
589 | // nom |
---|
590 | echo '</td><td>'; |
---|
591 | echo "<a href='?exec=abonne_edit&id_auteur=".$row['id_auteur']."'>".typo($row['nom']).'</a>'; |
---|
592 | |
---|
593 | if ($connect_statut == '0minirezo' AND $row['restreint']) |
---|
594 | echo " <small>"._T('statut_admin_restreint')."</small>"; |
---|
595 | |
---|
596 | // contact |
---|
597 | if ($GLOBALS['options'] == 'avancees') { |
---|
598 | echo '</td><td>'; |
---|
599 | if ($row['messagerie'] == 'oui' AND $row['login'] |
---|
600 | AND $activer_messagerie != "non" AND $connect_activer_messagerie != "non" AND $messagerie != "non") |
---|
601 | echo _T('spiplistes:erreur'); // bouton_imessage($row['id_auteur'],"force")." "; |
---|
602 | if ($connect_statut=="0minirezo"){ |
---|
603 | if (strlen($row['email'])>3) |
---|
604 | echo "<a href='mailto:".$row['email']."'>"._T('lien_email')."</a>"; |
---|
605 | else |
---|
606 | echo " "; |
---|
607 | } |
---|
608 | |
---|
609 | if (strlen($row['url_site'])>3) |
---|
610 | echo "</td><td><a href='".$row['url_site']."'>"._T('lien_site')."</a>"; |
---|
611 | else |
---|
612 | echo "</td><td> "; |
---|
613 | } |
---|
614 | |
---|
615 | // Abonne ou pas ? |
---|
616 | echo '</td><td>'; |
---|
617 | $id_auteur=$row['id_auteur'] ; |
---|
618 | $abo = spip_fetch_array(spip_query("SELECT `spip_listes_format` FROM `spip_auteurs_elargis` WHERE `id_auteur`=$id_auteur")) ; |
---|
619 | //var_dump($abo);die("coucou"); |
---|
620 | $abo = $abo["spip_listes_format"]; |
---|
621 | //var_dump($abo); |
---|
622 | if($abo == "non") |
---|
623 | echo "-"; |
---|
624 | else |
---|
625 | echo " ".$trad_map[$abo]; |
---|
626 | |
---|
627 | // Modifier l'abonnement |
---|
628 | echo '</td><td>'; |
---|
629 | echo "<a name='abo".$row['id_auteur']."'></a>"; |
---|
630 | |
---|
631 | $retour = parametre_url($url,'debut',$debut); |
---|
632 | $u = generer_action_auteur('spiplistes_changer_statut_abonne', $row['id_auteur']."-format", $retour); |
---|
633 | if($abo == 'html'){ |
---|
634 | $option_abo = "<a href='".parametre_url($u,'statut','non')."'>"._T('spiplistes:desabo') |
---|
635 | . "</a> | <a href='".parametre_url($u,'statut','texte')."'>"._T('spiplistes:texte')."</a>"; |
---|
636 | } |
---|
637 | elseif ($abo == 'texte') |
---|
638 | $option_abo = "<a href='".parametre_url($u,'statut','non')."'>"._T('spiplistes:desabo') |
---|
639 | . "</a> | <a href='".parametre_url($u,'statut','html')."'>"._T('spiplistes:html')."</a>"; |
---|
640 | elseif(($abo == 'non')OR (!$abo)) |
---|
641 | $option_abo = "<a href='".parametre_url($u,'statut','texte')."'>"._T('spiplistes:texte') |
---|
642 | . "</a> | <a href='".parametre_url($u,'statut','html')."'>"._T('spiplistes:html')."</a>"; |
---|
643 | echo " ".$option_abo; |
---|
644 | |
---|
645 | echo "</td></tr>\n"; |
---|
646 | } |
---|
647 | |
---|
648 | echo "</table>\n"; |
---|
649 | |
---|
650 | echo "<a name='bas'>"; |
---|
651 | echo "<table width='100%' border='0'>"; |
---|
652 | |
---|
653 | $debut_suivant = $debut + $max_par_page; |
---|
654 | if ($debut_suivant < $nombre_auteurs OR $debut > 0) { |
---|
655 | echo "<tr height='10'></tr>"; |
---|
656 | echo "<tr bgcolor='white'><td align='left'>"; |
---|
657 | if ($debut > 0) { |
---|
658 | $debut_prec = strval(max($debut - $max_par_page, 0)); |
---|
659 | echo '<form method="post" action="'.parametre_url($url,'debut',$debut_prec).'">'; |
---|
660 | echo "<input type='submit' name='submit' value='<<<' class='fondo' />"; |
---|
661 | echo "</form>"; |
---|
662 | } |
---|
663 | echo "</td><td align='right'>"; |
---|
664 | if ($debut_suivant < $nombre_auteurs) { |
---|
665 | echo '<form method="post" action="'.parametre_url($url,'debut',$debut_suivant).'">'; |
---|
666 | echo "<input type='submit' name='submit' value='>>>' class='fondo' />"; |
---|
667 | echo "</form>"; |
---|
668 | } |
---|
669 | echo "</td></tr>\n"; |
---|
670 | } |
---|
671 | |
---|
672 | echo "</table>\n"; |
---|
673 | echo fin_cadre_relief(); |
---|
674 | return join(',', $les_auteurs); |
---|
675 | } |
---|
676 | |
---|
677 | /******************************************************************************************/ |
---|
678 | /* SPIP-Listes est un systeme de gestion de listes d'abonnes et d'envoi d'information */ |
---|
679 | /* par email pour SPIP. http://bloog.net/spip-listes */ |
---|
680 | /* Copyright (C) 2004 Vincent CARON v.caron<at>laposte.net */ |
---|
681 | /* */ |
---|
682 | /* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */ |
---|
683 | /* de la Licence Publique Generale GNU publiee par la Free Software Foundation */ |
---|
684 | /* (version 2). */ |
---|
685 | /* */ |
---|
686 | /* Ce programme est distribue car potentiellement utile, mais SANS AUCUNE GARANTIE, */ |
---|
687 | /* ni explicite ni implicite, y compris les garanties de commercialisation ou */ |
---|
688 | /* d'adaptation dans un but specifique. Reportez-vous à la Licence Publique Generale GNU */ |
---|
689 | /* pour plus de détails. */ |
---|
690 | /* */ |
---|
691 | /* Vous devez avoir reçu une copie de la Licence Publique Generale GNU */ |
---|
692 | /* en meme temps que ce programme ; si ce n'est pas le cas, ecrivez a la */ |
---|
693 | /* Free Software Foundation, */ |
---|
694 | /* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, Etats-Unis. */ |
---|
695 | /******************************************************************************************/ |
---|
696 | ?> |
---|