200 |
} |
} |
201 |
|
|
202 |
function showPageSelectMenu($article_count,$first) { |
function showPageSelectMenu($article_count,$first) { |
203 |
global $articles_per_page,$file_thread,$file_framethread,$name; |
global $articles_per_page,$name; |
|
/* if (isset($file_framethread)) { |
|
|
$thread=$file_framethread; |
|
|
} else { |
|
|
$thread=$file_thread; |
|
|
} |
|
|
*/ |
|
204 |
$pages=ceil($article_count / $articles_per_page); |
$pages=ceil($article_count / $articles_per_page); |
205 |
if ($article_count > $articles_per_page) |
if ($article_count > $articles_per_page) |
206 |
for ($i = 0; $i < $pages; $i++) { |
for ($i = 0; $i < $pages; $i++) { |
207 |
echo '['; |
echo '['; |
208 |
if ($first != $i*$articles_per_page+1) |
if ($first != $i*$articles_per_page+1) |
209 |
echo '<a href="'.($i*$articles_per_page+1).'_'. |
echo '<a href="'.($i*$articles_per_page+1).'-'. |
210 |
($i+1)*$articles_per_page.'.html">'; |
($i+1)*$articles_per_page.'">'; |
211 |
echo ($i*$articles_per_page+1).'-'; |
echo ($i*$articles_per_page+1).'-'; |
212 |
if ($i == $pages-1) { |
if ($i == $pages-1) { |
213 |
echo $article_count; |
echo $article_count; |
378 |
*/ |
*/ |
379 |
function showgroups($gruppen) { |
function showgroups($gruppen) { |
380 |
if ($gruppen == false) return; |
if ($gruppen == false) return; |
381 |
global $file_thread,$text_groups; |
global $uri_thread,$text_groups; |
382 |
$c = count($gruppen); |
$c = count($gruppen); |
383 |
echo "<table>\n"; |
echo "<table>\n"; |
384 |
echo "<tr><td>#</td><td>".$text_groups["newsgroup"]. |
echo "<tr><td>#</td><td>".$text_groups["newsgroup"]. |
390 |
echo '<a '; |
echo '<a '; |
391 |
if ((isset($frame_threadframeset)) && ($frame_threadframeset != "")) |
if ((isset($frame_threadframeset)) && ($frame_threadframeset != "")) |
392 |
echo 'target="'.$frame_threadframeset.'" '; |
echo 'target="'.$frame_threadframeset.'" '; |
393 |
echo 'href="'.$file_thread.'/'.urlencode($g->name).'/index.html">'.$g->name."</a></td>\n"; |
echo 'href="'.$uri_thread.'/'.encode_newsgroup ($g->name).'/">'.$g->name."</a></td>\n"; |
394 |
echo "<td>$g->description</td></tr>\n"; |
echo "<td>$g->description</td></tr>\n"; |
395 |
flush(); |
flush(); |
396 |
} |
} |
397 |
echo "</table>\n"; |
echo "</table>\n"; |
398 |
} |
} |
399 |
|
|
400 |
|
function encode_newsgroup ($groupname) { |
401 |
|
return str_replace ('.', ':', urlencode ($groupname)); |
402 |
|
} |
403 |
|
|
404 |
/* |
/* |
405 |
* gets a list of aviable articles in the group $groupname |
* gets a list of aviable articles in the group $groupname |
406 |
*/ |
*/ |
449 |
} |
} |
450 |
} |
} |
451 |
|
|
|
function getTimestamp($value) { |
|
|
$months=array("Jan"=>1,"Feb"=>2,"Mar"=>3,"Apr"=>4,"May"=>5,"Jun"=>6,"Jul"=>7,"Aug"=>8,"Sep"=>9,"Oct"=>10,"Nov"=>11,"Dec"=>12); |
|
|
$value=str_replace(" "," ",$value); |
|
|
$d=split(" ",$value,5); |
|
|
if (strcmp(substr($d[0],strlen($d[0])-1,1),",") == 0) { |
|
|
$date[0]=$d[1]; // day |
|
|
$date[1]=$d[2]; // month |
|
|
$date[2]=$d[3]; // year |
|
|
$date[3]=$d[4]; // hours:minutes:seconds |
|
|
} else { |
|
|
$date[0]=$d[0]; // day |
|
|
$date[1]=$d[1]; // month |
|
|
$date[2]=$d[2]; // year |
|
|
$date[3]=$d[3]; // hours:minutes:seconds |
|
|
} |
|
|
$time=split(":",$date[3]); |
|
|
$timestamp=mktime($time[0],$time[1],$time[2],$months[$date[1]],$date[0],$date[2]); |
|
|
return $timestamp; |
|
|
} |
|
452 |
|
|
453 |
function parse_header($hdr,$number="") { |
function parse_header($hdr,$number="") { |
454 |
for ($i=count($hdr)-1; $i>0; $i--) |
for ($i=count($hdr)-1; $i>0; $i--) |
518 |
$header->references[]=trim($ref); |
$header->references[]=trim($ref); |
519 |
break; |
break; |
520 |
case "date": |
case "date": |
521 |
$header->date=getTimestamp(trim($value)); |
$header->date = strtotime(trim($value)); |
522 |
break; |
break; |
523 |
case "followup-to": |
case "followup-to": |
524 |
$header->followup=trim($value); |
$header->followup=trim($value); |
554 |
function decode_structured_body ($body) { |
function decode_structured_body ($body) { |
555 |
$patterns = array ( |
$patterns = array ( |
556 |
"/\"((?:[^\"\\\\]+|\\\\.)*)\"/e", |
"/\"((?:[^\"\\\\]+|\\\\.)*)\"/e", |
557 |
"/\(((?:[^()\\\\]+|\\\\.|(?:\((?:[^()\\\\]+|\\\\.|(?:\((?:[^)\\\\]+|\\\\.\ |
"/\(((?:[^()\\\\]+|\\\\.|(?:\((?:[^()\\\\]+|\\\\.|(?:\((?:[^)\\\\]+|\\\\.\)*\))*\)))*)))\)/e", |
|
)*\)))*\)))*)\)/e", |
|
558 |
); |
); |
559 |
$replace = array ( |
$replace = array ( |
560 |
"mb_convert_encoding(fake_jisx0213(decode_quoted_pair('\\1')),'EUC-JP','auto')", |
"mb_convert_encoding(fake_jisx0213(decode_quoted_pair('\\1')),'EUC-JP','auto')", |
853 |
return($comment); |
return($comment); |
854 |
} |
} |
855 |
|
|
856 |
|
function uri_to_link($comment, $group = "", $msgidregex = "") { |
857 |
|
global $frame_externallink; |
858 |
|
global $file_article; |
859 |
|
$comment = preg_replace ( |
860 |
|
'"((?:https?|mailto|urn|news|ftp|irc|mid|data|nntp|gother)):((?:[-_.!~*\'()A-Z0-9:;@=+$,%?/]+|&)+)(#(?:[-_.!~*\'()A-Z0-9;/?:@&=+$,%]+|&)+)?"ie', |
861 |
|
'uri_to_link_uri("\1", "\2", "\3")', |
862 |
|
$comment); |
863 |
|
return($comment); |
864 |
|
} |
865 |
|
|
866 |
|
function uri_to_link_uri ($scheme, $body, $fragment) { |
867 |
|
global $file_article; |
868 |
|
switch (strtolower($scheme)) { |
869 |
|
case "urn": |
870 |
|
case "data": |
871 |
|
$uri = '/uri-res/N2L?'.urlencode($scheme.':'.$body); |
872 |
|
break; |
873 |
|
case "news": |
874 |
|
if (!preg_match('"^//"', $body)) { |
875 |
|
$uri = "../../".addslashes($file_article).'/junk/%3C'.$nbody.'%3E'; |
876 |
|
} else { |
877 |
|
$uri = $scheme.':'.$body; |
878 |
|
} |
879 |
|
break; |
880 |
|
case "mid": |
881 |
|
$nbody = preg_replace('"/.*$"', "", $body); |
882 |
|
$uri = "../../".addslashes($file_article).'/junk/%3C'.$nbody.'%3E'; |
883 |
|
break; |
884 |
|
default: |
885 |
|
$uri = $scheme.':'.$body; |
886 |
|
break; |
887 |
|
} |
888 |
|
$uri = $uri . $fragment; |
889 |
|
if (!empty($uri)) { |
890 |
|
$uri = '<a href="'.$uri.'">'.$scheme.':'.$body.$fragment.'</a>'; |
891 |
|
} |
892 |
|
return $uri; |
893 |
|
} |
894 |
|
|
895 |
|
|
896 |
|
|
954 |
$article->subject=$subject; |
$article->subject=$subject; |
955 |
} |
} |
956 |
if ($overviewfmt[$i]=="Date:") { |
if ($overviewfmt[$i]=="Date:") { |
957 |
$article->date=getTimestamp($over[$i+1]); |
$article->date = strtotime($over[$i+1]); |
958 |
} |
} |
959 |
if ($overviewfmt[$i]=="From:") { |
if ($overviewfmt[$i]=="From:") { |
960 |
$fromline=address_decode(headerDecode($over[$i+1]),"nirgendwo"); |
$fromline=address_decode(headerDecode($over[$i+1]),"nirgendwo"); |
1543 |
if ((isset($article_show[$fields[$i]])) && ($article_show[$fields[$i]])) { |
if ((isset($article_show[$fields[$i]])) && ($article_show[$fields[$i]])) { |
1544 |
echo "<div class=\"field ".$fields[$i]."\"><span class=\"name\">" |
echo "<div class=\"field ".$fields[$i]."\"><span class=\"name\">" |
1545 |
.$text_header[$fields[$i]]."</span> <span class=\"body\">" |
.$text_header[$fields[$i]]."</span> <span class=\"body\">" |
1546 |
.htmlspecialchars(decode_structured_body( |
.uri_to_link(htmlspecialchars(decode_structured_body( |
1547 |
join(', ', $head->field[$fields[$i]]))) |
join(', ', $head->field[$fields[$i]])))) |
1548 |
."</span></div>\n"; |
."</span></div>\n"; |
1549 |
} |
} |
1550 |
} |
} |
1556 |
for ($j = 0; $j > count($head->field[$fields[$i]]); $j++) { |
for ($j = 0; $j > count($head->field[$fields[$i]]); $j++) { |
1557 |
echo "<div class=\"field ".$fields[$i]."\"><span class=\"name\">" |
echo "<div class=\"field ".$fields[$i]."\"><span class=\"name\">" |
1558 |
.$text_header[$fields[$i]]."</span> <span class=\"body\">" |
.$text_header[$fields[$i]]."</span> <span class=\"body\">" |
1559 |
.htmlspecialchars(decode_unstructured_body( |
.uri_to_link(htmlspecialchars(decode_unstructured_body( |
1560 |
$head->field[$fields[$i]][$j])) |
$head->field[$fields[$i]][$j]))) |
1561 |
."</span></div>\n"; |
."</span></div>\n"; |
1562 |
} |
} |
1563 |
} |
} |
1629 |
// } |
// } |
1630 |
// echo $body[$i]."\n"; |
// echo $body[$i]."\n"; |
1631 |
$b=$body[$i]; |
$b=$body[$i]; |
1632 |
echo html_parse(htmlspecialchars($b)."\n", $group, $msgidregex); |
echo uri_to_link(htmlspecialchars($b)."\n", $group, $msgidregex); |
1633 |
} |
} |
1634 |
echo "\n</pre>\n"; |
echo "\n</pre>\n"; |
1635 |
} else { |
} else { |