X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=include%2Fbanana%2Fml.inc.php;h=04ffce5c6dd612bee8948bbb64c64d7d338e67f2;hb=b21927331265173b48fd1476436323d1be587d83;hp=99f77a5a446646b90a86e6c32461b50630b33df9;hpb=315fa6ae2cbee21fec0ad56bda592a184860737a;p=platal.git diff --git a/include/banana/ml.inc.php b/include/banana/ml.inc.php index 99f77a5..04ffce5 100644 --- a/include/banana/ml.inc.php +++ b/include/banana/ml.inc.php @@ -25,8 +25,12 @@ require_once 'banana/hooks.inc.php'; function hook_makeLink($params) { global $globals, $platal; - $base = $globals->baseurl . $platal->ns . '/lists/archives/' . MLBanana::$listname; - return $base . hook_platalMessageLink($params); + $base = $globals->baseurl . '/' . $platal->ns . 'lists/archives/' . MLBanana::$listname; + $base = $base . hook_platalMessageLink($params); + if (@$params['action'] == 'showext') { + $base .= '?action=showext'; + } + return $base; } class MLBanana extends Banana @@ -36,10 +40,15 @@ class MLBanana extends Banana function __construct($params = null) { + global $globals; + Banana::$spool_root = $globals->banana->spool_root; Banana::$spool_boxlist = false; Banana::$msgedit_canattach = true; + if (S::has_perms()) { + Banana::$msgshow_mimeparts[] = 'source'; + } array_push(Banana::$msgparse_headers, 'x-org-id', 'x-org-mail'); - + MLBanana::$listname = $params['listname']; MLBanana::$domain = $params['domain']; $params['group'] = $params['listname'] . '@' . $params['domain']; @@ -78,16 +87,47 @@ class BananaMLArchive extends BananaMBox return 'MLArchives'; } + public function getBoxList($mode = Banana::BOXES_ALL, $since = 0, $withstats = false) + { + global $globals; + $spool = $globals->lists->spool . '/'; + $list = glob($spool . '*.mbox', GLOB_ONLYDIR); + if ($list === false) { + return array(); + } + $groups = array(); + foreach ($list as $path) { + $path = substr($path, strlen($spool)); + $path = substr($path, 0, -5); + list($domain, $listname) = explode($globals->lists->vhost_sep, $path, 2); + $group = $listname . '@' . $domain; + $groups[$group] = array('desc' => null, 'msgnum' => null, 'unread' => null); + } + return $groups; + } + public function filename() { - return MLBanana::$domain . '_' . MLBanana::$listname; + if (MLBanana::$listname) { + $listname = MLBanana::$listname; + $domain = MLBanana::$domain; + } else { + list($listname, $domain) = explode('@', Banana::$group); + } + return $domain . '_' . $listname; } - protected function getFileName($box) + protected function getFileName() { global $globals; $base = $globals->lists->spool; - $file = MLBanana::$domain . $globals->lists->vhost_sep . MLBanana::$listname . '.mbox'; + if (MLBanana::$listname) { + $listname = MLBanana::$listname; + $domain = MLBanana::$domain; + } else { + list($listname, $domain) = explode('@', Banana::$group); + } + $file = $domain . $globals->lists->vhost_sep . $listname . '.mbox'; return "$base/$file/$file"; } }