Fixed first message losing correct URI
[squirrelmail.git] / functions / mailbox_display.php
index e590ae90879c279e06d4faa5d58dadec9bb99c8a..f2474c73f2e164e329bf815163af89ef9093f3ba 100644 (file)
@@ -426,6 +426,10 @@ function fetchMessageHeaders($imapConnection, &$aMailbox) {
  * @author Marc Groot Koerkamp
  */
 function prepareMessageList(&$aMailbox, $aProps) {
+
+    /* Globalize link attributes so plugins can share in modifying them */
+    global $link, $title, $target, $onclick, $link_extra;
+
     /* retrieve the properties */
     $my_email_address = (isset($aProps['email'])) ? $aProps['email'] : false;
     $highlight_list   = (isset($aProps['config']['highlight_list'])) ? $aProps['config']['highlight_list'] : false;
@@ -514,7 +518,7 @@ function prepareMessageList(&$aMailbox, $aProps) {
         if (isset($aId[$i])) {
 
             $bHighLight = false;
-            $value = $title = $link = $target = '';
+            $value = $title = $link = $target = $onclick = $link_extra = '';
             $aQuery = ($aInitQuery !== false) ? $aInitQuery : false;
             $aMsg = $aHeaders[$aId[$i]];
             if (isset($aSearch) && count($aSearch) > 1 && $aQuery) {
@@ -528,7 +532,7 @@ function prepareMessageList(&$aMailbox, $aProps) {
             }
 
             foreach ($aCol as $k => $v) {
-                $link = $target = $title = '';
+                $title = $link = $target = $onclick = $link_extra = '';
                 $aColumns[$k] = array();
                 $value = (isset($aMsg[$v]))  ? $aMsg[$v]  : '';
                 $sUnknown = _("Unknown recipient");
@@ -597,6 +601,13 @@ function prepareMessageList(&$aMailbox, $aProps) {
                     if ($aQuery) {
                         // TODO, $sTargetModule should be a query parameter so that we can use a single entrypoint
                         $link = $sTargetModule.'.php?' . implode('&',$aQuery);
+
+                        // see top of this function for which attributes are available
+                        // in the global scope for plugin use (like $link, $target, 
+                        // $onclick, $link_extra, $title, and so forth)
+                        // plugins are responsible for sharing nicely (such as for 
+                        // setting the target, etc)
+                        do_hook('subject_link', array($iPageOffset, $sSearch, $aSearch));
                     }
                     $value = (trim($value)) ? $value : _("(no subject)");
                     /* add thread indentation */
@@ -640,9 +651,11 @@ function prepareMessageList(&$aMailbox, $aProps) {
                     break;
                 default : break;
                 }
-                if ($title)  { $aColumns[$k]['title']  = $title;  }
-                if ($link)   { $aColumns[$k]['link']   = $link;   }
-                if ($target) { $aColumns[$k]['target'] = $target; }
+                if ($title)      { $aColumns[$k]['title']      = $title;      }
+                if ($link)       { $aColumns[$k]['link']       = $link;       }
+                if ($link_extra) { $aColumns[$k]['link_extra'] = $link_extra; }
+                if ($onclick)    { $aColumns[$k]['onclick']    = $onclick;    }
+                if ($target)     { $aColumns[$k]['target']     = $target;     }
                 $aColumns[$k]['value']  = $value;
             }
             /* columns which will not be displayed but should be inspected
@@ -1431,4 +1444,4 @@ function attachSelectedMessages($imapConnection,$aMsgHeaders) {
     return $composesession;
 }
 
-?>
\ No newline at end of file
+?>