id = $_id; $this->_header(); if ($body = $banana->nntp->body($_id)) { $this->body = join("\n", $body); } else { return ($this = null); } if (isset($this->headers['content-transfer-encoding'])) { if (preg_match("/base64/", $this->headers['content-transfer-encoding'])) { $this->body = base64_decode($this->body); } elseif (preg_match("/quoted-printable/", $this->headers['content-transfer-encoding'])) { $this->body = quoted_printable_decode($this->body); } } if (preg_match('!charset=([^;]*)\s*(;|$)!', $this->headers['content-type'], $matches)) { $this->body = iconv($matches[1], 'iso-8859-1', $this->body); } } function _header() { global $banana; $hdrs = $banana->nntp->head($this->id); if (!$hdrs) { $this = null; return false; } // parse headers foreach ($hdrs as $line) { if (preg_match("/^[\t\r ]+/", $line)) { $line = ($hdr=="X-Face"?"":" ").ltrim($line); if (in_array($hdr, $banana->parse_hdr)) { $this->headers[$hdr] .= $line; } } else { list($hdr, $val) = split(":[ \t\r]*", $line, 2); $hdr = strtolower($hdr); if (in_array($hdr, $banana->parse_hdr)) { $this->headers[$hdr] = $val; } } } // decode headers foreach ($banana->hdecode as $hdr) { if (isset($this->headers[$hdr])) { $this->headers[$hdr] = headerDecode($this->headers[$hdr]); } } $this->name = $this->headers['from']; $this->name = preg_replace('/<[^ ]*>/', '', $this->name); $this->name = trim($this->name); } function checkcancel() { if (function_exists('hook_checkcancel')) { return hook_checkcancel($this->headers); } return ($this->headers['from'] == $_SESSION['name']." <".$_SESSION['mail'].">"); } function to_html() { global $banana; $res = ''; $res .= ''; foreach ($banana->show_hdr as $hdr) { if (isset($this->headers[$hdr])) { $res2 = formatdisplayheader($hdr, $this->headers[$hdr]); if ($res2) { $res .= '\n"; } } } $res .= ''; $res .= ''; $res .= ''; $ndx = $banana->spool->getndx($this->id); $res .= ''; return $res.'
'._b_('En-têtes').'
'.header_translate($hdr)."$res2
'._b_('Corps').'
'.formatbody($this->body).'
'._b_('apercu').'
'.$banana->spool->to_html($ndx-$banana->tbefore, $ndx+$banana->tafter, $ndx).'
'; } } ?>