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
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'];
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";
}
}