예제 #1
0
파일: group.php 프로젝트: ramsey/web-news
            echo "  </item>\n";
            break;
        case 'rdf':
            echo " <item>\n";
            echo "  <title>", format_subject($details['subject'], $charset), "</title>\n";
            echo "  <link>http://{$host}/{$group}/{$articleNumber}</link>\n";
            echo "  <description>", htmlspecialchars(format_author($details['author'], $charset), ENT_QUOTES, "UTF-8"), "</description>\n";
            echo "  <pubDate>{$date822}</pubDate>\n";
            echo " </item>\n";
            break;
        case 'html':
        default:
            echo "   <tr>\n";
            echo "    <td><a href=\"/{$group}/{$articleNumber}\">{$articleNumber}</a></td>\n";
            echo "    <td><a href=\"/{$group}/{$articleNumber}\">";
            echo format_subject($details['subject'], $charset);
            echo "</a></td>\n";
            echo "    <td vcard\">" . format_author($details['author'], $charset) . "</td>\n";
            echo "    <td align=\"center\"><tt>" . format_date($details['date']) . "</tt></td>\n";
            echo "    <td align=\"right\">{$details['lines']}</td>\n";
            echo "   </tr>\n";
    }
}
switch ($format) {
    case 'rss':
        echo " </channel>\n</rss>\n";
        break;
    case 'rdf':
        echo "</rdf:RDF>\n";
        break;
    case 'html':
예제 #2
0
파일: article.php 프로젝트: ramsey/web-news
function start_article($mail, $refsResolved)
{
    echo "  <blockquote>\n";
    echo '   <table border="0" cellpadding="2" cellspacing="2" width="100%">' . "\n";
    # from
    echo '    <tr class="vcard">' . "\n";
    echo '     <td class="headerlabel">From:</td>' . "\n";
    echo '     <td class="headervalue">' . format_author($mail['headers']['from']['raw'], 'utf-8') . "</td>\n";
    # date
    echo '     <td class="headerlabel">Date:</td>' . "\n";
    echo '     <td class="headervalue">' . format_date($mail['headers']['date']) . "</td>\n";
    echo "    </tr>\n";
    # subject
    echo '    <tr>' . "\n";
    echo '     <td class="headerlabel">Subject:</td>' . "\n";
    echo '     <td class="headervalue" colspan="3">' . format_subject($mail['headers']['subject'], 'utf-8') . "</td>\n";
    echo "    </tr>\n";
    echo "    <tr>\n";
    # references
    if (!empty($refsResolved)) {
        echo '     <td class="headerlabel">References:</td>' . "\n";
        echo '     <td class="headervalue">';
        foreach ($refsResolved as $k => $ref) {
            echo "<a href=\"/" . urlencode($ref['group']) . '/' . urlencode($ref['articleId']) . "\">" . ($k + 1) . "</a>&nbsp;";
        }
        echo "</td>\n";
    }
    # groups
    if (!empty($mail['headers']['newsgroups'])) {
        echo '     <td class="headerlabel">Groups:</td>' . "\n";
        echo '     <td class="headervalue">';
        $r = explode(",", rtrim($mail['headers']['newsgroups']));
        while (list($k, $v) = each($r)) {
            echo "<a href=\"/" . urlencode($v) . "\">" . htmlspecialchars($v) . "</a>&nbsp;";
        }
        echo "</td>\n";
    }
    echo "    </tr>\n";
    echo "   </table>\n";
    echo "  </blockquote>\n";
    echo "  <blockquote>\n";
    echo "   <pre>\n";
}
예제 #3
0
파일: article.php 프로젝트: adduc/web-news
function start_article($group, $headers, $charset)
{
    echo "  <blockquote>\n";
    echo '   <table border="0" cellpadding="2" cellspacing="2" width="100%">' . "\n";
    # from
    echo '    <tr class="vcard">' . "\n";
    echo '     <td class="headerlabel">From:</td>' . "\n";
    echo '     <td class="headervalue">' . format_author($headers['from'], $charset) . "</td>\n";
    # date
    echo '     <td class="headerlabel">Date:</td>' . "\n";
    echo '     <td class="headervalue">' . format_date($headers["date"]) . "</td>\n";
    echo "    </tr>\n";
    # subject
    echo '    <tr>' . "\n";
    echo '     <td class="headerlabel">Subject:</td>' . "\n";
    echo '     <td class="headervalue" colspan="3">' . format_subject($headers["subject"], $charset) . "</td>\n";
    echo "    </tr>\n";
    echo "    <tr>\n";
    # references
    if (!empty($headers['references']) || !empty($headers['in-reply-to'])) {
        $ref = $headers["references"] ? $headers["references"] : $headers["in-reply-to"];
        echo '     <td class="headerlabel">References:</td>' . "\n";
        echo '     <td class="headervalue">';
        $r = explode(" ", $ref);
        $c = 1;
        $s = nntp_connect(NNTP_HOST) or die("failed to connect to news server");
        while (list($k, $v) = each($r)) {
            if (!$v) {
                continue;
            }
            $v = trim($v);
            if (!preg_match("/^<.+>\$/", $v)) {
                continue;
            }
            if (strlen($v) > 504) {
                // 512 chars including CRLF
                continue;
            }
            $res2 = nntp_cmd($s, "XPATH {$v}", 223) or print "<!-- failed to get reference article id " . htmlspecialchars($v, ENT_QUOTES, "UTF-8") . " -->";
            list(, $v) = split("/", trim($res2));
            if (empty($v)) {
                continue;
            }
            echo "<a href=\"/{$group}/" . urlencode($v) . "\">" . $c++ . "</a>&nbsp;";
            if ($c > REFERENCES_LIMIT) {
                printf('More than %d references', REFERENCES_LIMIT);
                break;
            }
        }
        echo "</td>\n";
    }
    # groups
    if ($headers["newsgroups"]) {
        echo '     <td class="headerlabel">Groups:</td>' . "\n";
        echo '     <td class="headervalue">';
        $r = explode(",", chop($headers["newsgroups"]));
        while (list($k, $v) = each($r)) {
            echo "<a href=\"/" . urlencode($v) . "\">" . htmlspecialchars($v) . "</a>&nbsp;";
        }
        echo "</td>\n";
    }
    echo "    </tr>\n";
    //while (list($k,$v) = each($headers)) {
    //  echo "<!-- ", htmlspecialchars($k),": ",preg_replace("/-+/", "-", htmlspecialchars($v))," -->\n";
    //}
    echo "   </table>\n";
    echo "  </blockquote>\n";
    echo "  <blockquote>\n";
    echo "   <pre>\n";
}
예제 #4
0
파일: group.php 프로젝트: adduc/web-news
            echo "  </item>\n";
            break;
        case 'rdf':
            echo " <item>\n";
            echo "  <title>", format_subject($subj, $charset), "</title>\n";
            echo "  <link>http://{$host}/{$group}/{$n}</link>\n";
            echo "  <description>", htmlspecialchars(format_author($author, $charset), ENT_QUOTES, "UTF-8"), "</description>\n";
            echo "  <pubDate>{$date822}</pubDate>\n";
            echo " </item>\n";
            break;
        case 'html':
        default:
            echo "   <tr>\n";
            echo "    <td><a href=\"/{$group}/{$n}\">{$n}</a></td>\n";
            echo "    <td><a href=\"/{$group}/{$n}\">";
            echo format_subject($subj, $charset);
            echo "</a></td>\n";
            echo "    <td vcard\">" . format_author($author, $charset) . "</td>\n";
            echo "    <td align=\"center\"><tt>" . format_date($odate) . "</tt></td>\n";
            echo "    <td align=\"right\">{$lines}</td>\n";
            echo "   </tr>\n";
    }
}
switch ($format) {
    case 'rss':
        echo " </channel>\n</rss>\n";
        break;
    case 'rdf':
        echo "</rdf:RDF>\n";
        break;
    case 'html':