$addresses = preg_split("/ *, */", $_text);
$text = '';
foreach ($addresses as $address) {
- $address = BananaMessage::formatFrom(trim($address));
+ $address = BananaMessage::formatFrom(trim($address), Banana::$message->getHeaderValue('subject'));
if ($_header == 'from') {
if ($id = Banana::$message->getHeaderValue('x-org-id')) {
return $address . ' <a href="profile/' . $id . '" class="popup2" title="' . $id . '">'
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 = '';
function hook_makeImg($img, $alt, $height, $width)
{
- $url = 'images/banana/' . $img;
+ global $globals;
+ $url = $globals->baseurl . '/images/banana/' . $img;
if (!is_null($width)) {
$width = ' width="' . $width . '"';
return '<img src="' . $url . '"' . $height . $width . ' alt="' . $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:
?>