forked from php/web-php
-
Notifications
You must be signed in to change notification settings - Fork 0
/
mailing-lists.php
394 lines (347 loc) · 14.1 KB
/
mailing-lists.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
<?php
$_SERVER['BASE_PAGE'] = 'mailing-lists.php';
include_once __DIR__ . '/include/prepend.inc';
include_once __DIR__ . '/include/posttohost.inc';
include_once __DIR__ . '/include/email-validation.inc';
$SIDEBAR_DATA = '
<h3>Would like to unsubscribe yourself?</h3>
<p>
If you have trouble getting off from any of our mailing lists, or
would like to unsubscribe from a mailing list not listed here, we
have more information for you on <a href="/unsub.php">the
unsubscription page</a>.
</p>
<h3>Other PHP related mailing lists</h3>
<p>
Find the <a href="http://pear.php.net/support/lists.php">PEAR
lists</a>, the <a href="http://pecl.php.net/support.php">PECL
lists</a>, and the <a href="http://gtk.php.net/resources.php">PHP-GTK
lists</a> on their own pages.
</p>
<a id="local"></a>
<h3>Local Mailing Lists and Newsgroups</h3>
<ul class="toc">
<li><a href="http://groups.google.com/group/dk.edb.internet.webdesign.serverside.php/topics">Danish Newsgroup</a></li>
<li><a href="http://groups.google.com/group/fr.comp.lang.php/topics">French Newsgroup</a></li>
<li><a href="http://lists.phpbar.de/mailman/listinfo">German Mailing List</a></li>
<li><a href="http://groups.google.com/group/de.comp.lang.php.misc/topics">German Newsgroup</a> (also other topics under de.comp.lang.php)</li>
<li><a href="http://groups.yahoo.com/group/php_greek/">Greek Mailing List</a></li>
<li><a href="http://weblabor.hu/levlistak">Hungarian Mailing List</a></li>
<li><a href="http://www.domeus.it/circles/php">Italian Mailing List (at PHPItalia)</a></li>
<li><a href="http://ml.php.gr.jp/">The Japanese PHP User Group\'s Mailing lists</a></li>
<li><a href="http://br.groups.yahoo.com/group/php-pt/">Portuguese Mailing List</a></li>
</ul>
';
site_header("Mailing Lists", ["current" => "help"]);
// Some mailing list is selected for [un]subscription
if (isset($_POST['action'])) {
// No error found yet
$error = "";
// Check email address
if (empty($_POST['email']) || $_POST['email'] == 'user@example.com' ||
$_POST['email'] == 'fake@from.net' || !is_emailable_address($_POST['email'])) {
$error = "You forgot to specify an email address to be added to the list, or specified an invalid address." .
"<br>Please go back and try again.";
}
// Check if any mailing list was selected
elseif (empty($_POST['maillist'])) {
$error = "You need to select at least one mailing list to subscribe to." .
"<br>Please go back and try again.";
}
// Seems to be a valid email address
else {
// Decide on request mode, email address part and IP address
$request = strtolower($_POST['action']);
if ($request != "subscribe" && $request != "unsubscribe") {
$request = "subscribe";
}
$remote_addr = i2c_realip();
// Get in contact with main server to [un]subscribe the user
$result = posttohost(
"https://main.php.net/entry/subscribe.php",
[
"request" => $request,
"email" => $_POST['email'],
"maillist" => $_POST['maillist'],
"remoteip" => $remote_addr,
"referer" => $MYSITE . "mailing-lists.php"
]
);
// Provide error if unable to [un]subscribe
if ($result) {
$error = "We were unable to subscribe you due to some technical problems.<br>" .
"Please try again later.";
}
}
// Give error information or success report
if (!empty($error)) {
echo "<p class=\"formerror\">$error</p>";
} else {
?>
<p>
A request has been entered into the mailing list processing queue. You
should receive an email at <?php echo clean($_POST['email']); ?> shortly describing
how to complete your request.
</p>
<?php
}
site_footer();
exit;
}
// No form submitted
?>
<h1>Mailing Lists</h1>
<p>
There are many PHP-related mailing lists available on our server.
Most of them are archived, and all of them are available as newsgroups
on our <a href="news://news.php.net">news server</a>. You can search
some mailing lists right from this website from <a href="/search.php">the
search page</a> or by using the search input box selecting the
appropriate option on the top-right of every page.
</p>
<p>
There is an experimental web interface for the news server at
<a href="http://news.php.net/">http://news.php.net/</a>, and
there are also other archives provided by
<a href="http://marc.info/">Marc</a>.
</p>
<h2>Twitter</h2>
<p>
The PHP team maintains an official PHP.net account on twitter,
<a href="https://twitter.com/official_php">@official_php</a>, for those
interested in following news and other announcements from the PHP project.
</p>
<h2>Mailing List Posting guidelines</h2>
<p>
When posting to mailing lists or newsgroups, please keep the following in mind:
</p>
<ul>
<li>
Use a valid email address. Every new poster's email address
is checked for validity through confirmation.
</li>
<li>
Send plain ASCII messages, no HTML-formatted emails please.
</li>
<li>
Turn on word wrapping so your entire message doesn't show up on
a single line.
</li>
<li>
Be sure to click <strong>Reply-All</strong> to reply to list. Clicking
<strong>Reply</strong> will email the author of the message privately.
</li>
<li>
No attachments please, just post a URL if you want someone to
look at something.
</li>
<li>
Don't GPG/PGP sign your messages. If you want people to be able
to send you encrypted email, stick your key-locator in your signature
</li>
<li>
Don't hijack other peoples' threads. To post on a new topic, start
a new message, don't reply and just change the subject.
</li>
<li>
Check the archives before posting a question, chances are it has
already been asked and answered a few times.
</li>
<li>
When asking a question, don't just tell us, "it doesn't work".
Tell us what you are trying to accomplish, a <strong>short</strong> code
snippet showing how you tried to solve it, what you expected to get and
what you got instead.
</li>
</ul>
<p>
And make sure you have read our
<a href="https://github.com/php/php-src/blob/master/docs/mailinglist-rules.md">Mailinglist Rules</a>.
</p>
<?php
// array of lists (list, name, short desc., moderated, archive, digest, newsgroup)
$general_mailing_lists = [
'General mailing lists for PHP users',
[
'php-announce', 'Announcements',
'Announcements of new PHP releases are sent to this very low-volume list',
true, false, false, "php.announce"
],
[
'php-general', 'General user list',
'This is a high volume list for general PHP support; ask PHP questions here',
false, true, true, "php.general"
],
[
'php-windows', 'Windows PHP users list',
'Using PHP on Microsoft Windows',
false, true, true, "php.windows"
],
'Subject specific lists for PHP users',
[
'php-install', 'Installation issues and problems',
'How to install PHP with particular configurations and servers',
false, true, true, "php.install"
],
[
'php-db', 'Databases and PHP',
'This list is for the discussion of PHP database topics',
false, true, true, "php.db"
],
[
'php-i18n', 'Unicode and Internationalization',
'Unicode support, Internationalization (i18n) and localization (l10n) issues and features',
false, true, true, "php.i18n"
],
[
'php-evangelism', 'PHP evangelism mailing list',
'A list for people interested in promoting PHP and learning good reasons to support PHP in the enterprise',
true, true, true, "php.evangelism"
],
[
'soap', 'PHP SOAP list',
'List for the SOAP developers',
false, false, false, 'php.soap'
],
'Non-English language mailing lists',
[
'php-es', 'Spanish PHP Mailing list',
'List for Spanish speaking people interested in PHP',
false, false, false, 'php.general.es'
],
];
// array of lists (list, name, short desc., moderated, archive, digest, newsgroup)
$internals_mailing_lists = [
'PHP and Zend Engine internals lists',
[
'internals', 'Internals list',
'A medium volume list for those who want to help out with the development of PHP',
false, 'php-internals', true, "php.internals"
],
[
'internals-win', 'Windows Internals list',
'A low volume list for those who want to help out with the development of PHP on Windows',
false, false, true, "php.internals.win"
],
[
'php-cvs', 'Git commit list',
'All commits to internals (php-src) and the Zend Engine are posted to this list automatically',
true, true, false, "php.cvs"
],
[
'git-pulls', 'Git pull requests',
'Pull requests from Github',
false, false, false, "php.git-pulls"
],
[
'php-qa', 'Quality Assurance list',
'List for the members of the PHP-QA Team',
false, true, false, "php.qa"
],
[
'php-bugs', 'General bugs',
'General bug activity are posted here',
false, false, false, "php.bugs"
],
[
'standards', 'PHP Standardization and interoperability list',
'Development of language standards',
false, false, false, "php.standards"
],
'PHP internal website mailing lists',
[
'php-webmaster', 'PHP php.net internal infrastructure discussion',
'List for discussing and maintaining the php.net web infrastructure.<br>
For general PHP support questions, see "General Mailing Lists" or the <a href="/support.php">support page</a>',
false, false, false, "php.webmaster"
],
'PHP documentation mailing lists',
[
'phpdoc', 'Documentation discussion',
'List for discussing the PHP documentation',
false, true, false, "php.doc"
],
[
'doc-cvs', 'Documentation changes and commits',
'Changes to the documentation are posted here',
true, "php-doc-cvs", false, "php.doc.cvs"
],
[
'doc-bugs', 'Documentation bugs',
'Documentation bug activity (translations, sources, and build system) are posted here',
true, 'php-doc-bugs', false, "php.doc.bugs"
],
];
// Print out a table for a given list array
function output_lists_table($mailing_lists): void
{
echo '<table cellpadding="5" border="0" class="standard mailing-lists">', "\n";
foreach ($mailing_lists as $listinfo) {
if (!is_array($listinfo)) {
echo "<tr><th>{$listinfo}</th><th>Moderated</th><th>Archive</th>" .
"<th>Newsgroup</th><th>Normal</th><th>Digest</th></tr>\n";
} else {
echo '<tr align="center">';
echo '<td align="left"><strong>' . $listinfo[1] . '</strong> <small><<a href="mailto:' . $listinfo[0] . '@lists.php.net">' . $listinfo[0] . '@lists.php.net</a>></small><br><small>' . $listinfo[2] . '</small></td>';
echo '<td>' . ($listinfo[3] ? 'yes' : 'no') . '</td>';
// Let the list name defined with a string, if the
// list is archived under a different name then php.net
// uses for it (for backward compatibilty for example)
if ($listinfo[4] !== false) {
$larchive = ($listinfo[4] === true ? $listinfo[0] : $listinfo[4]);
} else { $larchive = false; }
echo '<td>' . ($larchive ? "<a href=\"http://marc.info/?l={$larchive}\">yes</a>" : 'n/a') . '</td>';
echo '<td>' . ($listinfo[6] ? "<a href=\"news://news.php.net/{$listinfo[6]}\">yes</a> <a href=\"http://news.php.net/group.php?group={$listinfo[6]}\">http</a>" : 'n/a') . '</td>';
echo '<td><input name="maillist" type="radio" value="' . $listinfo[0] . '"></td>';
echo '<td>' . ($listinfo[5] ? '<input name="maillist" type="radio" value="' . $listinfo[0] . '-digest">' : 'n/a') . '</td>';
echo "</tr>\n";
}
}
echo "</table>\n";
}
?>
<form method="post" action="/mailing-lists.php">
<h2 id="general">General Mailing Lists</h2>
<?php output_lists_table($general_mailing_lists); ?>
<h2 id="internals">Internals Mailing Lists</h2>
<?php output_lists_table($internals_mailing_lists); ?>
<p class="center">
<strong>Email:</strong>
<input type="text" name="email" size="40" value="user@example.com">
<input type="submit" name="action" value="Subscribe">
<input type="submit" name="action" value="Unsubscribe">
</p>
</form>
<p>
You will be sent a confirmation mail at the address you wish to
be subscribed or unsubscribed, and only added to the list after
following the directions in that mail.
</p>
<p>
<strong>Warning:</strong> The PHP users mailing list gets close to 1500-2000
messages per month currently. Do the math. That translates to about 60
messages per day. If your mailbox can't handle this sort of traffic you
might want to consider subscribing to the digest list instead (two messages
per day), using the news server, or reading the mailing list using the
archives.
</p>
<h2>Subscribe via Email</h2>
<p>
If you experience trouble subscribing via the form above, you may also
subscribe by sending an email to the list server.
To subscribe to any mailing list, send an email to
<code><em>listname</em>-subscribe@lists.php.net</code>
(substituting the name of the list for <code><em>listname</em></code>
— for example, <code>php-general-subscribe@lists.php.net</code>).
</p>
<h2>Mailing list options</h2>
<p>
All of the mailing lists hosted at <a
href="http://lists.php.net/">lists.php.net</a> are managed using the <a
href="http://untroubled.org/ezmlm/">ezmlm-idx</a> mailing list software.
There are a variety of commands you can use to modify your subscription.
Either send a message to <code>php-whatever-help@lists.php.net</code> (as in,
<code>php-general-help@lists.php.net</code>) or you can view the commands for
ezmlm <a href="http://untroubled.org/ezmlm/ezman/ezman1.html">here.</a>
</p>
<?php site_footer(); ?>