X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=include%2Fbanana%2Fml.inc.php;h=2b8b1e0557b657877772b6e442e413087a9b4956;hb=1515e65adcb5f6cee7d5327f28ebb85f48377791;hp=99f77a5a446646b90a86e6c32461b50630b33df9;hpb=315fa6ae2cbee21fec0ad56bda592a184860737a;p=platal.git diff --git a/include/banana/ml.inc.php b/include/banana/ml.inc.php index 99f77a5..2b8b1e0 100644 --- a/include/banana/ml.inc.php +++ b/include/banana/ml.inc.php @@ -25,7 +25,7 @@ require_once 'banana/hooks.inc.php'; function hook_makeLink($params) { global $globals, $platal; - $base = $globals->baseurl . $platal->ns . '/lists/archives/' . MLBanana::$listname; + $base = $globals->baseurl . '/' . $platal->ns . 'lists/archives/' . MLBanana::$listname; return $base . hook_platalMessageLink($params); } @@ -38,8 +38,11 @@ class MLBanana extends Banana { 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 +81,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"; } }