getHeaderValue('x-org-id')) { return $address . ' ' . ''; } elseif ($id = Banana::$message->getHeaderValue('x-org-mail')) { list($id, $domain) = explode('@', $id); return $address . ' ' . ''; } else { return $address; } } if (!empty($text)) { $text .= ', '; } $text .= $address; } return $text; case 'subject': $link = null; $text = stripslashes($_text); if (preg_match('/^(.+?)\s*\[=> (.*?)\]\s*$/u', $text, $matches)) { $text = $matches[1]; $group = $matches[2]; if (Banana::$group == $group) { $link = ' [=> ' . $group . ']'; } else { $link = ' [=> ' . Banana::$page->makeLink(array('group' => $group, 'text' => $group)) . ']'; } } $text = banana_catchFormats(banana_htmlentities($text)); if ($in_spool) { return array($text, $link); } return $text . $link; } return null; } function hook_platalRSS($group) { if ($group) { $group .= '/'; } else { $group = ''; } return '/rss/' . $group . S::v('forlife') . '/' . S::v('core_rss_hash') . '/rss.xml'; } function hook_platalMessageLink($params) { $base = ''; if (isset($params['first'])) { return $base . '/from/' . $params['first']; } if (isset($params['artid'])) { if (@$params['part'] == 'xface') { $base .= '/xface'; } elseif (@$params['action'] == 'new') { $base .= '/reply'; } elseif (@$params['action'] == 'cancel') { $base .= '/cancel'; } elseif (@$params['part']) { if (strpos($params['part'], '.') !== false) { $params['artid'] .= '?part=' . urlencode($params['part']); $base = '/read'; } else { $base .= '/' . str_replace('/', '.', $params['part']); } } else { $base .= '/read'; } return $base . '/' . $params['artid']; } if (@$params['action'] == 'new') { return $base . '/new'; } return $base; } function hook_makeImg($img, $alt, $height, $width) { global $globals; $url = $globals->baseurl . '/images/banana/' . $img; if (!is_null($width)) { $width = ' width="' . $width . '"'; } if (!is_null($height)) { $height = ' height="' . $height . '"'; } return '' . $alt . ''; } if (!function_exists('hook_makeLink')) { function hook_makeLink($params) { global $globals, $platal; $xnet = !empty($GLOBALS['IS_XNET_SITE']); $feed = (@$params['action'] == 'rss' || @$params['action'] == 'rss2' || @$params['action'] == 'atom'); if (Banana::$protocole->name() == 'NNTP' && !$xnet) { $base = $globals->baseurl . '/banana'; if ($feed) { return $base . hook_platalRSS(@$params['group']); } if (isset($params['page'])) { return $base . '/' . $params['page']; } if (@$params['action'] == 'subscribe') { return $base . '/subscription'; } if (!isset($params['group'])) { return $base; } $base .= '/' . $params['group']; } else if (Banana::$protocole->name() == 'NNTP' && $xnet) { if ($feed) { return 'http://www.polytechnique.org/banana' . hook_platalRSS(@$params['group']); } $base = $globals->baseurl . '/' . $platal->ns . 'forum'; } else if (Banana::$protocole->name() == 'MLArchives') { $base = $globals->baseurl . '/' . $platal->ns . 'lists/archives'; if ($feed) { return $base . hook_platalRSS(MLBanana::$listname); } $base .= '/' . MLBanana::$listname; } $base = $base . hook_platalMessageLink($params); if (@$params['action'] == 'showext') { $base .= '?action=showext'; } return $base; } } function hook_makeJs($src) { global $page; $page->addJsLink("$src.js"); return ' '; } function get_banana_params(array &$get, $group = null, $action = null, $artid = null) { if (!is_null($group)) { $get['group'] = $group; } if (!is_null($action)) { if ($action == 'new') { $get['action'] = 'new'; } elseif (!is_null($artid)) { $get['artid'] = $artid; if ($action == 'reply') { $get['action'] = 'new'; } elseif ($action == 'cancel') { $get['action'] = $action; } elseif ($action == 'from') { $get['first'] = $artid; unset($get['artid']); } elseif ($action == 'read') { $get['part'] = @$_GET['part']; } elseif ($action == 'source') { $get['part'] = 'source'; } elseif ($action == 'xface') { $get['part'] = 'xface'; } elseif ($action) { $get['part'] = str_replace('.', '/', $action); } if (Get::v('action') == 'showext') { $get['action'] = 'showext'; } } } } function run_banana(&$page, $class, array $args) { $banana = new $class(S::v('forlife'), $args); $page->assign('banana', $banana->run()); $page->addCssInline($banana->css()); $page->addCssLink('banana.css'); $rss = $banana->feed(); if ($rss) { if (Banana::$group) { $page->setRssLink('Banana :: ' . Banana::$group, $rss); } else { $page->setRssLink('Banana :: Abonnements', $rss); } } $bt = $banana->backtrace(); if ($bt) { new PlBacktrace(Banana::$protocole->name(), $banana->backtrace(), 'response', 'time'); } } // vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: ?>