Author: Jim Winstead (jimwins)
Date: 2024-08-23T16:42:44-07:00

Commit: 
https://github.com/php/web-news/commit/798f0ec762f4376c9f782be88d2e99d253d37a0c
Raw diff: 
https://github.com/php/web-news/commit/798f0ec762f4376c9f782be88d2e99d253d37a0c.diff

Add header for each group with closed/moderated and subscription address

Changed paths:
  M  group.php
  M  lib/common.php


Diff:

diff --git a/group.php b/group.php
index 91f101e..0c93455 100644
--- a/group.php
+++ b/group.php
@@ -69,6 +69,36 @@
         echo '</nav>';
         echo '<section class="content">';
         echo '<h1>' . htmlspecialchars($group, ENT_QUOTES, "UTF-8") . '</h1>';
+        if ($i == 0) {
+            /* Special header of info for the main page for a group */
+            $groups = $nntpClient->listGroups($group);
+
+            if ($groups[$group]['status'] == 'n') {
+?>
+                <p class="warning">
+                    <strong>Warning:</strong> This list is closed to new posts 
and subscribers.
+                </p>
+<?php
+            } else {
+                if ($groups[$group]['status'] == 'm') {
+?>
+                <p class="warning">
+                    <strong>Note:</strong> This list is only for
+                    announcements, so only approved posters can send messages.
+                </p>
+<?php
+                }
+                $subscription_address = 
htmlspecialchars(get_subscribe_address($group));
+?>
+                <p>
+                    Subscribe to this list by sending a blank email to
+                    <a href="mailto:<?= $subscription_address ?>">
+                      <?= $subscription_address ?>
+                    </a>
+                </p>
+<?php
+            }
+        }
         navbar($group, $overview['group']['low'], $overview['group']['high'], 
$overview['group']['start']);
         echo ' <div class="responsive-table">' . "\n";
         echo '  <table class="standard">' . "\n";
diff --git a/lib/common.php b/lib/common.php
index 149ab12..f0936dd 100644
--- a/lib/common.php
+++ b/lib/common.php
@@ -217,3 +217,34 @@ function format_date($d)
     $d = gmdate('r', $d);
     return str_replace(" ", "&nbsp;", $d);
 }
+
+/*
+ * Translate a group name to a subscription address for the list. It's almost
+ * easy but then we have a bunch of special cases.
+ */
+function get_subscribe_address($group)
+{
+    $address = str_replace('.', '-', $group); // php.internals -> php-internals
+    $address = str_replace('php-doc-', 'doc-', $address); // php-doc-fr -> 
doc-fr
+    $address = str_replace('php-pear-', 'pear-', $address); // php-pear-dev -> 
pear-dev
+    $address = str_replace('php-pecl-', 'pecl-', $address); // php-pecl-dev -> 
pecl-dev
+    $address = str_replace('php-standards', 'standards-', $address); // 
php-standards-cvs -> standards-cvs
+
+    $special = [
+        'doc-chm' => 'php-doc-chm', # revert earlier removal of php-
+        'php-internals' => 'internals',
+        'php-internals-win' => 'internals-win',
+        'php-doc' => 'phpdoc',
+        'php-general-bg' => 'general-bg',
+        'php-general-es' => 'general-es',
+        'php-git-pulls' => 'git-pulls',
+        'php-pres' => 'pres',
+        'php-pdo' => 'pdo',
+    ];
+
+    if (array_key_exists($address, $special)) {
+        $address = $special[$address];
+    }
+
+    return $address . '-subscr...@lists.php.net';
+}

Reply via email to