r37728 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r37727‎ | r37728 | r37729 >
Date:22:13, 15 July 2008
Author:siebrand
Status:old
Tags:
Comment:
Recommit r37619, 37620 in <s>2</s> 3 goes, without phpMailer update.
* rename files
Modified paths:
  • /trunk/extensions/EmailPage/EmailArticle.alias.php (deleted) (history)
  • /trunk/extensions/EmailPage/EmailArticle.i18n.php (deleted) (history)
  • /trunk/extensions/EmailPage/EmailArticle.php (deleted) (history)
  • /trunk/extensions/EmailPage/EmailArticle_body.php (deleted) (history)
  • /trunk/extensions/EmailPage/EmailPage.alias.php (added) (history)
  • /trunk/extensions/EmailPage/EmailPage.alias.php (added) (history)
  • /trunk/extensions/EmailPage/EmailPage.i18n.php (added) (history)
  • /trunk/extensions/EmailPage/EmailPage.i18n.php (added) (history)
  • /trunk/extensions/EmailPage/EmailPage.php (added) (history)
  • /trunk/extensions/EmailPage/EmailPage.php (added) (history)
  • /trunk/extensions/EmailPage/EmailPage_body.php (added) (history)
  • /trunk/extensions/EmailPage/EmailPage_body.php (added) (history)

Diff [purge]

