<?php
/***************************************************************************
- * Copyright (C) 2003-2007 Polytechnique.org *
+ * Copyright (C) 2003-2009 Polytechnique.org *
* http://opensource.polytechnique.org/ *
* *
* This program is free software; you can redistribute it and/or modify *
require_once 'banana/banana.inc.php';
require_once 'banana/hooks.inc.php';
-function hook_makeLink($params)
+class PlatalBananaMLPage extends PlatalBananaPage
{
- global $globals, $platal;
- $base = $globals->baseurl . '/' . $platal->ns . 'lists/archives/' . MLBanana::$listname;
- $base = $base . hook_platalMessageLink($params);
- if (@$params['action'] == 'showext') {
- $base .= '?action=showext';
+ public function __construct()
+ {
+ parent::__construct();
+ global $platal;
+ $this->handler = 'BananaMLHandler';
+ $this->base = $platal->pl_self(1);
+ }
+}
+
+class BananaMLHandler extends BananaHandler
+{
+ public function template()
+ {
+ return 'lists/archives.tpl';
}
- return $base;
}
class MLBanana extends Banana
{
static public $listname;
static public $domain;
+ private $user;
- function __construct($params = null)
+ function __construct(User &$user, $params = null)
{
- global $globals;
+ global $globals;
+ $this->user = &$user;
+
Banana::$spool_root = $globals->banana->spool_root;
Banana::$spool_boxlist = false;
Banana::$msgedit_canattach = true;
- if (S::has_perms()) {
+ Banana::$debug_mbox = ($globals->debug & DEBUG_BT);
+ Banana::$debug_smarty = ($globals->debug & DEBUG_SMARTY);
+ Banana::$mbox_helper = $globals->banana->mbox_helper;
+ Banana::$feed_updateOnDemand = true;
+ if (S::admin()) {
Banana::$msgshow_mimeparts[] = 'source';
- }
+ }
array_push(Banana::$msgparse_headers, 'x-org-id', 'x-org-mail');
+ if (!S::v('core_rss_hash')) {
+ Banana::$feed_active = false;
+ }
MLBanana::$listname = $params['listname'];
MLBanana::$domain = $params['domain'];
$params['group'] = $params['listname'] . '@' . $params['domain'];
- parent::__construct($params, 'MLArchive');
+ parent::__construct($params, 'MLArchive', 'PlatalBananaMLPage');
}
public function run()
global $platal, $globals;
$nom = S::v('prenom') . ' ' . S::v('nom');
- $mail = S::v('bestalias') . '@' . $globals->mail->domain;
+ $mail = $this->user->bestEmail();
$sig = $nom . ' (' . S::v('promo') . ')';
- Banana::$msgedit_headers['X-Org-Mail'] = S::v('forlife') . '@' . $globals->mail->domain;
+ Banana::$msgedit_headers['X-Org-Mail'] = $this->user->forlifeEmail();
+
+ // Tree color
+ $req = XDB::query("SELECT tree_unread, tree_read
+ FROM {$globals->banana->table_prefix}profils
+ WHERE uid={?}", S::i('uid'));
+ if (!(list($unread, $read) = $req->fetchOneRow())) {
+ $unread = 'o';
+ $read = 'dg';
+ }
+ Banana::$tree_unread = $unread;
+ Banana::$tree_read = $read;
// Build user profile
- Banana::$profile['headers']['From'] = utf8_encode("$nom <$mail>");
- Banana::$profile['headers']['Organization'] = 'Utilisateur de Polytechnique.org';
- Banana::$profile['signature'] = utf8_encode($sig);
-
+ Banana::$profile['headers']['From'] = "$nom <$mail>";
+ Banana::$profile['headers']['Organization'] = make_Organization();
+ Banana::$profile['signature'] = $sig;
+
// Page design
Banana::$page->killPage('forums');
- Banana::$page->killPage('subscribe');
+ Banana::$page->killPage('subscribe');
// Run Banana
return parent::run();
{
global $globals;
$spool = $globals->lists->spool . '/';
- $list = glob($spool . '*.mbox', GLOB_ONLYDIR);
+ $list = glob($spool . '*.mbox/*.mbox');
if ($list === false) {
return array();
}
$groups = array();
foreach ($list as $path) {
- $path = substr($path, strlen($spool));
+ $path = substr($path, strpos($path, 'mbox/') + 5);
$path = substr($path, 0, -5);
list($domain, $listname) = explode($globals->lists->vhost_sep, $path, 2);
$group = $listname . '@' . $domain;
}
}
+// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8:
?>