if ($this->_split_multipart($this->headers, $this->body)) {
$this->set_body_to_part(0);
} else {
- $this->_split_multipart($mpart_type[1], $mpart_boundary[1]);
+ if(isset($mpart_type)) {
+ $this->_split_multipart($mpart_type[1], $mpart_boundary[1]);
+ }
$this->_find_uuencode();
$this->_fix_charset();
}
*/
function _split_multipart($headers, $body)
{
- if (!preg_match("@multipart/([^;]+);@", $headers['content-type'], $type)) {
+ if (!isset($headers['content-type'])
+ || !preg_match("@multipart/([^;]+);@", $headers['content-type'], $type)) {
return false;
}
{
global $banana;
+ $local_headers = Array();
$lines = split("\n", $part);
while (count($lines)) {
$line = array_shift($lines);
}
}
$local_body = join("\n", $lines);
- if (preg_match("/quoted-printable/", $local_headers['content-transfer-encoding'])) {
+ if (isset($local_headers['content-transfer-encoding'])
+ && preg_match("/quoted-printable/", $local_headers['content-transfer-encoding'])) {
$local_body = quoted_printable_decode($local_body);
}
return Array('headers' => $local_headers, 'body' => $local_body);
$filename = $filename[1];
}
if (!isset($filename)) {
- $filename = "attachment".count($pj);
+ $filename = "attachment" . count($this->pj);
}
if (isset($local_header['content-type'])
*/
function _fix_charset()
{
- if (preg_match('!charset="?([^;"]*)"?\s*(;|$)?!', $this->headers['content-type'], $matches)) {
+ if (isset($this->headers['content-type'])
+ && preg_match('!charset="?([^;"]*)"?\s*(;|$)?!', $this->headers['content-type'], $matches)) {
$body = iconv($matches[1], 'utf-8', $this->body);
if (strlen($body) == 0) {
return false;
{
global $banana;
$ret = '<div class="banana_menu">';
- $actions = Array('prevThread' => Array('prev_thread', _b_('Discussion précédente')),
- 'prevPost' => Array('prev', _b_('Article précédent')),
- 'nextPost' => Array('next', _b_('Article suivant')),
- 'nextThread' => Array('next_thread', _b_('Discussion suivante')));
+ $actions = Array('nextUnread' => Array('next_unread', _b_('Message non-lu suivant'), 'u'),
+ 'prevPost' => Array('prev', _b_('Article précédent'), 'a'),
+ 'nextPost' => Array('next', _b_('Article suivant'), 'z'),
+ 'prevThread' => Array('prev_thread', _b_('Discussion précédente'), 'q'),
+ 'nextThread' => Array('next_thread', _b_('Discussion suivante'), 's'));
foreach ($actions as $method=>$params) {
$id = $banana->spool->$method($this->id);
if (!is_null($id)) {
$ret .= makeImgLink(Array('group' => $banana->state['group'],
'artid' => $id),
$params[0] . '.gif',
- $params[1]);
+ $params[1],
+ null, null, null,
+ $params[2]);
}
}
return $ret . '</div>';
. makeImgLink(Array('group' => $banana->state['group'],
'action' => 'new'),
'post.gif',
- _b_('Nouveau message'))
+ _b_('Nouveau message'), null, null, null, 'p') . ' '
. makeImgLink(Array('group' => $banana->state['group'],
'artid' => $this->id,
'action' => 'new'),
'reply.gif',
- _b_('Répondre'));
+ _b_('Répondre'), null, null, null, 'r');
if ($this->checkCancel()) {
- $res .= makeImgLink(Array('group' => $banana->state['group'],
+ $res .= ' '
+ . makeImgLink(Array('group' => $banana->state['group'],
'artid' => $this->id,
'action' => 'cancel'),
'cancel.gif',
- _b_('Annuler'));
+ _b_('Annuler'), null, null, null, 'c');
}
$res .= '</div>'
. formatDisplayHeader('subject', $this->headers['subject'])
. '</th></tr>'
. '<tr class="pair"><td class="headers"><table cellpadding="0" cellspacing="0">';
+ $xface = null;
foreach ($banana->show_hdr as $hdr) {
if (isset($this->headers[$hdr])) {
$res2 = formatdisplayheader($hdr, $this->headers[$hdr]);
$res .= '</th></tr>';
}
- preg_match("@text/([^;]+);@", $this->headers['content-type'], $format);
- $format = $format[1];
+ if (isset($this->headers['content-type'])
+ && preg_match("@text/([^;]+);@", $this->headers['content-type'], $format)) {
+ $format = $format[1];
+ } else {
+ $format = 'plain';
+ }
$res .= '<tr class="impair"><td colspan="2" class="body"';
if ($format == 'html') {
if (preg_match('@<body[^>]*bgcolor="?([#0-9a-f]+)"?[^>]*>@i', $this->body, $bgcolor)) {