Activate message sources visualisation for the admins
[platal.git] / include / banana / ml.inc.php
index 99f77a5..2b8b1e0 100644 (file)
@@ -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";
     }
 }