From 02e830bd6e3d1d05e3976097d420ee8cbf9d95ff Mon Sep 17 00:00:00 2001 From: pdontthink Date: Thu, 24 Nov 2005 01:13:56 +0000 Subject: [PATCH] Reimplement subject_link hook and add some new link attribute variables git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@10403 7612ce4b-ef26-0410-bec9-ea0150e637f0 --- functions/mailbox_display.php | 20 ++++++++++++++------ templates/default/message_list.tpl | 19 ++++++++++++------- 2 files changed, 26 insertions(+), 13 deletions(-) diff --git a/functions/mailbox_display.php b/functions/mailbox_display.php index e590ae90..43b98f75 100644 --- a/functions/mailbox_display.php +++ b/functions/mailbox_display.php @@ -514,7 +514,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 +528,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 +597,12 @@ 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); + + // globalize link attributes so plugins can share in + // modifying them; plugins are responsible for sharing + // nicely (such as for setting the target, etc) + global $link, $title, $target, $onclick, $link_extra; + do_hook('subject_link', array($iPageOffset, $sSearch, $aSearch)); } $value = (trim($value)) ? $value : _("(no subject)"); /* add thread indentation */ @@ -640,9 +646,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 +1439,4 @@ function attachSelectedMessages($imapConnection,$aMsgHeaders) { return $composesession; } -?> \ No newline at end of file +?> diff --git a/templates/default/message_list.tpl b/templates/default/message_list.tpl index ed21ce0c..d1ab6d7a 100644 --- a/templates/default/message_list.tpl +++ b/templates/default/message_list.tpl @@ -459,11 +459,14 @@ $clickedColor = (empty($color[16])) ? $color[2] : $color[16]; $sLabelStart = ''; $sLabelEnd = ''; } - $aCol = (isset($aColumns[$iCol])) ? $aColumns[$iCol] : array(); - $title = (isset($aCol['title'])) ? $aCol['title'] : ''; - $link = (isset($aCol['link'])) ? $aCol['link'] : ''; - $value = (isset($aCol['value'])) ? $aCol['value'] : ''; - $target = (isset($aCol['target'])) ? $aCol['target'] : ''; + $aCol = (isset($aColumns[$iCol])) ? $aColumns[$iCol] : array(); + $title = (isset($aCol['title'])) ? $aCol['title'] : ''; + $link = (isset($aCol['link'])) ? $aCol['link'] : ''; + $link_extra = (isset($aCol['link_extra'])) ? $aCol['link_extra'] : ''; + $onclick = (isset($aCol['onclick'])) ? $aCol['onclick'] : ''; + $link = (isset($aCol['link'])) ? $aCol['link'] : ''; + $value = (isset($aCol['value'])) ? $aCol['value'] : ''; + $target = (isset($aCol['target'])) ? $aCol['target'] : ''; if ($iCol !== SQM_COL_CHECK) { $value = $sLabelStart.$sPre.$value.$sEnd.$sLabelEnd; } @@ -482,8 +485,10 @@ $clickedColor = (empty($color[16])) ? $color[2] : $color[16]; $sText .= str_repeat('  ',$indent); } $sText .= "