499d56b8fbe4b0b018f0d6bcf4bb05700883f251
2 /********************************************************************************
3 * include/posts.inc.php : class for posts
4 * -----------------------
6 * This file is part of the banana distribution
7 * Copyright: See COPYING files that comes with this distribution
8 ********************************************************************************/
24 * @param $_id STRING MSGNUM or MSGID (a group should be selected in this case)
26 function BananaPost($_id)
32 if ($body = $banana->nntp
->body($_id)) {
33 $this->body
= join("\n", $body);
35 return ($this = null
);
38 if (isset($this->headers
['content-transfer-encoding'])) {
39 if (preg_match("/base64/", $this->headers
['content-transfer-encoding'])) {
40 $this->body
= base64_decode($this->body
);
41 } elseif (preg_match("/quoted-printable/", $this->headers
['content-transfer-encoding'])) {
42 $this->body
= quoted_printable_decode($this->body
);
46 if (preg_match('!charset=([^;]*)\s*(;|$)!', $this->headers
['content-type'], $matches)) {
47 $this->body
= iconv($matches[1], 'iso-8859-1', $this->body
);
54 $hdrs = $banana->nntp
->head($this->id
);
61 foreach ($hdrs as $line) {
62 if (preg_match("/^[\t\r ]+/", $line)) {
63 $line = ($hdr=="X-Face"?
"":" ").ltrim($line);
64 if (in_array($hdr, $banana->parse_hdr
)) {
65 $this->headers
[$hdr] .= $line;
68 list($hdr, $val) = split(":[ \t\r]*", $line, 2);
69 $hdr = strtolower($hdr);
70 if (in_array($hdr, $banana->parse_hdr
)) {
71 $this->headers
[$hdr] = $val;
76 foreach ($banana->hdecode
as $hdr) {
77 if (isset($this->headers
[$hdr])) {
78 $this->headers
[$hdr] = headerDecode($this->headers
[$hdr]);
82 $this->name
= $this->headers
['from'];
83 $this->name
= preg_replace('/<[^ ]*>/', '', $this->name
);
84 $this->name
= trim($this->name
);
87 function checkcancel()
89 if (function_exists('hook_checkcancel')) {
90 return hook_checkcancel($this->headers
);
92 return ($this->headers
['from'] == $_SESSION['name']." <".$_SESSION['mail'].">");
99 $res = '<table class="bicol banana_msg" cellpadding="0" cellspacing="0">';
100 $res .= '<tr><th colspan="2">'._b_('En-tĂȘtes').'</th></tr>';
102 foreach ($banana->show_hdr
as $hdr) {
103 if (isset($this->headers
[$hdr])) {
104 $res2 = formatdisplayheader($hdr, $this->headers
[$hdr]);
106 $res .= '<tr><td class="hdr">'.header_translate($hdr)."</td><td class='val'>$res2</td></tr>\n";
111 $res .= '<tr><th colspan="2">'._b_('Corps').'</th></tr>';
112 $res .= '<tr><td colspan="2"><pre>'.formatbody($this->body
).'</pre></td></tr>';
114 $res .= '<tr><th colspan="2">'._b_('apercu').'</th></tr>';
115 $ndx = $banana->spool
->getndx($this->id
);
116 $res .= '<tr><td class="thrd" colspan="2">'.$banana->spool
->to_html($ndx-$banana->tbefore
, $ndx+
$banana->tafter
, $ndx).'</td></tr>';
118 return $res.'</table>';