Index: trunk/extensions/EmailPage/EmailArticle.i18n.php
@@ -1,400 +0,0 @@
2 -<?php
3 -/**
4 - * Internationalisation file for extension EmailArticle.
5 - *
6 - * @addtogroup Extensions
7 -*/
8 -
9 -$messages = array();
10 -
11 -/** English
12 - * @author Nad
13 - */
14 -$messages['en'] = array(
15 - 'emailarticle' => 'E-mail page',
16 - 'ea-desc' => 'Send rendered HTML page to an e-mail address or list of addresses using [http://phpmailer.sourceforge.net phpmailer].',
17 - 'ea-heading' => "=== E-mailing the page [[$1]] ===",
18 - 'ea-fromgroup' => 'From group:',
19 - 'ea-articlesend' => 'Page "$1" sent from $2',
20 - 'ea-noarticle' => "Please specify a page to send, for example [[Special:EmailArticle/Main Page]].",
21 - 'ea-norecipients' => "No valid e-mail addresses found!",
22 - 'ea-listrecipients' => "=== {{PLURAL:$1|Recipient|$1 recipients}} ===",
23 - 'ea-error' => "'''Error sending [[$1]]:''' ''$2''",
24 - 'ea-denied' => 'Permission denied',
25 - 'ea-sent' => "Page [[$1]] sent successfully to '''$2''' {{PLURAL:$2|recipient|recipients}} by [[User:$3|$3]].",
26 - 'ea-selectrecipients' => 'Select recipients',
27 - 'ea-compose' => 'Compose content',
28 - 'ea-selectlist' => "Additional recipients as page titles or e-mail addresses
29 -*''separate items with , ; * \\n
30 -*''list can contain templates and parser-functions''",
31 - 'ea-show' => 'Show recipients',
32 - 'ea-send' => 'Send!',
33 - 'ea-subject' => 'Enter a subject line for the e-mail',
34 - 'ea-header' => 'Prepend content with optional message (wikitext)',
35 - 'ea-selectcss' => 'Select a CSS stylesheet',
36 -);
37 -
38 -/** Arabic (العربية)
39 - * @author OsamaK
40 - * @author Meno25
41 - */
42 -$messages['ar'] = array(
43 - 'emailarticle' => 'مراسلة الصفحة',
44 - 'ea-heading' => '=== مراسلة صفحة [[$1]] ===',
45 - 'ea-fromgroup' => 'من مجموعة:',
46 - 'ea-articlesend' => 'الصفحة "$1" أُرسلت من $2',
47 - 'ea-norecipients' => 'لا عناوين بريد إلكتروني صحيحة وُجدت!',
48 - 'ea-error' => "'''خطأ في إرسال [[$1]]:''' ''$2''",
49 - 'ea-denied' => 'السماح مرفوض',
50 - 'ea-selectrecipients' => 'اختر المتلقين',
51 - 'ea-compose' => 'كتابة المحتوى',
52 - 'ea-send' => 'أرسل!',
53 - 'ea-subject' => 'أدخل سطر عنوان للبريد الإلكتروني',
54 -);
55 -
56 -/** Bulgarian (Български)
57 - * @author DCLXVI
58 - */
59 -$messages['bg'] = array(
60 - 'ea-fromgroup' => 'От група:',
61 - 'ea-noarticle' => 'Необходимо е да се посочи страница, която да бъде изпратена, напр. [[Special:EmailArticle/Начална страница]].',
62 - 'ea-norecipients' => 'Не бяха намерени валидни адреси за е-поща!',
63 - 'ea-listrecipients' => '=== Списък на $1 {{PLURAL:$1|получател|получателя}} ===',
64 - 'ea-error' => "'''Грешка при изпращане на [[$1]]:''' ''$2''",
65 - 'ea-selectrecipients' => 'Избиране на получатели',
66 - 'ea-show' => 'Показване на получателите',
67 - 'ea-send' => 'Изпращане!',
68 - 'ea-selectcss' => 'Избиране на CSS стил',
69 -);
70 -
71 -/** Esperanto (Esperanto)
72 - * @author Yekrats
73 - */
74 -$messages['eo'] = array(
75 - 'emailarticle' => 'Retpoŝtigi paĝon',
76 - 'ea-heading' => '=== Retpoŝtigante paĝon [[$1]] ===',
77 - 'ea-fromgroup' => 'De grupo:',
78 - 'ea-articlesend' => 'Paĝo "$1" sendita de $2',
79 - 'ea-noarticle' => 'Bonvolu enigi paĝon por retsendi, ekz-e [[Special:EmailArticle/Main Page]].',
80 - 'ea-norecipients' => 'Neniaj validaj retadresoj trovitaj!',
81 - 'ea-listrecipients' => '=== Listo de $1 {{PLURAL:$1|ricevonto|ricevontoj}} ===',
82 - 'ea-error' => "'''Eraro sendante [[$1]]:''' ''$2''",
83 - 'ea-denied' => 'Malpermesite',
84 - 'ea-sent' => "Paĝo [[$1]] sendita sukcese al '''$2''' {{PLURAL:$2|ricevonto|ricevontoj}} de [[User:$3|$3]].",
85 - 'ea-selectrecipients' => 'Selektu ricevontojn',
86 - 'ea-compose' => 'Skribu enhavon',
87 - 'ea-send' => 'Sendi!',
88 - 'ea-selectcss' => 'Selekti CSS-tiparŝablono',
89 -);
90 -
91 -/** French (Français)
92 - * @author Grondin
93 - */
94 -$messages['fr'] = array(
95 - 'emailarticle' => 'Envoyer l’article par courriel',
96 - 'ea-desc' => 'Envoie le rendu d’une page HTML à une adresse électronique où à une liste d’adresses en utilisant [http://phpmailer.sourceforge.net phpmailer]',
97 - 'ea-heading' => '=== Envoi de la page [[$1]] par courrier électronique ===',
98 - 'ea-fromgroup' => 'Depuis le groupe :',
99 - 'ea-articlesend' => 'Page « $1 » envoyée depuis $2',
100 - 'ea-noarticle' => 'Veuillez spécifier une page à envoyer, par exemple [[Special:EmailArticle/Accueil]]',
101 - 'ea-norecipients' => 'Aucune adresse courriel de trouvée !',
102 - 'ea-listrecipients' => '=== Liste de $1 {{PLURAL:$1|destinataire|destinataires}} ===',
103 - 'ea-error' => "'''Erreur de l’envoi de [[$1]] :''' ''$2''",
104 - 'ea-denied' => 'Permission refusée',
105 - 'ea-sent' => "L'article [[$1]] a été envoyé avec succès à '''$2''' {{PLURAL:$2|destinataire|destinataires}} par [[User:$3|$3]].",
106 - 'ea-selectrecipients' => 'Sélectionner les destinataires',
107 - 'ea-compose' => 'Composer le contenu',
108 - 'ea-selectlist' => "Destinataires supplémentaires comme les titres d'articles ou les adresses courriel
109 -* ''séparer les articles avec , : * \\n''
110 -* ''la liste peut contenir des modèles et des fonctions parseurs''",
111 - 'ea-show' => 'Visionner les destinataires',
112 - 'ea-send' => 'Envoyer !',
113 - 'ea-subject' => 'Entrer une ligne « objet » pour le courriel',
114 - 'ea-header' => 'Ajouter le contenu au début avec un message facultatif (texte wiki)',
115 - 'ea-selectcss' => 'Sélectionner une feuille de style CSS',
116 -);
117 -
118 -/** Galician (Galego)
119 - * @author Toliño
120 - */
121 -$messages['gl'] = array(
122 - 'emailarticle' => 'Enviar a páxina por correo electrónico',
123 - 'ea-desc' => 'Enviar páxinas HTML renderizadas a un enderezo de correo electrónico (ou a varios correos) usando [http://phpmailer.sourceforge.net phpmailer].',
124 - 'ea-heading' => '=== Enviando a páxina "[[$1]]" ===',
125 - 'ea-fromgroup' => 'Desde o grupo:',
126 - 'ea-articlesend' => 'O artigo "$1" foi enviado desde $2',
127 - 'ea-noarticle' => 'Por favor, especifique a páxina que quere enviar, por exemplo: [[Special:EmailArticle/Main Page]].',
128 - 'ea-norecipients' => 'Non foi atopado ningún enderezo de correo electrónico válido!',
129 - 'ea-listrecipients' => '=== {{PLURAL:$1|Nome do destinatario|Listaxe dos $1 destinatarios}} ===',
130 - 'ea-error' => "'''Erro no envío de \"[[\$1]]\":''' ''\$2''",
131 - 'ea-denied' => 'Permiso denegado',
132 - 'ea-sent' => 'A páxina "[[$1]]" foi enviada con éxito a \'\'\'$2\'\'\' {{PLURAL:$2|destinatario|destinatarios}} por [[User:$3|$3]].',
133 - 'ea-selectrecipients' => 'Seleccionar os destinatarios',
134 - 'ea-compose' => 'Compoñer o contido',
135 - 'ea-selectlist' => "Destinatarios adicionais como títulos de páxinas ou correos electrónicos
136 -*''separar os ítems con , ; * \\n
137 -*''a listaxe`pode conter modelos e funcións analíticas''",
138 - 'ea-show' => 'Amosar os destinatarios',
139 - 'ea-send' => 'Enviar!',
140 - 'ea-subject' => 'Introducir un asunto ao correo electrónico',
141 - 'ea-header' => 'Engadir o contido cunha mensaxe opcional (texto wiki)',
142 - 'ea-selectcss' => 'Seleccionar unha folla de estilo CSS',
143 -);
144 -
145 -/** Khmer (ភាសាខ្មែរ)
146 - * @author Lovekhmer
147 - */
148 -$messages['km'] = array(
149 - 'emailarticle' => 'ទំព័រអ៊ីមែល',
150 - 'ea-fromgroup' => 'ពីក្រុម:',
151 - 'ea-articlesend' => 'ទំព័រ"$1"ត្រូវបានបញ្ជូនពី$2',
152 - 'ea-send' => 'ផ្ញើ!',
153 -);
154 -
155 -/** Luxembourgish (Lëtzebuergesch)
156 - * @author Robby
157 - */
158 -$messages['lb'] = array(
159 - 'emailarticle' => 'Säit per Mail schécken',
160 - 'ea-heading' => '=== Säit [[$1]] peer E-Mail verschécken ===',
161 - 'ea-fromgroup' => 'Vun der Grupp:',
162 - 'ea-articlesend' => 'D\'Säit "$1" gouf verschéckt vum $2',
163 - 'ea-norecipients' => 'Keng gëlteg E-Mailadress fonnt',
164 - 'ea-denied' => 'Rechter refuséiert',
165 - 'ea-selectrecipients' => 'Adressaten erauswielen',
166 - 'ea-show' => 'Adressate weisen',
167 - 'ea-send' => 'Schécken!',
168 - 'ea-subject' => "Gitt w.e.g. e Sujet fir d'E-Mail an",
169 - 'ea-selectcss' => "Een ''CSS Stylesheet'' auswielen",
170 -);
171 -
172 -/** Malayalam (മലയാളം)
173 - * @author Shijualex
174 - */
175 -$messages['ml'] = array(
176 - 'emailarticle' => 'ഇമെയില്‍ താള്‍',
177 - 'ea-heading' => '=== [[$1]] എന്ന താള്‍ ഇമെയില്‍ ചെയ്യുന്നു ===',
178 - 'ea-fromgroup' => 'ഗ്രൂപ്പ്:',
179 - 'ea-articlesend' => '$2 സം‌രംഭത്തില്‍ നിന്നു "$1" എന്ന താള്‍ അയച്ചു',
180 - 'ea-noarticle' => 'അയക്കുവാന്‍ വേണ്ടി ഒരു താള്‍ തിരഞ്ഞെടുക്കുക. ഉദാ: [[Special:EmailArticle/Main Page]]',
181 - 'ea-norecipients' => 'സാധുവായ ഇമെയില്‍ വിലാസങ്ങള്‍ കണ്ടില്ല!',
182 - 'ea-listrecipients' => '=== $1 {{PLURAL:$1|സ്വീകര്‍ത്താവിന്റെ|സ്വീകര്‍ത്താക്കളുടെ}} പട്ടിക ===',
183 - 'ea-error' => "'''[[$1]] അയക്കുന്നതില്‍ പിഴവ്:''' ''$2''",
184 - 'ea-denied' => 'അനുവാദം നിഷേധിച്ചിരിക്കുന്നു',
185 - 'ea-sent' => "[[User:$3|$3]] എന്ന ഉപയോക്താവ് [[$1]] എന്ന താള്‍ വിജയകരമായി '''$2''' {{PLURAL:$2|സ്വീകര്‍ത്താവിനു|സ്വീകര്‍ത്താക്കള്‍ക്ക്}} അയച്ചിരിക്കുന്നു.",
186 - 'ea-selectrecipients' => 'സ്വീകര്‍ത്താക്കളെ‍ തിരഞ്ഞെടുക്കുക',
187 - 'ea-compose' => 'ഉള്ളടക്കം ചേര്‍ക്കുക',
188 - 'ea-show' => 'സ്വീകര്‍ത്താക്കളെ പ്രദര്‍ശിപ്പിക്കുക',
189 - 'ea-send' => 'അയക്കൂ!',
190 - 'ea-subject' => 'ഇമെയിലിനു ഒരു വിഷയം/ശീര്‍ഷകം ചേര്‍ക്കുക',
191 -);
192 -
193 -/** Marathi (मराठी)
194 - * @author Kaustubh
195 - */
196 -$messages['mr'] = array(
197 - 'emailarticle' => 'पान इ-मेल करा',
198 - 'ea-desc' => ' [http://phpmailer.sourceforge.net पीएचपी मेलर] चा वापर करून एखादे पान एखाद्या इ-मेल पत्त्यावर किंवा इ-मेल पत्त्यांच्या यादीवर पाठवा.',
199 - 'ea-heading' => '=== [[$1]] पान इ-मेल करीत आहे ===',
200 - 'ea-fromgroup' => 'गटाकडून:',
201 - 'ea-articlesend' => '$2 ने "$1" पान पाठविले',
202 - 'ea-noarticle' => 'कृपया पाठविण्यासाठी एक पान निवडा, उदाहरणासाठी [[Special:EmailArticle/Main Page]].',
203 - 'ea-norecipients' => 'योग्य इ-मेल पत्ता सापडला नाही!',
204 - 'ea-listrecipients' => '=== $1 {{PLURAL:$1|सदस्याची|सदस्यांची}}यादी ===',
205 - 'ea-error' => "'''पाठविण्यामध्ये त्रुटी [[$1]]:''' ''$2''",
206 - 'ea-denied' => 'परवानगी नाकारली',
207 - 'ea-sent' => "[[User:$3|$3]] ने [[$1]] पान '''$2''' {{PLURAL:$2|सदस्याला|सदस्यांना}} पाठविले.",
208 - 'ea-selectrecipients' => 'सदस्य निवडा',
209 - 'ea-compose' => 'मजकूर लिहा',
210 - 'ea-selectlist' => "जास्तीचे सदस्य लेख शीर्षक किंवा इ-मेल पत्ता
211 -*'', ; चा वापर करून वेगळे करा* \\n
212 -*''यादी मध्ये साचे तसेच पार्सर क्रिया वापरता येतील''",
213 - 'ea-show' => 'निवडलेले सदस्य दाखवा',
214 - 'ea-send' => 'पाठवा!',
215 - 'ea-subject' => 'इ-मेल चा विषय लिहा',
216 - 'ea-header' => 'मजकूरा आधी वैकल्पिक संदेश लिहा (विकिसंज्ञा)',
217 - 'ea-selectcss' => 'सीएसएस स्टाइलशीट पाठवा',
218 -);
219 -
220 -/** Low German (Plattdüütsch)
221 - * @author Slomox
222 - */
223 -$messages['nds'] = array(
224 - 'ea-fromgroup' => 'Vun Grupp:',
225 -);
226 -
227 -/** Dutch (Nederlands)
228 - * @author Siebrand
229 - */
230 -$messages['nl'] = array(
231 - 'emailarticle' => 'Pagina e-mailen',
232 - 'ea-desc' => 'Stuur een gerenderde pagina naar een e-mailadres of een lijst van adressen met behulp van [http://phpmailer.sourceforge.net phpmailer].',
233 - 'ea-heading' => '=== Pagina [[$1]] e-mailen ===',
234 - 'ea-fromgroup' => 'Van groep:',
235 - 'ea-articlesend' => 'Pagina "$1" is vanuit $2 verstuurd',
236 - 'ea-noarticle' => 'Geef een pagina op om te versturen, bijvoorbeeld [[Special:EmailArticle/Hoofdpagina]].',
237 - 'ea-norecipients' => 'Er is geen geldig e-mailadres opgegeven!',
238 - 'ea-listrecipients' => '=== Lijst met $1 {{PLURAL:$1|ontvanger|ontvangers}} ===',
239 - 'ea-error' => "'''Fout bij het versturen van [[$1]]:''' ''$2''",
240 - 'ea-denied' => 'U hebt geen rechten om deze handeling uit te voeren',
241 - 'ea-sent' => "Pagina [[$1]] is verstuurd naar '''$2''' {{PLURAL:$2|ontvanger|ontvangers}} door [[User:$3|$3]].",
242 - 'ea-selectrecipients' => 'Ontvangers selecteren',
243 - 'ea-compose' => 'Inhoud samenstellen',
244 - 'ea-selectlist' => 'Meer ontvangers als paginanamen of e-mailadressen
245 -*\'\'u kunt adressen scheiden met ",", ";", "*", of "\\n"
246 -*\'\'de lijst mag sjablonen en parserfuncties bevatten\'\'',
247 - 'ea-show' => 'Ontvangers weergeven',
248 - 'ea-send' => 'Versturen',
249 - 'ea-subject' => 'Voer een onderwerp in voor de e-mail',
250 - 'ea-header' => 'Laat de pagina-inhoud vooraf gaan door een bericht (in wikitekst)',
251 - 'ea-selectcss' => 'Selecteer een CSS',
252 -);
253 -
254 -/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
255 - * @author Jon Harald Søby
256 - */
257 -$messages['no'] = array(
258 - 'emailarticle' => 'Send side som e-post',
259 - 'ea-desc' => 'Send HTML-side til en eller flere e-postadresser ved hjelp av [http://phpmailer.sourceforge.net/ phpmailer].',
260 - 'ea-heading' => '=== Send siden [[$1]] som e-post ===',
261 - 'ea-fromgroup' => 'Fra gruppe:',
262 - 'ea-articlesend' => 'Siden «$1» sendt fra $2',
263 - 'ea-noarticle' => 'Oppgi en side du vil sende, for eksempel [[Special:EmailArticle/{{MediaWiki:Mainpage}}]].',
264 - 'ea-norecipients' => 'Ingen gyldige e-postadresser funnet.',
265 - 'ea-listrecipients' => '=== Liste over $1 {{PLURAL:$1|mottaker|mottakere}} ===',
266 - 'ea-error' => "'''Feil under sending av [[$1]]:''' ''$2''",
267 - 'ea-denied' => 'Ingen adgang',
268 - 'ea-sent' => "Siden [[$1]] ble sendt til '''$2''' {{PLURAL:$2|mottaker|mottakere}} av [[User:$3|$3]].",
269 - 'ea-selectrecipients' => 'Velg mottakere',
270 - 'ea-compose' => 'Skriv inn innhold',
271 - 'ea-selectlist' => "Ytterligere mottakere som sidetitler eller e-postadresser
272 -* ''skill elementer med , ; * \\n
273 -* ''listen kan inneholde maler og parserfunksjoner''",
274 - 'ea-show' => 'Vis mottakere',
275 - 'ea-send' => 'Send',
276 - 'ea-subject' => 'Skriv inn et emne for e-posten',
277 - 'ea-header' => 'Fyll innholdet med en valgfri beskjed (wikitekst)',
278 - 'ea-selectcss' => 'Angi en CSS-stilmal',
279 -);
280 -
281 -/** Occitan (Occitan)
282 - * @author Cedric31
283 - */
284 -$messages['oc'] = array(
285 - 'emailarticle' => 'Mandar l’article per corrièr electronic',
286 - 'ea-desc' => 'Manda lo rendut d’una pagina HTML a una adreça electronica o a una tièra d’adreças en utilizant [http://phpmailer.sourceforge.net phpmailer]',
287 - 'ea-heading' => '=== Mandadís de la pagina [[$1]] per corrièr electronic ===',
288 - 'ea-fromgroup' => 'Dempuèi lo grop :',
289 - 'ea-articlesend' => 'Pagina « $1 » mandada dempuèi $2',
290 - 'ea-noarticle' => 'Especificatz una pagina de mandar, per exemple [[Special:EmailArticle/Acuèlh]]',
291 - 'ea-norecipients' => "Cap d'adreça de corrièr electronic pas trobada !",
292 - 'ea-listrecipients' => '=== Tièra de $1 {{PLURAL:$1|destinatari|destinataris}} ===',
293 - 'ea-error' => "'''Error del mandadís de [[$1]] :''' ''$2''",
294 - 'ea-denied' => 'Permission refusada',
295 - 'ea-sent' => "L'article [[$1]] es estat mandat amb succès a '''$2''' {{PLURAL:$2|destinatari|destinataris}} per [[User:$3|$3]].",
296 - 'ea-selectrecipients' => 'Seleccionar los destinataris',
297 - 'ea-compose' => 'Compausar lo contengut',
298 - 'ea-selectlist' => "Destinataris suplementaris coma los títols d'articles o las adreças de corrièr electronic
299 -* ''separar los articles amb , : * \\n''
300 -* ''la tièra pòt conténer de modèls e de foncions parsaires''",
301 - 'ea-show' => 'Visionar los destinataris',
302 - 'ea-send' => 'Mandar !',
303 - 'ea-subject' => 'Entrar una linha « objècte » pel corrièr electronic',
304 - 'ea-header' => 'Apondre lo contengut al començament amb un messatge facultatiu (tèxt wiki)',
305 - 'ea-selectcss' => "Seleccionar un fuèlh d'estil CSS",
306 -);
307 -
308 -/** Slovak (Slovenčina)
309 - * @author Helix84
310 - */
311 -$messages['sk'] = array(
312 - 'emailarticle' => 'Poslať stránku emailom',
313 - 'ea-desc' => 'Poslať stránku vo formáte HTML na emailovú adresu alebo zoznam adries pomocou [http://phpmailer.sourceforge.net phpmailer].',
314 - 'ea-heading' => '=== Poslanie stránky [[$1]] emailom ===',
315 - 'ea-fromgroup' => 'Zo skupiny:',
316 - 'ea-articlesend' => 'Článok „$1” poslaný z $2',
317 - 'ea-noarticle' => 'Prosím, uveďte stránku, ktorú chcete poslať, napr. [[Special:EmailArticle/Hlavná stránka]].',
318 - 'ea-norecipients' => 'Nebola nájdená platná emailová adresa!',
319 - 'ea-listrecipients' => '=== Zoznam $1 {{PLURAL:$1|príjemcu|príjemcov}} ===',
320 - 'ea-error' => "'''Chyba pri odosielaní [[$1]]:''' ''$2''",
321 - 'ea-denied' => 'Nemáte potrebné oprávnenie',
322 - 'ea-sent' => "[[User:$3|$3]] úspešne poslal stránku [[$1]] '''$2''' {{PLURAL:$2|používateľovi|používateľom}}.",
323 - 'ea-selectrecipients' => 'Vybrať príjemcov',
324 - 'ea-compose' => 'Napísať obsah správy',
325 - 'ea-selectlist' => "Ďalší príjemci vo forme názvov stránok alebo emailových adries
326 -*''položky oddeľujte pomocu , ; * \\n
327 -*''zoznam môže obsahovať šablóny a funkcie syntaktického analyzátora''",
328 - 'ea-show' => 'Zobraziť príjemcov',
329 - 'ea-send' => 'Poslať!',
330 - 'ea-subject' => 'Zadajte predmet emailu',
331 - 'ea-header' => 'Pred obsah pridať (nepovinne) správu (wikitext)',
332 - 'ea-selectcss' => 'Vyberte CSS štýl',
333 -);
334 -
335 -/** Sundanese (Basa Sunda)
336 - * @author Irwangatot
337 - */
338 -$messages['su'] = array(
339 - 'ea-send' => 'Kintun!',
340 -);
341 -
342 -/** Swedish (Svenska)
343 - * @author M.M.S.
344 - */
345 -$messages['sv'] = array(
346 - 'emailarticle' => 'E-posta sida',
347 - 'ea-desc' => 'Skicka en renderad HTML-sida till en e-postadress eller en lista över adresser som använder [http://phpmailer.sourceforge.net phpmailer].',
348 - 'ea-heading' => '=== E-posta sidan [[$1]] ===',
349 - 'ea-fromgroup' => 'Från grupp:',
350 - 'ea-articlesend' => 'Artikeln "$1" skickades från $2',
351 - 'ea-noarticle' => 'Var god ange en sida att skicka, för exempel [[Special:EmailArticle/Main Page]].',
352 - 'ea-norecipients' => 'Inga giltiga e-postadresser hittades!',
353 - 'ea-listrecipients' => '=== Lista över $1 {{PLURAL:$1|mottagare|mottagare}} ===',
354 - 'ea-error' => "'''Fel under sändande av [[$1]]:''' ''$2''",
355 - 'ea-denied' => 'Åtkomst nekas',
356 - 'ea-sent' => "Sidan [[$1]] har skickats till '''$2''' {{PLURAL:$2|mottagare|mottagare}} av [[User:$3|$3]].",
357 - 'ea-selectrecipients' => 'Ange mottagare',
358 - 'ea-compose' => 'Komponera innehåll',
359 - 'ea-selectlist' => "Ytterligare mottagare som sidtitlar eller e-postadresser
360 -*''separera element med, ; * \\n
361 -*''listor kan innehålla mallar och parser-funktioner''",
362 - 'ea-show' => 'Visa mottagare',
363 - 'ea-send' => 'Skicka!',
364 - 'ea-subject' => 'Ange ett ämne för e-brevet',
365 - 'ea-header' => 'Fyll innehållet med ett valfritt meddelande (wikitext)',
366 - 'ea-selectcss' => 'Ange en CSS-stilmall',
367 -);
368 -
369 -/** Telugu (తెలుగు)
370 - * @author వైజాసత్య
371 - * @author Veeven
372 - */
373 -$messages['te'] = array(
374 - 'ea-denied' => 'అనుమతిని నిరాకరించాం',
375 - 'ea-send' => 'పంపించు!',
376 -);
377 -
378 -/** Vietnamese (Tiếng Việt)
379 - * @author Vinhtantran
380 - */
381 -$messages['vi'] = array(
382 - 'emailarticle' => 'Trang thư điện tử',
383 - 'ea-desc' => 'Gửi trang HTML giản lược đến một địa chỉ hoặc danh sách các địa chỉ thư điện tử dùng [http://phpmailer.sourceforge.net phpmailer].',
384 - 'ea-heading' => '=== Gửi trang [[$1]] ===',
385 - 'ea-noarticle' => 'Xin hãy xác định trang muốn gửi, ví dụ [[Special:EmailArticle/Trang_Chính]].',
386 - 'ea-norecipients' => 'Không tìm thấy địa chỉ thư điện tử hợp lệ!',
387 - 'ea-listrecipients' => '=== Danh sách $1 {{PLURAL:$1|người nhận|người nhận}} ===',
388 - 'ea-error' => "'''Lỗi khi gửi [[$1]]:''' ''$2''",
389 - 'ea-sent' => "Trang [[$1]] đã được [[User:$3|$3]] gửi thành công đến '''$2''' {{PLURAL:$2|người nhận|người nhận}}.",
390 - 'ea-selectrecipients' => 'Chọn người nhận',
391 - 'ea-compose' => 'Soạn nội dung',
392 - 'ea-selectlist' => "Những người nhận khác theo tựa đề trang hoặc địa chỉ thư điện tử
393 -*''phân cách các mục bằng , ; * \\n
394 -*''danh sách có thể chứa tiêu bản và hàm cú pháp''",
395 - 'ea-show' => 'Hiển thị người nhận',
396 - 'ea-send' => 'Gửi!',
397 - 'ea-subject' => 'Nhập vào dòng tiêu đề cho thư điện tử',
398 - 'ea-header' => 'Gắn nội dung với thông điệp tùy chọn (văn bản wiki)',
399 - 'ea-selectcss' => 'Lựa chọn một kiểu trình bày CSS',
400 -);
401 -
Index: trunk/extensions/EmailPage/EmailArticle.php
@@ -1,73 +0,0 @@
2 -<?php
3 -/**
4 - * EmailArticle extension - Send rendered HTML article to an email address or list of addresses using phpmailer
5 - *
6 - * See http://www.mediawiki.org/wiki/Extension:EmailArticle for installation and usage details
7 - *
8 - * @package MediaWiki
9 - * @subpackage Extensions
10 - * @author Aran Dunkley [http://www.organicdesign.co.nz/nad User:Nad]
11 - * @copyright © 2007 Aran Dunkley
12 - * @licence GNU General Public Licence 2.0 or later
13 - */
14 -
15 -if (!defined('MEDIAWIKI')) die('Not an entry point.');
16 -
17 -define('EMAILARTICLE_VERSION', '1.1.0, 2008-06-04');
18 -
19 -$wgEmailArticleGroup = 'sysop'; # Users must belong to this group to send emails (empty string means anyone can send)
20 -$wgEmailArticleContactsCat = ''; # This specifies the name of a category containing categories of contact articles
21 -$wgEmailArticleCss = 'EmailArticle.css'; # A minimal CSS article to embed in the email (eg. monobook/main.css without portlets, actions etc)
22 -$wgEmailArticleAllowRemoteAddr = array($_SERVER['SERVER_ADDR'],'127.0.0.1'); # Allow anonymous sending from these addresses
23 -$wgEmailArticleAllowAllUsers = false; # Whether to allow sending to all users (the "user" group)
24 -$wgEmailArticleToolboxLink = 'Send to email'; # Link title for toolbox link (set to "" to not have any link in toolbox)
25 -$wgEmailArticleActionLink = 'email'; # Link title for action link (set to "" to not have any action link)
26 -$wgPhpMailerClass = dirname(__FILE__).'/phpMailer_v2.1.0beta2/class.phpmailer.php'; # From http://phpmailer.sourceforge.net/
27 -
28 -if ($wgEmailArticleGroup) $wgGroupPermissions['sysop'][$wgEmailArticleGroup] = true;
29 -
30 -$dir = dirname(__FILE__) . '/';
31 -$wgAutoloadClasses['SpecialEmailArticle'] = $dir . 'EmailArticle_body.php';
32 -$wgExtensionMessagesFiles['EmailArticle'] = $dir . 'EmailArticle.i18n.php';
33 -$wgExtensionAliasesFiles['EmailArticle'] = $dir . 'EmailArticle.alias.php';
34 -$wgSpecialPages['EmailArticle'] = 'SpecialEmailArticle';
35 -
36 -$wgExtensionCredits['specialpage'][] = array(
37 - 'name' => 'Special:EmailArticle',
38 - 'author' => '[http://www.organicdesign.co.nz/nad User:Nad]',
39 - 'description' => 'Send rendered HTML article to an email address or list of addresses using [http://phpmailer.sourceforge.net phpmailer].',
40 - 'descriptionmsg' => 'ea-desc',
41 - 'url' => 'http://www.mediawiki.org/wiki/Extension:EmailArticle',
42 - 'version' => EMAILARTICLE_VERSION
43 -);
44 -
45 -# If form has been posted, include the phpmailer class
46 -if (isset($_REQUEST['ea-send'])) require_once($wgPhpMailerClass);
47 -
48 -# Add toolbox and action links
49 -if ($wgEmailArticleToolboxLink) {
50 - $wgHooks['MonoBookTemplateToolboxEnd'][] = 'wfEmailArticleToolboxLink';
51 -}
52 -
53 -if ($wgEmailArticleActionLink) {
54 - $wgHooks['SkinTemplateTabs'][] = 'wfEmailArticleActionLink';
55 -}
56 -
57 -function wfEmailArticleToolboxLink() {
58 - global $wgEmailArticleToolboxLink,$wgTitle;
59 - if (is_object($wgTitle)) {
60 - $url = Title::makeTitle(NS_SPECIAL,'EmailArticle')->getLocalURL('ea-title='.$wgTitle->getPrefixedText());
61 - echo("<li><a href=\"$url\">$wgEmailArticleToolboxLink</li>");
62 - }
63 - return true;
64 -}
65 -
66 -
67 -function wfEmailArticleActionLink(&$skin,&$actions) {
68 - global $wgEmailArticleActionLink,$wgTitle;
69 - if (is_object($wgTitle)) {
70 - $url = Title::makeTitle(NS_SPECIAL,'EmailArticle')->getLocalURL('ea-title='.$wgTitle->getPrefixedText());
71 - $actions['email'] = array('text' => $wgEmailArticleActionLink, 'class' => false, 'href' => $url);
72 - }
73 - return true;
74 -}
Index: trunk/extensions/EmailPage/EmailArticle.alias.php
@@ -1,60 +0,0 @@
2 -<?php
3 -/**
4 - * Aliases for Special:EmailArticle
5 - *
6 - * @addtogroup Extensions
7 - */
8 -
9 -$aliases = array();
10 -
11 -/** English
12 - * @author Jon Harald Søby
13 - */
14 -$aliases['en'] = array(
15 - 'EmailArticle' => array( 'EmailArticle' ),
16 -);
17 -
18 -/** Arabic (العربية) */
19 -$aliases['ar'] = array(
20 - 'EmailArticle' => array( 'مراسلة المقالة' ),
21 -);
22 -
23 -/** Egyptian Spoken Arabic (مصرى) */
24 -$aliases['arz'] = array(
25 - 'EmailArticle' => array( 'مراسلة المقالة' ),
26 -);
27 -
28 -/** French (Français) */
29 -$aliases['fr'] = array(
30 - 'EmailArticle' => array( 'EnvoyerArticle', 'Envoyer Article', 'Envoyer l’article' ),
31 -);
32 -
33 -/** Hebrew (עברית)
34 - * @author Rotem Liss
35 - */
36 -$aliases['he'] = array(
37 - 'EmailArticle' => array( 'שליחת_דף_בדואר' ),
38 -);
39 -
40 -/** Haitian (Kreyòl ayisyen) */
41 -$aliases['ht'] = array(
42 - 'EmailArticle' => array( 'EmèlAtik' ),
43 -);
44 -
45 -/** Hungarian (Magyar) */
46 -$aliases['hu'] = array(
47 - 'EmailArticle' => array( 'Szócikk elküldése e-mailben' ),
48 -);
49 -
50 -/** Dutch (Nederlands) */
51 -$aliases['nl'] = array(
52 - 'EmailArticle' => array( 'PaginaE-mailen', 'PaginaEmailen' ),
53 -);
54 -
55 -/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
56 - * @author Jon Harald Søby
57 - */
58 -$aliases['no'] = array(
59 - 'EmailArticle' => array( 'Send_side_som_e-post' ),
60 -);
61 -
Index: trunk/extensions/EmailPage/EmailArticle_body.php
@@ -1,253 +0,0 @@
2 -<?php
3 -if (!defined('MEDIAWIKI')) die();
4 -
5 -class SpecialEmailArticle extends SpecialPage {
6 -
7 - var $recipients = array();
8 - var $title;
9 - var $subject;
10 - var $header;
11 - var $cat;
12 - var $group;
13 - var $list;
14 - var $textonly;
15 - var $css;
16 -
17 - public function __construct() {
18 - global $wgEmailArticleGroup;
19 - SpecialPage::SpecialPage('EmailArticle', $wgEmailArticleGroup);
20 - }
21 -
22 - /**
23 - * Override SpecialPage::execute($param = '')
24 - */
25 - function execute($param) {
26 - global $wgOut, $wgUser, $wgEmailArticleContactsCat, $wgGroupPermissions, $wgSitename, $wgEmailArticleCss, $wgEmailArticleAllowAllUsers;
27 - $db =& wfGetDB(DB_SLAVE);
28 - $param = str_replace('_', ' ', $param);
29 -
30 - wfLoadExtensionMessages( 'EmailArticle' );
31 -
32 - $this->setHeaders();
33 -
34 - # Get info from request or set to defaults
35 - $this->title = isset($_REQUEST['ea-title']) ? $_REQUEST['ea-title'] : $param;
36 - $this->subject = isset($_REQUEST['ea-subject']) ? $_REQUEST['ea-subject'] : '' . wfMsg('ea-articlesend', $this->title, $wgSitename );
37 - $this->header = isset($_REQUEST['ea-header']) ? $_REQUEST['ea-header'] : '';
38 - $this->cat = isset($_REQUEST['ea-cat']) ? $_REQUEST['ea-cat'] : '';
39 - $this->group = isset($_REQUEST['ea-group']) ? $_REQUEST['ea-group'] : '';
40 - $this->list = isset($_REQUEST['ea-list']) ? $_REQUEST['ea-list'] : '';
41 - $this->textonly = isset($_REQUEST['ea-textonly']) ? $_REQUEST['ea-textonly'] : false;
42 - $this->css = isset($_REQUEST['ea-css']) ? $_REQUEST['ea-css'] : $wgEmailArticleCss;
43 -
44 - # Bail if no article title to send has been specified
45 - if ($this->title) $wgOut->addWikiText(wfMsg('ea-heading', $this->title));
46 - else return $wgOut->addWikiText(wfMsg('ea-noarticle'));
47 -
48 - # If the send button was clicked, attempt to send and exit
49 - if (isset($_REQUEST['ea-send'])) return $this->send();
50 -
51 - # Render form
52 - $special = Title::makeTitle(NS_SPECIAL, 'EmailArticle');
53 - $wgOut->addHTML(wfElement('form',array(
54 - 'class' => 'EmailArticle',
55 - 'action' => $special->getLocalURL('action=submit'),
56 - 'method' => 'POST'
57 - ),null));
58 - $wgOut->addHTML('<fieldset><legend>'.wfMsg('ea-selectrecipients').'</legend>');
59 - $wgOut->addHTML('<table style="padding:0;margin:0;border:none;">');
60 -
61 - # If $wgEmailArticleContactsCat is set, create a select list of all categories
62 - if ($wgEmailArticleContactsCat) {
63 - $cats = '';
64 - $result = $db->select(
65 - 'categorylinks',
66 - 'cl_from',
67 - 'cl_to = '.$db->addQuotes($wgEmailArticleContactsCat),
68 - __METHOD__,
69 - array('ORDER BY' => 'cl_sortkey')
70 - );
71 - if ($result instanceof ResultWrapper) $result = $result->result;
72 - if ($result) while ($row = $db->fetchRow($result)) {
73 - $t = Title::newFromID($row[0]);
74 - if ($t->getNamespace() == NS_CATEGORY) {
75 - $cat = $t->getText();
76 - $selected = $cat == $this->cat ? ' selected' : '';
77 - $cats .= "<option$selected>$cat</option>";
78 - }
79 - }
80 - if ($cats) $wgOut->addHTML("<tr><td>From category:</td><td><select name=\"ea-cat\"><option/>$cats</select></td></tr>\n");
81 - }
82 -
83 - # Allow selection of a group
84 - $groups = '<option/>';
85 - foreach (array_keys($wgGroupPermissions) as $group) if ($group != '*') {
86 - $selected = $group == $this->group ? ' selected' : '';
87 - if ($wgEmailArticleAllowAllUsers || $group != 'user') $groups .= "<option$selected>$group</option>";
88 - }
89 - $wgOut->addHTML("<tr><td>".wfMsg('ea-fromgroup')."</td><td><select name=\"ea-group\">$groups</select></td></tr>\n");
90 - $wgOut->addHTML('</table>');
91 -
92 - # Addition of named list
93 - $wgOut->addWikiText(wfMsg('ea-selectlist'));
94 - $wgOut->addHTML("<textarea name=\"ea-list\" rows=\"5\">{$this->list}</textarea><br />\n");
95 - $wgOut->addHTML('</fieldset>');
96 -
97 - $wgOut->addHTML('<fieldset><legend>'.wfMsg('ea-compose').'</legend>');
98 -
99 - # Subject
100 - $wgOut->addWikiText(wfMsg('ea-subject'));
101 - $wgOut->addHTML(wfElement('input',array('type' => 'text', 'name' => 'ea-subject', 'value' => $this->subject, 'style' => "width:100%")));
102 -
103 - # Header
104 - $wgOut->addWikiText(wfMsg('ea-header'));
105 - $wgOut->addHTML("<textarea name=\"ea-header\" rows=\"5\">{$this->header}</textarea><br />\n");
106 -
107 - # CSS
108 - $csss = '';
109 - $result = $db->select(
110 - 'page',
111 - 'page_id',
112 - 'page_title LIKE \'%.css\'',
113 - __METHOD__,
114 - array('ORDER BY' => 'page_title')
115 - );
116 - if ($result instanceof ResultWrapper) $result = $result->result;
117 - if ($result) while ($row = $db->fetchRow($result)) {
118 - $t = Title::newFromID($row[0])->getPrefixedText();
119 - $selected = $t == $this->css ? ' selected' : '';
120 - $csss .= "<option$selected>$t</option>";
121 - }
122 - if ($csss) {
123 - $wgOut->addWikiText(wfMsg('ea-selectcss'));
124 - $wgOut->addHTML("<select name=\"ea-css\"><option/>$csss</select>\n");
125 - }
126 -
127 - $wgOut->addHTML("</fieldset>");
128 -
129 - # Submit buttons & hidden values
130 - $wgOut->addHTML(wfElement('input', array('type' => 'submit', 'name' => 'ea-send', 'value' => wfMsg('ea-send'))));
131 - $wgOut->addHTML(wfElement('input', array('type' => 'submit', 'name' => 'ea-show', 'value' => wfMsg('ea-show'))));
132 - $wgOut->addHTML(wfElement('input', array('type' => 'hidden', 'name' => 'ea-title', 'value' => $this->title)));
133 -
134 - $wgOut->addHTML('</form>');
135 -
136 - # If the show button was clicked, render the list
137 - if (isset($_REQUEST['ea-show'])) return $this->send(false);
138 - }
139 -
140 - # Send the message to the recipients (or just list them if arg = false)
141 - function send($send = true) {
142 - global $wgOut, $wgUser, $wgParser, $wgServer, $wgScript, $wgArticlePath, $wgScriptPath,
143 - $wgEmailArticleCss, $wgEmailArticleGroup, $wgEmailArticleAllowRemoteAddr, $wgEmailArticleAllowAllUsers;
144 -
145 - # Set error and bail if user not in postmaster group, and request not from trusted address
146 - if ($wgEmailArticleGroup && !in_array($wgEmailArticleGroup, $wgUser->getGroups()) && !in_array($_SERVER['REMOTE_ADDR'], $wgEmailArticleAllowRemoteAddr)) {
147 - $denied = wfMsg('ea-denied');
148 - $wgOut->addWikiText(wfMsg('ea-error', $this->title, $denied ));
149 - return false;
150 - }
151 -
152 - $db = &wfGetDB(DB_SLAVE);
153 - $title = Title::newFromText($this->title);
154 - $opt = new ParserOptions;
155 -
156 - # Get contact article titles from selected cat
157 - if ($this->cat) {
158 - $result = $db->select(
159 - 'categorylinks',
160 - 'cl_from',
161 - 'cl_to = '.$db->addQuotes($this->cat),
162 - __METHOD__,
163 - array('ORDER BY' => 'cl_sortkey')
164 - );
165 - if ($result instanceof ResultWrapper) $result = $result->result;
166 - if ($result) while ($row = $db->fetchRow($result)) $this->addRecipient(Title::newFromID($row[0]));
167 - }
168 -
169 - # Get email addresses from users in selected group
170 - if ($this->group && ($wgEmailArticleAllowAllUsers || $this->group != 'user')) {
171 - $group = $db->addQuotes($this->group);
172 - $result = $this->group == 'user'
173 - ? $db->select('user', 'user_email', 'user_email != \'\'', __METHOD__)
174 - : $db->select(array('user', 'user_groups'), 'user_email', "ug_user = user_id AND ug_group = $group", __METHOD__);
175 - if ($result instanceof ResultWrapper) $result = $result->result;
176 - if ($result) while ($row = $db->fetchRow($result)) $this->addRecipient($row[0]);
177 - }
178 -
179 - # Recipients from list (expand templates in wikitext)
180 - $list = $wgParser->preprocess($this->list, $title, $opt);
181 - foreach (preg_split("/[\\x00-\\x1f,;*]+/", $list) as $item) $this->addRecipient($item);
182 -
183 - # Compose the wikitext content of the article to send
184 - $article = new Article($title);
185 - $message = $article->getContent();
186 - if ($this->header) $message = "{$this->header}\n\n$message";
187 -
188 - # Convert the message text to html unless textonly
189 - if ($this->textonly == '') {
190 -
191 - # Parse the wikitext using absolute URL's for local article links
192 - $tmp = array($wgArticlePath, $wgScriptPath, $wgScript);
193 - $wgArticlePath = $wgServer.$wgArticlePath;
194 - $wgScriptPath = $wgServer.$wgScriptPath;
195 - $wgScript = $wgServer.$wgScript;
196 - $message = $wgParser->parse($message, $title, $opt, true, true)->getText();
197 - list($wgArticlePath,$wgScriptPath,$wgScript) = $tmp;
198 -
199 - # Get CSS content if any
200 - if ($this->css) {
201 - $article = new Article(Title::newFromText($this->css));
202 - $css = '<style type="text/css">'.$article->getContent().'</style>';
203 - }
204 -
205 - # Create a html wrapper for the message
206 - $head = "<head>$css</head>";
207 - $message = "<html>$head<body style=\"margin:10px\"><div id=\"#bodyContent\">$message</div></body></html>";
208 -
209 - }
210 -
211 - # Send message or list recipients
212 - $count = count($this->recipients);
213 - if ($count > 0) {
214 -
215 - # Set up new mailer instance if sending
216 - if ($send) {
217 - $mail = new PHPMailer();
218 - $mail->From = $wgUser->isValidEmailAddr($wgUser->getEmail()) ? $wgUser->getEmail() : "wiki@$wgServer";
219 - $mail->FromName = User::whoIsReal($wgUser->getId());
220 - $mail->Subject = $this->subject;
221 - $mail->Body = $message;
222 - $mail->IsHTML(!$this->textonly);
223 - }
224 - else $msg = wfMsg('ea-listrecipients', $count);
225 -
226 - # Loop through recipients sending or adding to list
227 - foreach ($this->recipients as $recipient) $send ? $mail->AddAddress($recipient) : $msg .= "\n*[mailto:$recipient $recipient]";
228 -
229 - if ($send) {
230 - if ($state = $mail->Send()) $msg = wfMsg('ea-sent', $this->title, $count, $wgUser->getName());
231 - else $msg = wfMsg('ea-error', $this->title, $mail->ErrorInfo);
232 - }
233 - else $state = $count;
234 - }
235 - else $msg = wfMsg('ea-error', $this->title, wfMsg('ea-norecipients'));
236 -
237 - $wgOut->addWikiText($msg);
238 - return $state;
239 - }
240 -
241 - /**
242 - * Add a recipient the list
243 - * - accepts title objects for article containing email address, or string of actual address
244 - */
245 - function addRecipient($recipient) {
246 - if (is_object($recipient) && $recipient->exists()) {
247 - $article = new Article($recipient);
248 - if (preg_match('/[a-z0-9_.-]+@[a-z0-9_.-]+/i', $article->getContent(), $emails)) $recipient = $emails[0];
249 - else $recipient = '';
250 - }
251 - if ($valid = User::isValidEmailAddr($recipient)) $this->recipients[] = $recipient;
252 - return $valid;
253 - }
254 -}
Index: trunk/extensions/EmailPage/EmailPage.alias.php
@@ -0,0 +1,60 @@
 2+<?php
 3+/**
 4+ * Aliases for Special:EmailArticle
 5+ *
 6+ * @addtogroup Extensions
 7+ */
 8+
 9+$aliases = array();
 10+
 11+/** English
 12+ * @author Jon Harald Søby
 13+ */
 14+$aliases['en'] = array(
 15+ 'EmailArticle' => array( 'EmailArticle' ),
 16+);
 17+
 18+/** Arabic (العربية) */
 19+$aliases['ar'] = array(
 20+ 'EmailArticle' => array( 'مراسلة المقالة' ),
 21+);
 22+
 23+/** Egyptian Spoken Arabic (مصرى) */
 24+$aliases['arz'] = array(
 25+ 'EmailArticle' => array( 'مراسلة المقالة' ),
 26+);
 27+
 28+/** French (Français) */
 29+$aliases['fr'] = array(
 30+ 'EmailArticle' => array( 'EnvoyerArticle', 'Envoyer Article', 'Envoyer l’article' ),
 31+);
 32+
 33+/** Hebrew (עברית)
 34+ * @author Rotem Liss
 35+ */
 36+$aliases['he'] = array(
 37+ 'EmailArticle' => array( 'שליחת_דף_בדואר' ),
 38+);
 39+
 40+/** Haitian (Kreyòl ayisyen) */
 41+$aliases['ht'] = array(
 42+ 'EmailArticle' => array( 'EmèlAtik' ),
 43+);
 44+
 45+/** Hungarian (Magyar) */
 46+$aliases['hu'] = array(
 47+ 'EmailArticle' => array( 'Szócikk elküldése e-mailben' ),
 48+);
 49+
 50+/** Dutch (Nederlands) */
 51+$aliases['nl'] = array(
 52+ 'EmailArticle' => array( 'PaginaE-mailen', 'PaginaEmailen' ),
 53+);
 54+
 55+/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
 56+ * @author Jon Harald Søby
 57+ */
 58+$aliases['no'] = array(
 59+ 'EmailArticle' => array( 'Send_side_som_e-post' ),
 60+);
 61+
Property changes on: trunk/extensions/EmailPage/EmailPage.alias.php
___________________________________________________________________
Added: svn:mergeinfo
Added: svn:eol-style
162 + native
Index: trunk/extensions/EmailPage/EmailPage_body.php
@@ -0,0 +1,253 @@
 2+<?php
 3+if (!defined('MEDIAWIKI')) die();
 4+
 5+class SpecialEmailArticle extends SpecialPage {
 6+
 7+ var $recipients = array();
 8+ var $title;
 9+ var $subject;
 10+ var $header;
 11+ var $cat;
 12+ var $group;
 13+ var $list;
 14+ var $textonly;
 15+ var $css;
 16+
 17+ public function __construct() {
 18+ global $wgEmailArticleGroup;
 19+ SpecialPage::SpecialPage('EmailArticle', $wgEmailArticleGroup);
 20+ }
 21+
 22+ /**
 23+ * Override SpecialPage::execute($param = '')
 24+ */
 25+ function execute($param) {
 26+ global $wgOut, $wgUser, $wgEmailArticleContactsCat, $wgGroupPermissions, $wgSitename, $wgEmailArticleCss, $wgEmailArticleAllowAllUsers;
 27+ $db =& wfGetDB(DB_SLAVE);
 28+ $param = str_replace('_', ' ', $param);
 29+
 30+ wfLoadExtensionMessages( 'EmailArticle' );
 31+
 32+ $this->setHeaders();
 33+
 34+ # Get info from request or set to defaults
 35+ $this->title = isset($_REQUEST['ea-title']) ? $_REQUEST['ea-title'] : $param;
 36+ $this->subject = isset($_REQUEST['ea-subject']) ? $_REQUEST['ea-subject'] : '' . wfMsg('ea-articlesend', $this->title, $wgSitename );
 37+ $this->header = isset($_REQUEST['ea-header']) ? $_REQUEST['ea-header'] : '';
 38+ $this->cat = isset($_REQUEST['ea-cat']) ? $_REQUEST['ea-cat'] : '';
 39+ $this->group = isset($_REQUEST['ea-group']) ? $_REQUEST['ea-group'] : '';
 40+ $this->list = isset($_REQUEST['ea-list']) ? $_REQUEST['ea-list'] : '';
 41+ $this->textonly = isset($_REQUEST['ea-textonly']) ? $_REQUEST['ea-textonly'] : false;
 42+ $this->css = isset($_REQUEST['ea-css']) ? $_REQUEST['ea-css'] : $wgEmailArticleCss;
 43+
 44+ # Bail if no article title to send has been specified
 45+ if ($this->title) $wgOut->addWikiText(wfMsg('ea-heading', $this->title));
 46+ else return $wgOut->addWikiText(wfMsg('ea-noarticle'));
 47+
 48+ # If the send button was clicked, attempt to send and exit
 49+ if (isset($_REQUEST['ea-send'])) return $this->send();
 50+
 51+ # Render form
 52+ $special = Title::makeTitle(NS_SPECIAL, 'EmailArticle');
 53+ $wgOut->addHTML(wfElement('form',array(
 54+ 'class' => 'EmailArticle',
 55+ 'action' => $special->getLocalURL('action=submit'),
 56+ 'method' => 'POST'
 57+ ),null));
 58+ $wgOut->addHTML('<fieldset><legend>'.wfMsg('ea-selectrecipients').'</legend>');
 59+ $wgOut->addHTML('<table style="padding:0;margin:0;border:none;">');
 60+
 61+ # If $wgEmailArticleContactsCat is set, create a select list of all categories
 62+ if ($wgEmailArticleContactsCat) {
 63+ $cats = '';
 64+ $result = $db->select(
 65+ 'categorylinks',
 66+ 'cl_from',
 67+ 'cl_to = '.$db->addQuotes($wgEmailArticleContactsCat),
 68+ __METHOD__,
 69+ array('ORDER BY' => 'cl_sortkey')
 70+ );
 71+ if ($result instanceof ResultWrapper) $result = $result->result;
 72+ if ($result) while ($row = $db->fetchRow($result)) {
 73+ $t = Title::newFromID($row[0]);
 74+ if ($t->getNamespace() == NS_CATEGORY) {
 75+ $cat = $t->getText();
 76+ $selected = $cat == $this->cat ? ' selected' : '';
 77+ $cats .= "<option$selected>$cat</option>";
 78+ }
 79+ }
 80+ if ($cats) $wgOut->addHTML("<tr><td>From category:</td><td><select name=\"ea-cat\"><option/>$cats</select></td></tr>\n");
 81+ }
 82+
 83+ # Allow selection of a group
 84+ $groups = '<option/>';
 85+ foreach (array_keys($wgGroupPermissions) as $group) if ($group != '*') {
 86+ $selected = $group == $this->group ? ' selected' : '';
 87+ if ($wgEmailArticleAllowAllUsers || $group != 'user') $groups .= "<option$selected>$group</option>";
 88+ }
 89+ $wgOut->addHTML("<tr><td>".wfMsg('ea-fromgroup')."</td><td><select name=\"ea-group\">$groups</select></td></tr>\n");
 90+ $wgOut->addHTML('</table>');
 91+
 92+ # Addition of named list
 93+ $wgOut->addWikiText(wfMsg('ea-selectlist'));
 94+ $wgOut->addHTML("<textarea name=\"ea-list\" rows=\"5\">{$this->list}</textarea><br />\n");
 95+ $wgOut->addHTML('</fieldset>');
 96+
 97+ $wgOut->addHTML('<fieldset><legend>'.wfMsg('ea-compose').'</legend>');
 98+
 99+ # Subject
 100+ $wgOut->addWikiText(wfMsg('ea-subject'));
 101+ $wgOut->addHTML(wfElement('input',array('type' => 'text', 'name' => 'ea-subject', 'value' => $this->subject, 'style' => "width:100%")));
 102+
 103+ # Header
 104+ $wgOut->addWikiText(wfMsg('ea-header'));
 105+ $wgOut->addHTML("<textarea name=\"ea-header\" rows=\"5\">{$this->header}</textarea><br />\n");
 106+
 107+ # CSS
 108+ $csss = '';
 109+ $result = $db->select(
 110+ 'page',
 111+ 'page_id',
 112+ 'page_title LIKE \'%.css\'',
 113+ __METHOD__,
 114+ array('ORDER BY' => 'page_title')
 115+ );
 116+ if ($result instanceof ResultWrapper) $result = $result->result;
 117+ if ($result) while ($row = $db->fetchRow($result)) {
 118+ $t = Title::newFromID($row[0])->getPrefixedText();
 119+ $selected = $t == $this->css ? ' selected' : '';
 120+ $csss .= "<option$selected>$t</option>";
 121+ }
 122+ if ($csss) {
 123+ $wgOut->addWikiText(wfMsg('ea-selectcss'));
 124+ $wgOut->addHTML("<select name=\"ea-css\"><option/>$csss</select>\n");
 125+ }
 126+
 127+ $wgOut->addHTML("</fieldset>");
 128+
 129+ # Submit buttons & hidden values
 130+ $wgOut->addHTML(wfElement('input', array('type' => 'submit', 'name' => 'ea-send', 'value' => wfMsg('ea-send'))));
 131+ $wgOut->addHTML(wfElement('input', array('type' => 'submit', 'name' => 'ea-show', 'value' => wfMsg('ea-show'))));
 132+ $wgOut->addHTML(wfElement('input', array('type' => 'hidden', 'name' => 'ea-title', 'value' => $this->title)));
 133+
 134+ $wgOut->addHTML('</form>');
 135+
 136+ # If the show button was clicked, render the list
 137+ if (isset($_REQUEST['ea-show'])) return $this->send(false);
 138+ }
 139+
 140+ # Send the message to the recipients (or just list them if arg = false)
 141+ function send($send = true) {
 142+ global $wgOut, $wgUser, $wgParser, $wgServer, $wgScript, $wgArticlePath, $wgScriptPath,
 143+ $wgEmailArticleCss, $wgEmailArticleGroup, $wgEmailArticleAllowRemoteAddr, $wgEmailArticleAllowAllUsers;
 144+
 145+ # Set error and bail if user not in postmaster group, and request not from trusted address
 146+ if ($wgEmailArticleGroup && !in_array($wgEmailArticleGroup, $wgUser->getGroups()) && !in_array($_SERVER['REMOTE_ADDR'], $wgEmailArticleAllowRemoteAddr)) {
 147+ $denied = wfMsg('ea-denied');
 148+ $wgOut->addWikiText(wfMsg('ea-error', $this->title, $denied ));
 149+ return false;
 150+ }
 151+
 152+ $db = &wfGetDB(DB_SLAVE);
 153+ $title = Title::newFromText($this->title);
 154+ $opt = new ParserOptions;
 155+
 156+ # Get contact article titles from selected cat
 157+ if ($this->cat) {
 158+ $result = $db->select(
 159+ 'categorylinks',
 160+ 'cl_from',
 161+ 'cl_to = '.$db->addQuotes($this->cat),
 162+ __METHOD__,
 163+ array('ORDER BY' => 'cl_sortkey')
 164+ );
 165+ if ($result instanceof ResultWrapper) $result = $result->result;
 166+ if ($result) while ($row = $db->fetchRow($result)) $this->addRecipient(Title::newFromID($row[0]));
 167+ }
 168+
 169+ # Get email addresses from users in selected group
 170+ if ($this->group && ($wgEmailArticleAllowAllUsers || $this->group != 'user')) {
 171+ $group = $db->addQuotes($this->group);
 172+ $result = $this->group == 'user'
 173+ ? $db->select('user', 'user_email', 'user_email != \'\'', __METHOD__)
 174+ : $db->select(array('user', 'user_groups'), 'user_email', "ug_user = user_id AND ug_group = $group", __METHOD__);
 175+ if ($result instanceof ResultWrapper) $result = $result->result;
 176+ if ($result) while ($row = $db->fetchRow($result)) $this->addRecipient($row[0]);
 177+ }
 178+
 179+ # Recipients from list (expand templates in wikitext)
 180+ $list = $wgParser->preprocess($this->list, $title, $opt);
 181+ foreach (preg_split("/[\\x00-\\x1f,;*]+/", $list) as $item) $this->addRecipient($item);
 182+
 183+ # Compose the wikitext content of the article to send
 184+ $article = new Article($title);
 185+ $message = $article->getContent();
 186+ if ($this->header) $message = "{$this->header}\n\n$message";
 187+
 188+ # Convert the message text to html unless textonly
 189+ if ($this->textonly == '') {
 190+
 191+ # Parse the wikitext using absolute URL's for local article links
 192+ $tmp = array($wgArticlePath, $wgScriptPath, $wgScript);
 193+ $wgArticlePath = $wgServer.$wgArticlePath;
 194+ $wgScriptPath = $wgServer.$wgScriptPath;
 195+ $wgScript = $wgServer.$wgScript;
 196+ $message = $wgParser->parse($message, $title, $opt, true, true)->getText();
 197+ list($wgArticlePath,$wgScriptPath,$wgScript) = $tmp;
 198+
 199+ # Get CSS content if any
 200+ if ($this->css) {
 201+ $article = new Article(Title::newFromText($this->css));
 202+ $css = '<style type="text/css">'.$article->getContent().'</style>';
 203+ }
 204+
 205+ # Create a html wrapper for the message
 206+ $head = "<head>$css</head>";
 207+ $message = "<html>$head<body style=\"margin:10px\"><div id=\"#bodyContent\">$message</div></body></html>";
 208+
 209+ }
 210+
 211+ # Send message or list recipients
 212+ $count = count($this->recipients);
 213+ if ($count > 0) {
 214+
 215+ # Set up new mailer instance if sending
 216+ if ($send) {
 217+ $mail = new PHPMailer();
 218+ $mail->From = $wgUser->isValidEmailAddr($wgUser->getEmail()) ? $wgUser->getEmail() : "wiki@$wgServer";
 219+ $mail->FromName = User::whoIsReal($wgUser->getId());
 220+ $mail->Subject = $this->subject;
 221+ $mail->Body = $message;
 222+ $mail->IsHTML(!$this->textonly);
 223+ }
 224+ else $msg = wfMsg('ea-listrecipients', $count);
 225+
 226+ # Loop through recipients sending or adding to list
 227+ foreach ($this->recipients as $recipient) $send ? $mail->AddAddress($recipient) : $msg .= "\n*[mailto:$recipient $recipient]";
 228+
 229+ if ($send) {
 230+ if ($state = $mail->Send()) $msg = wfMsg('ea-sent', $this->title, $count, $wgUser->getName());
 231+ else $msg = wfMsg('ea-error', $this->title, $mail->ErrorInfo);
 232+ }
 233+ else $state = $count;
 234+ }
 235+ else $msg = wfMsg('ea-error', $this->title, wfMsg('ea-norecipients'));
 236+
 237+ $wgOut->addWikiText($msg);
 238+ return $state;
 239+ }
 240+
 241+ /**
 242+ * Add a recipient the list
 243+ * - accepts title objects for article containing email address, or string of actual address
 244+ */
 245+ function addRecipient($recipient) {
 246+ if (is_object($recipient) && $recipient->exists()) {
 247+ $article = new Article($recipient);
 248+ if (preg_match('/[a-z0-9_.-]+@[a-z0-9_.-]+/i', $article->getContent(), $emails)) $recipient = $emails[0];
 249+ else $recipient = '';
 250+ }
 251+ if ($valid = User::isValidEmailAddr($recipient)) $this->recipients[] = $recipient;
 252+ return $valid;
 253+ }
 254+}
Property changes on: trunk/extensions/EmailPage/EmailPage_body.php
___________________________________________________________________
Added: svn:mergeinfo
Added: svn:eol-style
1255 + native
Index: trunk/extensions/EmailPage/EmailPage.i18n.php
@@ -0,0 +1,400 @@
 2+<?php
 3+/**
 4+ * Internationalisation file for extension EmailArticle.
 5+ *
 6+ * @addtogroup Extensions
 7+*/
 8+
 9+$messages = array();
 10+
 11+/** English
 12+ * @author Nad
 13+ */
 14+$messages['en'] = array(
 15+ 'emailarticle' => 'E-mail page',
 16+ 'ea-desc' => 'Send rendered HTML page to an e-mail address or list of addresses using [http://phpmailer.sourceforge.net phpmailer].',
 17+ 'ea-heading' => "=== E-mailing the page [[$1]] ===",
 18+ 'ea-fromgroup' => 'From group:',
 19+ 'ea-articlesend' => 'Page "$1" sent from $2',
 20+ 'ea-noarticle' => "Please specify a page to send, for example [[Special:EmailArticle/Main Page]].",
 21+ 'ea-norecipients' => "No valid e-mail addresses found!",
 22+ 'ea-listrecipients' => "=== {{PLURAL:$1|Recipient|$1 recipients}} ===",
 23+ 'ea-error' => "'''Error sending [[$1]]:''' ''$2''",
 24+ 'ea-denied' => 'Permission denied',
 25+ 'ea-sent' => "Page [[$1]] sent successfully to '''$2''' {{PLURAL:$2|recipient|recipients}} by [[User:$3|$3]].",
 26+ 'ea-selectrecipients' => 'Select recipients',
 27+ 'ea-compose' => 'Compose content',
 28+ 'ea-selectlist' => "Additional recipients as page titles or e-mail addresses
 29+*''separate items with , ; * \\n
 30+*''list can contain templates and parser-functions''",
 31+ 'ea-show' => 'Show recipients',
 32+ 'ea-send' => 'Send!',
 33+ 'ea-subject' => 'Enter a subject line for the e-mail',
 34+ 'ea-header' => 'Prepend content with optional message (wikitext)',
 35+ 'ea-selectcss' => 'Select a CSS stylesheet',
 36+);
 37+
 38+/** Arabic (العربية)
 39+ * @author OsamaK
 40+ * @author Meno25
 41+ */
 42+$messages['ar'] = array(
 43+ 'emailarticle' => 'مراسلة الصفحة',
 44+ 'ea-heading' => '=== مراسلة صفحة [[$1]] ===',
 45+ 'ea-fromgroup' => 'من مجموعة:',
 46+ 'ea-articlesend' => 'الصفحة "$1" أُرسلت من $2',
 47+ 'ea-norecipients' => 'لا عناوين بريد إلكتروني صحيحة وُجدت!',
 48+ 'ea-error' => "'''خطأ في إرسال [[$1]]:''' ''$2''",
 49+ 'ea-denied' => 'السماح مرفوض',
 50+ 'ea-selectrecipients' => 'اختر المتلقين',
 51+ 'ea-compose' => 'كتابة المحتوى',
 52+ 'ea-send' => 'أرسل!',
 53+ 'ea-subject' => 'أدخل سطر عنوان للبريد الإلكتروني',
 54+);
 55+
 56+/** Bulgarian (Български)
 57+ * @author DCLXVI
 58+ */
 59+$messages['bg'] = array(
 60+ 'ea-fromgroup' => 'От група:',
 61+ 'ea-noarticle' => 'Необходимо е да се посочи страница, която да бъде изпратена, напр. [[Special:EmailArticle/Начална страница]].',
 62+ 'ea-norecipients' => 'Не бяха намерени валидни адреси за е-поща!',
 63+ 'ea-listrecipients' => '=== Списък на $1 {{PLURAL:$1|получател|получателя}} ===',
 64+ 'ea-error' => "'''Грешка при изпращане на [[$1]]:''' ''$2''",
 65+ 'ea-selectrecipients' => 'Избиране на получатели',
 66+ 'ea-show' => 'Показване на получателите',
 67+ 'ea-send' => 'Изпращане!',
 68+ 'ea-selectcss' => 'Избиране на CSS стил',
 69+);
 70+
 71+/** Esperanto (Esperanto)
 72+ * @author Yekrats
 73+ */
 74+$messages['eo'] = array(
 75+ 'emailarticle' => 'Retpoŝtigi paĝon',
 76+ 'ea-heading' => '=== Retpoŝtigante paĝon [[$1]] ===',
 77+ 'ea-fromgroup' => 'De grupo:',
 78+ 'ea-articlesend' => 'Paĝo "$1" sendita de $2',
 79+ 'ea-noarticle' => 'Bonvolu enigi paĝon por retsendi, ekz-e [[Special:EmailArticle/Main Page]].',
 80+ 'ea-norecipients' => 'Neniaj validaj retadresoj trovitaj!',
 81+ 'ea-listrecipients' => '=== Listo de $1 {{PLURAL:$1|ricevonto|ricevontoj}} ===',
 82+ 'ea-error' => "'''Eraro sendante [[$1]]:''' ''$2''",
 83+ 'ea-denied' => 'Malpermesite',
 84+ 'ea-sent' => "Paĝo [[$1]] sendita sukcese al '''$2''' {{PLURAL:$2|ricevonto|ricevontoj}} de [[User:$3|$3]].",
 85+ 'ea-selectrecipients' => 'Selektu ricevontojn',
 86+ 'ea-compose' => 'Skribu enhavon',
 87+ 'ea-send' => 'Sendi!',
 88+ 'ea-selectcss' => 'Selekti CSS-tiparŝablono',
 89+);
 90+
 91+/** French (Français)
 92+ * @author Grondin
 93+ */
 94+$messages['fr'] = array(
 95+ 'emailarticle' => 'Envoyer l’article par courriel',
 96+ 'ea-desc' => 'Envoie le rendu d’une page HTML à une adresse électronique où à une liste d’adresses en utilisant [http://phpmailer.sourceforge.net phpmailer]',
 97+ 'ea-heading' => '=== Envoi de la page [[$1]] par courrier électronique ===',
 98+ 'ea-fromgroup' => 'Depuis le groupe :',
 99+ 'ea-articlesend' => 'Page « $1 » envoyée depuis $2',
 100+ 'ea-noarticle' => 'Veuillez spécifier une page à envoyer, par exemple [[Special:EmailArticle/Accueil]]',
 101+ 'ea-norecipients' => 'Aucune adresse courriel de trouvée !',
 102+ 'ea-listrecipients' => '=== Liste de $1 {{PLURAL:$1|destinataire|destinataires}} ===',
 103+ 'ea-error' => "'''Erreur de l’envoi de [[$1]] :''' ''$2''",
 104+ 'ea-denied' => 'Permission refusée',
 105+ 'ea-sent' => "L'article [[$1]] a été envoyé avec succès à '''$2''' {{PLURAL:$2|destinataire|destinataires}} par [[User:$3|$3]].",
 106+ 'ea-selectrecipients' => 'Sélectionner les destinataires',
 107+ 'ea-compose' => 'Composer le contenu',
 108+ 'ea-selectlist' => "Destinataires supplémentaires comme les titres d'articles ou les adresses courriel
 109+* ''séparer les articles avec , : * \\n''
 110+* ''la liste peut contenir des modèles et des fonctions parseurs''",
 111+ 'ea-show' => 'Visionner les destinataires',
 112+ 'ea-send' => 'Envoyer !',
 113+ 'ea-subject' => 'Entrer une ligne « objet » pour le courriel',
 114+ 'ea-header' => 'Ajouter le contenu au début avec un message facultatif (texte wiki)',
 115+ 'ea-selectcss' => 'Sélectionner une feuille de style CSS',
 116+);
 117+
 118+/** Galician (Galego)
 119+ * @author Toliño
 120+ */
 121+$messages['gl'] = array(
 122+ 'emailarticle' => 'Enviar a páxina por correo electrónico',
 123+ 'ea-desc' => 'Enviar páxinas HTML renderizadas a un enderezo de correo electrónico (ou a varios correos) usando [http://phpmailer.sourceforge.net phpmailer].',
 124+ 'ea-heading' => '=== Enviando a páxina "[[$1]]" ===',
 125+ 'ea-fromgroup' => 'Desde o grupo:',
 126+ 'ea-articlesend' => 'O artigo "$1" foi enviado desde $2',
 127+ 'ea-noarticle' => 'Por favor, especifique a páxina que quere enviar, por exemplo: [[Special:EmailArticle/Main Page]].',
 128+ 'ea-norecipients' => 'Non foi atopado ningún enderezo de correo electrónico válido!',
 129+ 'ea-listrecipients' => '=== {{PLURAL:$1|Nome do destinatario|Listaxe dos $1 destinatarios}} ===',
 130+ 'ea-error' => "'''Erro no envío de \"[[\$1]]\":''' ''\$2''",
 131+ 'ea-denied' => 'Permiso denegado',
 132+ 'ea-sent' => 'A páxina "[[$1]]" foi enviada con éxito a \'\'\'$2\'\'\' {{PLURAL:$2|destinatario|destinatarios}} por [[User:$3|$3]].',
 133+ 'ea-selectrecipients' => 'Seleccionar os destinatarios',
 134+ 'ea-compose' => 'Compoñer o contido',
 135+ 'ea-selectlist' => "Destinatarios adicionais como títulos de páxinas ou correos electrónicos
 136+*''separar os ítems con , ; * \\n
 137+*''a listaxe`pode conter modelos e funcións analíticas''",
 138+ 'ea-show' => 'Amosar os destinatarios',
 139+ 'ea-send' => 'Enviar!',
 140+ 'ea-subject' => 'Introducir un asunto ao correo electrónico',
 141+ 'ea-header' => 'Engadir o contido cunha mensaxe opcional (texto wiki)',
 142+ 'ea-selectcss' => 'Seleccionar unha folla de estilo CSS',
 143+);
 144+
 145+/** Khmer (ភាសាខ្មែរ)
 146+ * @author Lovekhmer
 147+ */
 148+$messages['km'] = array(
 149+ 'emailarticle' => 'ទំព័រអ៊ីមែល',
 150+ 'ea-fromgroup' => 'ពីក្រុម:',
 151+ 'ea-articlesend' => 'ទំព័រ"$1"ត្រូវបានបញ្ជូនពី$2',
 152+ 'ea-send' => 'ផ្ញើ!',
 153+);
 154+
 155+/** Luxembourgish (Lëtzebuergesch)
 156+ * @author Robby
 157+ */
 158+$messages['lb'] = array(
 159+ 'emailarticle' => 'Säit per Mail schécken',
 160+ 'ea-heading' => '=== Säit [[$1]] peer E-Mail verschécken ===',
 161+ 'ea-fromgroup' => 'Vun der Grupp:',
 162+ 'ea-articlesend' => 'D\'Säit "$1" gouf verschéckt vum $2',
 163+ 'ea-norecipients' => 'Keng gëlteg E-Mailadress fonnt',
 164+ 'ea-denied' => 'Rechter refuséiert',
 165+ 'ea-selectrecipients' => 'Adressaten erauswielen',
 166+ 'ea-show' => 'Adressate weisen',
 167+ 'ea-send' => 'Schécken!',
 168+ 'ea-subject' => "Gitt w.e.g. e Sujet fir d'E-Mail an",
 169+ 'ea-selectcss' => "Een ''CSS Stylesheet'' auswielen",
 170+);
 171+
 172+/** Malayalam (മലയാളം)
 173+ * @author Shijualex
 174+ */
 175+$messages['ml'] = array(
 176+ 'emailarticle' => 'ഇമെയില്‍ താള്‍',
 177+ 'ea-heading' => '=== [[$1]] എന്ന താള്‍ ഇമെയില്‍ ചെയ്യുന്നു ===',
 178+ 'ea-fromgroup' => 'ഗ്രൂപ്പ്:',
 179+ 'ea-articlesend' => '$2 സം‌രംഭത്തില്‍ നിന്നു "$1" എന്ന താള്‍ അയച്ചു',
 180+ 'ea-noarticle' => 'അയക്കുവാന്‍ വേണ്ടി ഒരു താള്‍ തിരഞ്ഞെടുക്കുക. ഉദാ: [[Special:EmailArticle/Main Page]]',
 181+ 'ea-norecipients' => 'സാധുവായ ഇമെയില്‍ വിലാസങ്ങള്‍ കണ്ടില്ല!',
 182+ 'ea-listrecipients' => '=== $1 {{PLURAL:$1|സ്വീകര്‍ത്താവിന്റെ|സ്വീകര്‍ത്താക്കളുടെ}} പട്ടിക ===',
 183+ 'ea-error' => "'''[[$1]] അയക്കുന്നതില്‍ പിഴവ്:''' ''$2''",
 184+ 'ea-denied' => 'അനുവാദം നിഷേധിച്ചിരിക്കുന്നു',
 185+ 'ea-sent' => "[[User:$3|$3]] എന്ന ഉപയോക്താവ് [[$1]] എന്ന താള്‍ വിജയകരമായി '''$2''' {{PLURAL:$2|സ്വീകര്‍ത്താവിനു|സ്വീകര്‍ത്താക്കള്‍ക്ക്}} അയച്ചിരിക്കുന്നു.",
 186+ 'ea-selectrecipients' => 'സ്വീകര്‍ത്താക്കളെ‍ തിരഞ്ഞെടുക്കുക',
 187+ 'ea-compose' => 'ഉള്ളടക്കം ചേര്‍ക്കുക',
 188+ 'ea-show' => 'സ്വീകര്‍ത്താക്കളെ പ്രദര്‍ശിപ്പിക്കുക',
 189+ 'ea-send' => 'അയക്കൂ!',
 190+ 'ea-subject' => 'ഇമെയിലിനു ഒരു വിഷയം/ശീര്‍ഷകം ചേര്‍ക്കുക',
 191+);
 192+
 193+/** Marathi (मराठी)
 194+ * @author Kaustubh
 195+ */
 196+$messages['mr'] = array(
 197+ 'emailarticle' => 'पान इ-मेल करा',
 198+ 'ea-desc' => ' [http://phpmailer.sourceforge.net पीएचपी मेलर] चा वापर करून एखादे पान एखाद्या इ-मेल पत्त्यावर किंवा इ-मेल पत्त्यांच्या यादीवर पाठवा.',
 199+ 'ea-heading' => '=== [[$1]] पान इ-मेल करीत आहे ===',
 200+ 'ea-fromgroup' => 'गटाकडून:',
 201+ 'ea-articlesend' => '$2 ने "$1" पान पाठविले',
 202+ 'ea-noarticle' => 'कृपया पाठविण्यासाठी एक पान निवडा, उदाहरणासाठी [[Special:EmailArticle/Main Page]].',
 203+ 'ea-norecipients' => 'योग्य इ-मेल पत्ता सापडला नाही!',
 204+ 'ea-listrecipients' => '=== $1 {{PLURAL:$1|सदस्याची|सदस्यांची}}यादी ===',
 205+ 'ea-error' => "'''पाठविण्यामध्ये त्रुटी [[$1]]:''' ''$2''",
 206+ 'ea-denied' => 'परवानगी नाकारली',
 207+ 'ea-sent' => "[[User:$3|$3]] ने [[$1]] पान '''$2''' {{PLURAL:$2|सदस्याला|सदस्यांना}} पाठविले.",
 208+ 'ea-selectrecipients' => 'सदस्य निवडा',
 209+ 'ea-compose' => 'मजकूर लिहा',
 210+ 'ea-selectlist' => "जास्तीचे सदस्य लेख शीर्षक किंवा इ-मेल पत्ता
 211+*'', ; चा वापर करून वेगळे करा* \\n
 212+*''यादी मध्ये साचे तसेच पार्सर क्रिया वापरता येतील''",
 213+ 'ea-show' => 'निवडलेले सदस्य दाखवा',
 214+ 'ea-send' => 'पाठवा!',
 215+ 'ea-subject' => 'इ-मेल चा विषय लिहा',
 216+ 'ea-header' => 'मजकूरा आधी वैकल्पिक संदेश लिहा (विकिसंज्ञा)',
 217+ 'ea-selectcss' => 'सीएसएस स्टाइलशीट पाठवा',
 218+);
 219+
 220+/** Low German (Plattdüütsch)
 221+ * @author Slomox
 222+ */
 223+$messages['nds'] = array(
 224+ 'ea-fromgroup' => 'Vun Grupp:',
 225+);
 226+
 227+/** Dutch (Nederlands)
 228+ * @author Siebrand
 229+ */
 230+$messages['nl'] = array(
 231+ 'emailarticle' => 'Pagina e-mailen',
 232+ 'ea-desc' => 'Stuur een gerenderde pagina naar een e-mailadres of een lijst van adressen met behulp van [http://phpmailer.sourceforge.net phpmailer].',
 233+ 'ea-heading' => '=== Pagina [[$1]] e-mailen ===',
 234+ 'ea-fromgroup' => 'Van groep:',
 235+ 'ea-articlesend' => 'Pagina "$1" is vanuit $2 verstuurd',
 236+ 'ea-noarticle' => 'Geef een pagina op om te versturen, bijvoorbeeld [[Special:EmailArticle/Hoofdpagina]].',
 237+ 'ea-norecipients' => 'Er is geen geldig e-mailadres opgegeven!',
 238+ 'ea-listrecipients' => '=== Lijst met $1 {{PLURAL:$1|ontvanger|ontvangers}} ===',
 239+ 'ea-error' => "'''Fout bij het versturen van [[$1]]:''' ''$2''",
 240+ 'ea-denied' => 'U hebt geen rechten om deze handeling uit te voeren',
 241+ 'ea-sent' => "Pagina [[$1]] is verstuurd naar '''$2''' {{PLURAL:$2|ontvanger|ontvangers}} door [[User:$3|$3]].",
 242+ 'ea-selectrecipients' => 'Ontvangers selecteren',
 243+ 'ea-compose' => 'Inhoud samenstellen',
 244+ 'ea-selectlist' => 'Meer ontvangers als paginanamen of e-mailadressen
 245+*\'\'u kunt adressen scheiden met ",", ";", "*", of "\\n"
 246+*\'\'de lijst mag sjablonen en parserfuncties bevatten\'\'',
 247+ 'ea-show' => 'Ontvangers weergeven',
 248+ 'ea-send' => 'Versturen',
 249+ 'ea-subject' => 'Voer een onderwerp in voor de e-mail',
 250+ 'ea-header' => 'Laat de pagina-inhoud vooraf gaan door een bericht (in wikitekst)',
 251+ 'ea-selectcss' => 'Selecteer een CSS',
 252+);
 253+
 254+/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
 255+ * @author Jon Harald Søby
 256+ */
 257+$messages['no'] = array(
 258+ 'emailarticle' => 'Send side som e-post',
 259+ 'ea-desc' => 'Send HTML-side til en eller flere e-postadresser ved hjelp av [http://phpmailer.sourceforge.net/ phpmailer].',
 260+ 'ea-heading' => '=== Send siden [[$1]] som e-post ===',
 261+ 'ea-fromgroup' => 'Fra gruppe:',
 262+ 'ea-articlesend' => 'Siden «$1» sendt fra $2',
 263+ 'ea-noarticle' => 'Oppgi en side du vil sende, for eksempel [[Special:EmailArticle/{{MediaWiki:Mainpage}}]].',
 264+ 'ea-norecipients' => 'Ingen gyldige e-postadresser funnet.',
 265+ 'ea-listrecipients' => '=== Liste over $1 {{PLURAL:$1|mottaker|mottakere}} ===',
 266+ 'ea-error' => "'''Feil under sending av [[$1]]:''' ''$2''",
 267+ 'ea-denied' => 'Ingen adgang',
 268+ 'ea-sent' => "Siden [[$1]] ble sendt til '''$2''' {{PLURAL:$2|mottaker|mottakere}} av [[User:$3|$3]].",
 269+ 'ea-selectrecipients' => 'Velg mottakere',
 270+ 'ea-compose' => 'Skriv inn innhold',
 271+ 'ea-selectlist' => "Ytterligere mottakere som sidetitler eller e-postadresser
 272+* ''skill elementer med , ; * \\n
 273+* ''listen kan inneholde maler og parserfunksjoner''",
 274+ 'ea-show' => 'Vis mottakere',
 275+ 'ea-send' => 'Send',
 276+ 'ea-subject' => 'Skriv inn et emne for e-posten',
 277+ 'ea-header' => 'Fyll innholdet med en valgfri beskjed (wikitekst)',
 278+ 'ea-selectcss' => 'Angi en CSS-stilmal',
 279+);
 280+
 281+/** Occitan (Occitan)
 282+ * @author Cedric31
 283+ */
 284+$messages['oc'] = array(
 285+ 'emailarticle' => 'Mandar l’article per corrièr electronic',
 286+ 'ea-desc' => 'Manda lo rendut d’una pagina HTML a una adreça electronica o a una tièra d’adreças en utilizant [http://phpmailer.sourceforge.net phpmailer]',
 287+ 'ea-heading' => '=== Mandadís de la pagina [[$1]] per corrièr electronic ===',
 288+ 'ea-fromgroup' => 'Dempuèi lo grop :',
 289+ 'ea-articlesend' => 'Pagina « $1 » mandada dempuèi $2',
 290+ 'ea-noarticle' => 'Especificatz una pagina de mandar, per exemple [[Special:EmailArticle/Acuèlh]]',
 291+ 'ea-norecipients' => "Cap d'adreça de corrièr electronic pas trobada !",
 292+ 'ea-listrecipients' => '=== Tièra de $1 {{PLURAL:$1|destinatari|destinataris}} ===',
 293+ 'ea-error' => "'''Error del mandadís de [[$1]] :''' ''$2''",
 294+ 'ea-denied' => 'Permission refusada',
 295+ 'ea-sent' => "L'article [[$1]] es estat mandat amb succès a '''$2''' {{PLURAL:$2|destinatari|destinataris}} per [[User:$3|$3]].",
 296+ 'ea-selectrecipients' => 'Seleccionar los destinataris',
 297+ 'ea-compose' => 'Compausar lo contengut',
 298+ 'ea-selectlist' => "Destinataris suplementaris coma los títols d'articles o las adreças de corrièr electronic
 299+* ''separar los articles amb , : * \\n''
 300+* ''la tièra pòt conténer de modèls e de foncions parsaires''",
 301+ 'ea-show' => 'Visionar los destinataris',
 302+ 'ea-send' => 'Mandar !',
 303+ 'ea-subject' => 'Entrar una linha « objècte » pel corrièr electronic',
 304+ 'ea-header' => 'Apondre lo contengut al començament amb un messatge facultatiu (tèxt wiki)',
 305+ 'ea-selectcss' => "Seleccionar un fuèlh d'estil CSS",
 306+);
 307+
 308+/** Slovak (Slovenčina)
 309+ * @author Helix84
 310+ */
 311+$messages['sk'] = array(
 312+ 'emailarticle' => 'Poslať stránku emailom',
 313+ 'ea-desc' => 'Poslať stránku vo formáte HTML na emailovú adresu alebo zoznam adries pomocou [http://phpmailer.sourceforge.net phpmailer].',
 314+ 'ea-heading' => '=== Poslanie stránky [[$1]] emailom ===',
 315+ 'ea-fromgroup' => 'Zo skupiny:',
 316+ 'ea-articlesend' => 'Článok „$1” poslaný z $2',
 317+ 'ea-noarticle' => 'Prosím, uveďte stránku, ktorú chcete poslať, napr. [[Special:EmailArticle/Hlavná stránka]].',
 318+ 'ea-norecipients' => 'Nebola nájdená platná emailová adresa!',
 319+ 'ea-listrecipients' => '=== Zoznam $1 {{PLURAL:$1|príjemcu|príjemcov}} ===',
 320+ 'ea-error' => "'''Chyba pri odosielaní [[$1]]:''' ''$2''",
 321+ 'ea-denied' => 'Nemáte potrebné oprávnenie',
 322+ 'ea-sent' => "[[User:$3|$3]] úspešne poslal stránku [[$1]] '''$2''' {{PLURAL:$2|používateľovi|používateľom}}.",
 323+ 'ea-selectrecipients' => 'Vybrať príjemcov',
 324+ 'ea-compose' => 'Napísať obsah správy',
 325+ 'ea-selectlist' => "Ďalší príjemci vo forme názvov stránok alebo emailových adries
 326+*''položky oddeľujte pomocu , ; * \\n
 327+*''zoznam môže obsahovať šablóny a funkcie syntaktického analyzátora''",
 328+ 'ea-show' => 'Zobraziť príjemcov',
 329+ 'ea-send' => 'Poslať!',
 330+ 'ea-subject' => 'Zadajte predmet emailu',
 331+ 'ea-header' => 'Pred obsah pridať (nepovinne) správu (wikitext)',
 332+ 'ea-selectcss' => 'Vyberte CSS štýl',
 333+);
 334+
 335+/** Sundanese (Basa Sunda)
 336+ * @author Irwangatot
 337+ */
 338+$messages['su'] = array(
 339+ 'ea-send' => 'Kintun!',
 340+);
 341+
 342+/** Swedish (Svenska)
 343+ * @author M.M.S.
 344+ */
 345+$messages['sv'] = array(
 346+ 'emailarticle' => 'E-posta sida',
 347+ 'ea-desc' => 'Skicka en renderad HTML-sida till en e-postadress eller en lista över adresser som använder [http://phpmailer.sourceforge.net phpmailer].',
 348+ 'ea-heading' => '=== E-posta sidan [[$1]] ===',
 349+ 'ea-fromgroup' => 'Från grupp:',
 350+ 'ea-articlesend' => 'Artikeln "$1" skickades från $2',
 351+ 'ea-noarticle' => 'Var god ange en sida att skicka, för exempel [[Special:EmailArticle/Main Page]].',
 352+ 'ea-norecipients' => 'Inga giltiga e-postadresser hittades!',
 353+ 'ea-listrecipients' => '=== Lista över $1 {{PLURAL:$1|mottagare|mottagare}} ===',
 354+ 'ea-error' => "'''Fel under sändande av [[$1]]:''' ''$2''",
 355+ 'ea-denied' => 'Åtkomst nekas',
 356+ 'ea-sent' => "Sidan [[$1]] har skickats till '''$2''' {{PLURAL:$2|mottagare|mottagare}} av [[User:$3|$3]].",
 357+ 'ea-selectrecipients' => 'Ange mottagare',
 358+ 'ea-compose' => 'Komponera innehåll',
 359+ 'ea-selectlist' => "Ytterligare mottagare som sidtitlar eller e-postadresser
 360+*''separera element med, ; * \\n
 361+*''listor kan innehålla mallar och parser-funktioner''",
 362+ 'ea-show' => 'Visa mottagare',
 363+ 'ea-send' => 'Skicka!',
 364+ 'ea-subject' => 'Ange ett ämne för e-brevet',
 365+ 'ea-header' => 'Fyll innehållet med ett valfritt meddelande (wikitext)',
 366+ 'ea-selectcss' => 'Ange en CSS-stilmall',
 367+);
 368+
 369+/** Telugu (తెలుగు)
 370+ * @author వైజాసత్య
 371+ * @author Veeven
 372+ */
 373+$messages['te'] = array(
 374+ 'ea-denied' => 'అనుమతిని నిరాకరించాం',
 375+ 'ea-send' => 'పంపించు!',
 376+);
 377+
 378+/** Vietnamese (Tiếng Việt)
 379+ * @author Vinhtantran
 380+ */
 381+$messages['vi'] = array(
 382+ 'emailarticle' => 'Trang thư điện tử',
 383+ 'ea-desc' => 'Gửi trang HTML giản lược đến một địa chỉ hoặc danh sách các địa chỉ thư điện tử dùng [http://phpmailer.sourceforge.net phpmailer].',
 384+ 'ea-heading' => '=== Gửi trang [[$1]] ===',
 385+ 'ea-noarticle' => 'Xin hãy xác định trang muốn gửi, ví dụ [[Special:EmailArticle/Trang_Chính]].',
 386+ 'ea-norecipients' => 'Không tìm thấy địa chỉ thư điện tử hợp lệ!',
 387+ 'ea-listrecipients' => '=== Danh sách $1 {{PLURAL:$1|người nhận|người nhận}} ===',
 388+ 'ea-error' => "'''Lỗi khi gửi [[$1]]:''' ''$2''",
 389+ 'ea-sent' => "Trang [[$1]] đã được [[User:$3|$3]] gửi thành công đến '''$2''' {{PLURAL:$2|người nhận|người nhận}}.",
 390+ 'ea-selectrecipients' => 'Chọn người nhận',
 391+ 'ea-compose' => 'Soạn nội dung',
 392+ 'ea-selectlist' => "Những người nhận khác theo tựa đề trang hoặc địa chỉ thư điện tử
 393+*''phân cách các mục bằng , ; * \\n
 394+*''danh sách có thể chứa tiêu bản và hàm cú pháp''",
 395+ 'ea-show' => 'Hiển thị người nhận',
 396+ 'ea-send' => 'Gửi!',
 397+ 'ea-subject' => 'Nhập vào dòng tiêu đề cho thư điện tử',
 398+ 'ea-header' => 'Gắn nội dung với thông điệp tùy chọn (văn bản wiki)',
 399+ 'ea-selectcss' => 'Lựa chọn một kiểu trình bày CSS',
 400+);
 401+
