1 | <?php |
---|
2 | |
---|
3 | /******************************************************************************************/ |
---|
4 | /* SPIP-listes est un systï¿œe de gestion de listes d'information par email pour SPIP*/ |
---|
5 | /* Copyright (C) 2004 Vincent CARONv.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ᅵᅵale GNU publiᅵ 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ᅵifique. Reportez-vous ᅵla Licence Publique Gᅵᅵale GNU*/ |
---|
14 | /* pour plus de dï¿œails.*/ |
---|
15 | /**/ |
---|
16 | /* Vous devez avoir reᅵ une copie de la Licence Publique Gᅵᅵale GNU*/ |
---|
17 | /* en mï¿œe temps que ce programme ; si ce n'est pas le cas, ï¿œrivez ï¿œla*/ |
---|
18 | /* Free Software Foundation,*/ |
---|
19 | /* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, ï¿œats-Unis. */ |
---|
20 | /******************************************************************************************/ |
---|
21 | |
---|
22 | |
---|
23 | if (!defined("_ECRIRE_INC_VERSION")) return; |
---|
24 | |
---|
25 | include_spip('inc/presentation'); |
---|
26 | include_spip('inc/acces'); |
---|
27 | include_spip('inc/affichage'); |
---|
28 | |
---|
29 | function exec_import_export(){ |
---|
30 | |
---|
31 | global $connect_statut; |
---|
32 | global $connect_toutes_rubriques; |
---|
33 | global $connect_id_auteur; |
---|
34 | global $type; |
---|
35 | |
---|
36 | $list_abo= _request('list_abo'); |
---|
37 | $etape= _request('etape'); |
---|
38 | $new= _request('new'); |
---|
39 | |
---|
40 | $nomsite=lire_meta("nom_site"); |
---|
41 | $urlsite=lire_meta("adresse_site"); |
---|
42 | |
---|
43 | // generation du fichier export ? |
---|
44 | if (isset($_POST['export_txt']) && isset($_POST['export_id']) && $connect_statut == "0minirezo" ) { |
---|
45 | $export_id =$_POST['export_id']; |
---|
46 | |
---|
47 | if (intval($export_id)>0) { |
---|
48 | |
---|
49 | $result = spip_query("SELECT a.`email` FROM `spip_auteurs` a, `spip_auteurs_listes` l |
---|
50 | WHERE l.id_liste = "._q($export_id)." |
---|
51 | AND a.id_auteur=l.id_auteur |
---|
52 | AND a.statut!='5poubelle' "); |
---|
53 | $nb_inscrits = spip_num_rows($result); |
---|
54 | |
---|
55 | $str_export= "# spip-listes\r\n"; |
---|
56 | $str_export .= "# "._T('spiplistes:membres_liste')."\r\n"; |
---|
57 | $str_export .= "# liste id: $export_id\r\n"; |
---|
58 | $str_export .= "# date: ".date("Y-m-d")."\r\n\r\n"; |
---|
59 | |
---|
60 | while($row = spip_fetch_array($result)) { |
---|
61 | $str_export .= $row['email']."\r\n"; |
---|
62 | } |
---|
63 | |
---|
64 | header("Content-type: text/plain"); |
---|
65 | header("Content-Disposition: attachment; filename=\"export_liste$export_id-".date("Y-m-d").".txt\""); |
---|
66 | echo $str_export; |
---|
67 | exit; |
---|
68 | } |
---|
69 | else{ |
---|
70 | |
---|
71 | if($export_id == "abo_sans_liste"){ |
---|
72 | $abonnes = spip_query("select a.id_auteur, count(d.id_liste) from spip_auteurs a left join spip_auteurs_listes d on a.id_auteur = d.id_auteur group by a.id_auteur having count(d.id_liste) = 0;"); |
---|
73 | |
---|
74 | $str_export= "# spip-listes\r\n"; |
---|
75 | $str_export .= "# "._T('spiplistes:membres_liste')."\r\n"; |
---|
76 | $str_export .= "# liste id: $export_id\r\n"; |
---|
77 | $str_export .= "# date: ".date("Y-m-d")."\r\n\r\n"; |
---|
78 | while($row = spip_fetch_array($abonnes)) { |
---|
79 | $abonne = $row['id_auteur']; |
---|
80 | $abo = spip_fetch_array(spip_query("SELECT `spip_listes_format` FROM `spip_auteurs_elargis` WHERE `id_auteur`=$abonne")) ; |
---|
81 | |
---|
82 | $format_abo = $abo["spip_listes_format"]; |
---|
83 | if ($format_abo=="html" || $format_abo=="texte") { |
---|
84 | $subresult = spip_query("SELECT email FROM spip_auteurs WHERE statut!='5poubelle' AND id_auteur="._q($abonne)." LIMIT 1"); |
---|
85 | while ($subrow = spip_fetch_array($subresult)) { |
---|
86 | $str_export .= $subrow['email']."\r\n"; |
---|
87 | } |
---|
88 | } |
---|
89 | } |
---|
90 | header("Content-type: text/plain"); |
---|
91 | header("Content-Disposition: attachment; filename=\"export_liste$export_id-".date("Y-m-d").".txt\""); |
---|
92 | echo $str_export; |
---|
93 | exit; |
---|
94 | } |
---|
95 | if($export_id == "desabo"){ |
---|
96 | $result = spip_query("SELECT a.`email`, f.`spip_listes_format` FROM `spip_auteurs` a, `spip_auteurs_elargis` f |
---|
97 | WHERE a.id_auteur=f.id_auteur |
---|
98 | AND a.statut!='5poubelle' |
---|
99 | AND f.`spip_listes_format`='non' "); |
---|
100 | $nb_inscrits = spip_num_rows($result); |
---|
101 | |
---|
102 | $str_export= "# spip-listes\r\n"; |
---|
103 | $str_export .= "# "._T('spiplistes:membres_liste')."\r\n"; |
---|
104 | $str_export .= "# liste id: $export_id\r\n"; |
---|
105 | $str_export .= "# date: ".date("Y-m-d")."\r\n\r\n"; |
---|
106 | while($row = spip_fetch_array($result)) { |
---|
107 | $str_export .= $row['email']."\r\n"; |
---|
108 | } |
---|
109 | header("Content-type: text/plain"); |
---|
110 | header("Content-Disposition: attachment; filename=\"export_liste$export_id-".date("Y-m-d").".txt\""); |
---|
111 | echo $str_export; |
---|
112 | exit; |
---|
113 | } |
---|
114 | } |
---|
115 | } |
---|
116 | |
---|
117 | // generation du fichier export fin |
---|
118 | |
---|
119 | // Admin SPIP-Listes |
---|
120 | echo debut_page(_T('spiplistes:spip_listes'), "redacteurs", "spiplistes"); |
---|
121 | |
---|
122 | if ($connect_statut != "0minirezo" ) { |
---|
123 | echo "<p><b>"._T('spiplistes:acces_a_la_page')."</b></p>"; |
---|
124 | echo fin_page(); |
---|
125 | exit; |
---|
126 | } |
---|
127 | |
---|
128 | |
---|
129 | if (($connect_statut == "0minirezo") OR ($connect_id_auteur == $id_auteur)) { |
---|
130 | $statut_auteur=$statut; |
---|
131 | spip_listes_onglets("messagerie", _T('spiplistes:spip_listes')); |
---|
132 | } |
---|
133 | |
---|
134 | debut_gauche(); |
---|
135 | |
---|
136 | spip_listes_raccourcis(); |
---|
137 | |
---|
138 | creer_colonne_droite(); |
---|
139 | |
---|
140 | |
---|
141 | debut_droite("messagerie"); |
---|
142 | |
---|
143 | // import // |
---|
144 | |
---|
145 | function test_login2($mail) { |
---|
146 | if (strpos($mail, "@") > 0) $login_base = substr($mail, 0, strpos($mail, "@")); |
---|
147 | else $login_base = $mail; |
---|
148 | |
---|
149 | $login_base = strtolower($login_base); |
---|
150 | $login_base = ereg_replace("[^a-zA-Z0-9]", "", $login_base); |
---|
151 | if (!$login_base) $login_base = "user"; |
---|
152 | |
---|
153 | for ($i = 0; ; $i++) { |
---|
154 | if ($i) $login = $login_base.$i; |
---|
155 | else $login = $login_base; |
---|
156 | $result = spip_query("SELECT id_auteur FROM spip_auteurs WHERE login="._q($login)); |
---|
157 | if (!spip_num_rows($result)) break; |
---|
158 | } |
---|
159 | |
---|
160 | return $login; |
---|
161 | } |
---|
162 | |
---|
163 | $format = _request('suppl_abo'); |
---|
164 | |
---|
165 | |
---|
166 | // import form |
---|
167 | echo debut_cadre_relief("redacteurs-24.gif", false, "", _T('spiplistes:importer')); |
---|
168 | switch ($etape) { |
---|
169 | case "2" : |
---|
170 | { |
---|
171 | |
---|
172 | if (!$insert_file) $insert_file = $_FILES["insert_file"]["tmp_name"] ; |
---|
173 | if ($insert_file && $insert_file != "none") { |
---|
174 | $import_file = _DIR_TMP."import_email.txt"; |
---|
175 | |
---|
176 | $ok = @copy($insert_file,$import_file); // a terme utiliser la fonction de spip: deplacer_fichier_upload (inc/getdocument) ? |
---|
177 | if (!$ok) $ok = @move_uploaded_file($insert_file,$import_file); |
---|
178 | |
---|
179 | if($ok) { |
---|
180 | // if(ereg("^php[0-9A-Za-z_.-]+$", basename($insert_file))) |
---|
181 | if(!empty($insert_file) && $insert_file != "none" && ereg("^php[0-9A-Za-z_.-]+$", basename($insert_file))) |
---|
182 | $liste = fread(fopen($import_file, "r"), filesize($import_file)); //pour NS et IE |
---|
183 | |
---|
184 | $liste=ereg_replace("\n|\r|\n\r|\r\n|\n\n","\n",$liste); |
---|
185 | $liste = explode( "\n",$liste); |
---|
186 | $new_abonne = 0; |
---|
187 | |
---|
188 | for($i=0;$i<sizeof($liste); $i++) { |
---|
189 | $tmp_log = "\n<br style='clear:both'/>"; |
---|
190 | |
---|
191 | /* Ajouter un nouvel enregistrement dans la table */ |
---|
192 | $liste[$i]=trim($liste[$i]); |
---|
193 | $ligne_nb = ($i+1); |
---|
194 | if(!empty($liste[$i])){ |
---|
195 | |
---|
196 | // Inscription |
---|
197 | // Ajouter un code pour retrouver l'abonne |
---|
198 | $mail_inscription = $liste[$i] ; |
---|
199 | |
---|
200 | if(email_valide($mail_inscription)){ |
---|
201 | $tmp_log .= "<div style='color:#090;margin-bottom:5px;width:220px;float:left;'>$mail_inscription</div> " ; |
---|
202 | |
---|
203 | $pass = creer_pass_aleatoire(8, $mail_inscription); |
---|
204 | $nom_inscription = test_login2($mail_inscription); |
---|
205 | $login = test_login2($mail_inscription); |
---|
206 | $mdpass = md5($pass); |
---|
207 | $htpass = generer_htpass($pass); |
---|
208 | $statut = "6forum" ; |
---|
209 | $cookie = creer_uniqid(); |
---|
210 | $format_abo = _q(_request('suppl_abo')); |
---|
211 | $resulta = spip_query("SELECT * FROM spip_auteurs WHERE email="._q($mail_inscription)); |
---|
212 | |
---|
213 | if ($row = spip_fetch_array($resulta)) { |
---|
214 | $nom = $row['nom'] ; |
---|
215 | $mail = $row['email'] ; |
---|
216 | $id = $row['id_auteur'] ; |
---|
217 | $tmp_log .= _T('spiplistes:adresse_deja_inclus')." "; |
---|
218 | $abo = spip_fetch_array(spip_query("SELECT `spip_listes_format` FROM `spip_auteurs_elargis` WHERE `id_auteur`='$id'")) ; |
---|
219 | |
---|
220 | if($abo){ |
---|
221 | $ok = spip_query("UPDATE `spip_auteurs_elargis` SET `spip_listes_format`=$format_abo WHERE id_auteur="._q($id)); |
---|
222 | } |
---|
223 | else{ |
---|
224 | $ok = spip_query("INSERT INTO `spip_auteurs_elargis` (`id_auteur`,`spip_listes_format`) VALUES ('$id',$format_abo)"); |
---|
225 | } |
---|
226 | if ($ok){ |
---|
227 | $tmp_log .= "("._T('spiplistes:mis_a_jour').")"; |
---|
228 | |
---|
229 | } |
---|
230 | } |
---|
231 | else { |
---|
232 | $tmp_log .= "<strong>$format</strong>"; |
---|
233 | spip_query("INSERT INTO spip_auteurs (nom, email, login, pass, statut, htpass, cookie_oubli) ". |
---|
234 | "VALUES ("._q($nom_inscription).","._q($mail_inscription).","._q($login).","._q($mdpass).","._q($statut).","._q($htpass).","._q($cookie).")"); |
---|
235 | $id = spip_insert_id(); |
---|
236 | $ok = spip_query("INSERT INTO `spip_auteurs_elargis` (`id_auteur`,`spip_listes_format`) VALUES ('$id',$format_abo)"); |
---|
237 | } |
---|
238 | |
---|
239 | // Inscription aux listes |
---|
240 | // abonnement aux listes http://www.phpfrance.com/tutorials/index.php?page=2&id=13 |
---|
241 | $resu = spip_query("SELECT * FROM spip_auteurs WHERE email="._q($mail_inscription)); |
---|
242 | |
---|
243 | // l'abonne existe deja. |
---|
244 | if ($row = spip_fetch_array($resu)) { |
---|
245 | $id_auteur = $row['id_auteur']; |
---|
246 | $statut = $row['statut']; |
---|
247 | $nom = $row['nom']; |
---|
248 | $mel = $row['email']; |
---|
249 | // on abonne l'auteur aux listes |
---|
250 | if(is_array($list_abo)){ |
---|
251 | reset($list_abo); |
---|
252 | while( list(,$val) = each($list_abo) ){ |
---|
253 | //$tmp_log .= "liste $val "; |
---|
254 | $result = spip_query("DELETE FROM spip_auteurs_listes WHERE id_auteur="._q($id_auteur)." AND id_liste="._q($val)); |
---|
255 | |
---|
256 | if(_request('suppl_abo') !='non') |
---|
257 | spip_query("INSERT INTO spip_auteurs_listes (id_auteur,id_liste) VALUES ("._q($id_auteur).","._q($val).")"); |
---|
258 | |
---|
259 | } |
---|
260 | $new_abonne++; |
---|
261 | }else{ |
---|
262 | if(_request('suppl_abo') =='non'){ |
---|
263 | $result=spip_query("DELETE FROM spip_auteurs_mod_listes WHERE id_auteur="._q($id_auteur)); |
---|
264 | $tmp_log .= "<strong>"._T('spiplistes:desabo')."</strong>"; |
---|
265 | } |
---|
266 | } |
---|
267 | } |
---|
268 | } else { |
---|
269 | $tmp_log .= _T('spiplistes:erreur_import').$ligne_nb.": "; |
---|
270 | $tmp_log .= "<span style='color:red;margin-bottom:5px'>".$liste[$i]." : </span>"; |
---|
271 | }//email valide |
---|
272 | echo $tmp_log; |
---|
273 | }//listei |
---|
274 | |
---|
275 | }// for |
---|
276 | unlink($import_file); |
---|
277 | echo "<div style='margin:10px 0'><strong>"._T('spiplistes:adresses_importees').": </strong> $new_abonne</div>\n"; |
---|
278 | }// move et file |
---|
279 | |
---|
280 | } // insert |
---|
281 | else echo "<br /><br /><center><strong>"._T('spiplistes:erreur')."</strong></center>"; |
---|
282 | echo "<a href='?exec=import_export'>["._T('spiplistes:retour_link')."]</a>"; |
---|
283 | echo "</div>"; |
---|
284 | } |
---|
285 | break ; |
---|
286 | |
---|
287 | default : |
---|
288 | if($spip_version < 1.8 ){ |
---|
289 | echo "<h3>"._T('spiplistes:importer')."</h3>" ; |
---|
290 | } |
---|
291 | |
---|
292 | echo _T('spiplistes:importer_fichier_txt')."<div>"; |
---|
293 | |
---|
294 | $list = spip_query ("SELECT * FROM spip_listes WHERE statut = 'liste' OR statut = 'inact' "); |
---|
295 | $nb_listes = spip_num_rows($list); |
---|
296 | if($nb_listes == 0){ |
---|
297 | echo "<fieldset> "; |
---|
298 | echo "<legend>"._T('spiplistes:abonnement_newsletter')."</legend>"; |
---|
299 | echo _T('spiplistes:importer_preciser'); |
---|
300 | echo "<form action='./?exec=import_export&etape=2' method='post'enctype='multipart/form-data' name='importform'> "; |
---|
301 | echo'<div style="text-align: left;">'; |
---|
302 | echo'<strong>Format :</strong><br>'; |
---|
303 | echo'<input name="suppl_abo" value="html" checked="checked" type="radio">'._T('spiplistes:html').'<br>'; |
---|
304 | echo'<input name="suppl_abo" value="texte" type="radio">'._T('spiplistes:texte').'<br>'; |
---|
305 | echo'<input name="suppl_abo" value="non" type="radio">'._T('spiplistes:desabonnement').'<br>'; |
---|
306 | echo'</div>'; |
---|
307 | echo"<p>"; |
---|
308 | echo"<input type='submit' name='Valider' value='"._T('spiplistes:modifier')."'>"; |
---|
309 | echo"<input type='hidden' name='confirm' value='oui' >"; |
---|
310 | echo"</p>"; |
---|
311 | } else { |
---|
312 | echo "<fieldset> "; |
---|
313 | echo "<legend>"._T('spiplistes:abonnement_newsletter')."</legend>"; |
---|
314 | echo _T('spiplistes:importer_preciser'); |
---|
315 | echo "<div style='text-align:left'>" ; |
---|
316 | echo "<form action='$PHP_SELF?exec=import_export&etape=2' method='post' enctype='multipart/form-data'name='importform'> "; |
---|
317 | while($row = spip_fetch_array($list)) { |
---|
318 | $id_liste = $row['id_liste'] ; |
---|
319 | $titre = $row['titre'] ; |
---|
320 | if ($nb_listes = 1) $ischecked = ""; |
---|
321 | else $ischecked = "checked='checked'"; |
---|
322 | echo "<input type=\"checkbox\" name=\"list_abo[]\" $ischecked value=\"".$id_liste."\" />\n"; |
---|
323 | echo "<a href='?exec=import_export&liste=$id_liste' title='"._T('spiplistes:infos_liste')."'>$titre</a><br />" ; |
---|
324 | } |
---|
325 | echo "<br />"; |
---|
326 | echo'<strong>Format :</strong><br>'; |
---|
327 | echo'<input name="suppl_abo" value="html" checked="checked" type="radio">'._T('spiplistes:html').'<br>'; |
---|
328 | echo'<input name="suppl_abo" value="texte" type="radio">'._T('spiplistes:texte').'<br>'; |
---|
329 | echo'<input name="suppl_abo" value="non" type="radio">'._T('spiplistes:desabonnement').'<br>'; |
---|
330 | echo'</div>'; |
---|
331 | echo"<p>"; |
---|
332 | echo"<input type='submit' name='Valider' value='"._T('spiplistes:modifier')."'>"; |
---|
333 | echo"<input type='hidden' name='confirm' value='oui' >"; |
---|
334 | echo"</p>"; |
---|
335 | echo "</div>"; |
---|
336 | |
---|
337 | } // fin du test nb listes |
---|
338 | |
---|
339 | echo "<!-- <script language=\"javascript\">function Soumettre(){ |
---|
340 | document.importform.fich.value=document.importform.insert_file.value; |
---|
341 | document.importform.submit(); |
---|
342 | } |
---|
343 | </script> |
---|
344 | --> "; |
---|
345 | |
---|
346 | echo "<h5>"._T('spiplistes:importer_fichier')."</h5>"; |
---|
347 | echo "<input type=\"file\" name=\"insert_file\" /><br /><br />"; |
---|
348 | echo "<input type=\"hidden\" name=\"mode\" value=\"inout\" />"; |
---|
349 | echo "<input type=\"hidden\" name=\"import\" value=\"oui\" />"; |
---|
350 | echo "</div>" ; |
---|
351 | echo "<input type='submit' name='Valider' value='"._T('bouton_valider')."' class='fondo' onclick='Soumettre()' />"; |
---|
352 | echo "</form>" ; |
---|
353 | |
---|
354 | } // switch |
---|
355 | |
---|
356 | /**************/ |
---|
357 | |
---|
358 | echo "</fieldset></div>"; |
---|
359 | |
---|
360 | |
---|
361 | // import form end |
---|
362 | |
---|
363 | // import end // |
---|
364 | |
---|
365 | // export //(added by erational.org) |
---|
366 | // formulaire d'export |
---|
367 | |
---|
368 | $list = spip_query ("SELECT * FROM spip_listes WHERE statut = 'liste' OR statut = 'inact' "); |
---|
369 | $nb_listes = spip_num_rows($list); |
---|
370 | if ($nb_listes > 0) { |
---|
371 | echo debut_cadre_relief("redacteurs-24.gif", false, "", _T('spiplistes:exporter')); |
---|
372 | echo "<form action='$PHP_SELF?exec=import_export' method='post'>\n"; |
---|
373 | while($row = spip_fetch_array($list)) { |
---|
374 | $id_liste = $row['id_liste'] ; |
---|
375 | $titre = $row['titre']; |
---|
376 | if ($nb_listes==1) $checked = " checked='checked'"; |
---|
377 | else $checked = ""; |
---|
378 | echo "<input type=\"radio\" name=\"export_id\" value=\"".$id_liste."\"$checked />$titre <small>".spip_listes_nb_abonnes_liste($id_liste)."</small><br />\n"; |
---|
379 | } |
---|
380 | echo "<input type=\"radio\" name=\"export_id\"value=\"abo_sans_liste\"$checked /><strong>"._T('spiplistes:abonne_aucune_liste')."</strong> <br />\n"; |
---|
381 | echo "<input type=\"radio\" name=\"export_id\"value=\"desabo\"$checked /><strong>"._T('spiplistes:desabonnes')."</strong><br />\n"; |
---|
382 | echo "<input type='submit' name='export_txt' class='fondo' value='"._T('bouton_valider')."' />\n"; |
---|
383 | echo "</form>\n"; |
---|
384 | echo fin_cadre_relief(); |
---|
385 | } |
---|
386 | echo fin_cadre_relief(); |
---|
387 | // export end // |
---|
388 | |
---|
389 | // MODE INOUT FIN -------------------------------------------------------------- |
---|
390 | |
---|
391 | echo "<p style='font-family: Arial, Verdana,sans-serif;font-size:10px;font-weight:bold'>".$GLOBALS['spiplistes_version']."</p>" ; |
---|
392 | |
---|
393 | echo fin_gauche(), fin_page(); |
---|
394 | |
---|
395 | } |
---|
396 | |
---|
397 | /******************************************************************************************/ |
---|
398 | /* SPIP-listes est un systᅵe de gestion de listes d'abonnᅵ et d'envoi d'information */ |
---|
399 | /* par emailpour SPIP.*/ |
---|
400 | /* Copyright (C) 2004 Vincent CARONv.caron<at>laposte.net , http://bloog.net*/ |
---|
401 | /**/ |
---|
402 | /* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */ |
---|
403 | /* de la Licence Publique Gᅵᅵale GNU publiᅵ par la Free Software Foundation*/ |
---|
404 | /* (version 2). */ |
---|
405 | /**/ |
---|
406 | /* Ce programme est distribuï¿œcar potentiellement utile, mais SANS AUCUNE GARANTIE, */ |
---|
407 | /* ni explicite ni implicite, y compris les garanties de commercialisation ou */ |
---|
408 | /* d'adaptation dans un but spᅵifique. Reportez-vous ᅵla Licence Publique Gᅵᅵale GNU*/ |
---|
409 | /* pour plus de dï¿œails.*/ |
---|
410 | /**/ |
---|
411 | /* Vous devez avoir reᅵ une copie de la Licence Publique Gᅵᅵale GNU*/ |
---|
412 | /* en mï¿œe temps que ce programme ; si ce n'est pas le cas, ï¿œrivez ï¿œla*/ |
---|
413 | /* Free Software Foundation,*/ |
---|
414 | /* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, ï¿œats-Unis. */ |
---|
415 | /******************************************************************************************/ |
---|
416 | ?> |
---|