Property changes on: trunk/extensions/EmailPage/EmailPage.i18n.php
___________________________________________________________________
Added: svn:mergeinfo
Added: svn:eol-style
1402 + native
Index: trunk/extensions/EmailPage/EmailPage.php
@@ -0,0 +1,73 @@
 2+<?php
 3+/**
 4+ * EmailArticle extension - Send rendered HTML article to an email address or list of addresses using phpmailer
 5+ *
 6+ * See http://www.mediawiki.org/wiki/Extension:EmailArticle for installation and usage details
 7+ *
 8+ * @package MediaWiki
 9+ * @subpackage Extensions
 10+ * @author Aran Dunkley [http://www.organicdesign.co.nz/nad User:Nad]
 11+ * @copyright © 2007 Aran Dunkley
 12+ * @licence GNU General Public Licence 2.0 or later
 13+ */
 14+
 15+if (!defined('MEDIAWIKI')) die('Not an entry point.');
 16+
 17+define('EMAILARTICLE_VERSION', '1.1.0, 2008-06-04');
 18+
 19+$wgEmailArticleGroup = 'sysop'; # Users must belong to this group to send emails (empty string means anyone can send)
 20+$wgEmailArticleContactsCat = ''; # This specifies the name of a category containing categories of contact articles
 21+$wgEmailArticleCss = 'EmailArticle.css'; # A minimal CSS article to embed in the email (eg. monobook/main.css without portlets, actions etc)
 22+$wgEmailArticleAllowRemoteAddr = array($_SERVER['SERVER_ADDR'],'127.0.0.1'); # Allow anonymous sending from these addresses
 23+$wgEmailArticleAllowAllUsers = false; # Whether to allow sending to all users (the "user" group)
 24+$wgEmailArticleToolboxLink = 'Send to email'; # Link title for toolbox link (set to "" to not have any link in toolbox)
 25+$wgEmailArticleActionLink = 'email'; # Link title for action link (set to "" to not have any action link)
 26+$wgPhpMailerClass = dirname(__FILE__).'/phpMailer_v2.1.0beta2/class.phpmailer.php'; # From http://phpmailer.sourceforge.net/
 27+
 28+if ($wgEmailArticleGroup) $wgGroupPermissions['sysop'][$wgEmailArticleGroup] = true;
 29+
 30+$dir = dirname(__FILE__) . '/';
 31+$wgAutoloadClasses['SpecialEmailArticle'] = $dir . 'EmailArticle_body.php';
 32+$wgExtensionMessagesFiles['EmailArticle'] = $dir . 'EmailArticle.i18n.php';
 33+$wgExtensionAliasesFiles['EmailArticle'] = $dir . 'EmailArticle.alias.php';
 34+$wgSpecialPages['EmailArticle'] = 'SpecialEmailArticle';
 35+
 36+$wgExtensionCredits['specialpage'][] = array(
 37+ 'name' => 'Special:EmailArticle',
 38+ 'author' => '[http://www.organicdesign.co.nz/nad User:Nad]',
 39+ 'description' => 'Send rendered HTML article to an email address or list of addresses using [http://phpmailer.sourceforge.net phpmailer].',
 40+ 'descriptionmsg' => 'ea-desc',
 41+ 'url' => 'http://www.mediawiki.org/wiki/Extension:EmailArticle',
 42+ 'version' => EMAILARTICLE_VERSION
 43+);
 44+
 45+# If form has been posted, include the phpmailer class
 46+if (isset($_REQUEST['ea-send'])) require_once($wgPhpMailerClass);
 47+
 48+# Add toolbox and action links
 49+if ($wgEmailArticleToolboxLink) {
 50+ $wgHooks['MonoBookTemplateToolboxEnd'][] = 'wfEmailArticleToolboxLink';
 51+}
 52+
 53+if ($wgEmailArticleActionLink) {
 54+ $wgHooks['SkinTemplateTabs'][] = 'wfEmailArticleActionLink';
 55+}
 56+
 57+function wfEmailArticleToolboxLink() {
 58+ global $wgEmailArticleToolboxLink,$wgTitle;
 59+ if (is_object($wgTitle)) {
 60+ $url = Title::makeTitle(NS_SPECIAL,'EmailArticle')->getLocalURL('ea-title='.$wgTitle->getPrefixedText());
 61+ echo("<li><a href=\"$url\">$wgEmailArticleToolboxLink</li>");
 62+ }
 63+ return true;
 64+}
 65+
 66+
 67+function wfEmailArticleActionLink(&$skin,&$actions) {
 68+ global $wgEmailArticleActionLink,$wgTitle;
 69+ if (is_object($wgTitle)) {
 70+ $url = Title::makeTitle(NS_SPECIAL,'EmailArticle')->getLocalURL('ea-title='.$wgTitle->getPrefixedText());
 71+ $actions['email'] = array('text' => $wgEmailArticleActionLink, 'class' => false, 'href' => $url);
 72+ }
 73+ return true;
 74+}
Property changes on: trunk/extensions/EmailPage/EmailPage.php
___________________________________________________________________
Added: svn:mergeinfo
Added: svn:eol-style
175 + native

Past revisions this follows-up on

RevisionCommit summaryAuthorDate
r37619* rename EmailArticle to EmailPage...siebrand15:51, 13 July 2008

Status & tagging log