summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorthomascube <thomas@roundcube.net>2011-07-04 12:59:37 +0000
committerthomascube <thomas@roundcube.net>2011-07-04 12:59:37 +0000
commitecb51cc8a6d4d9491659f370a6b46b1ec42014f5 (patch)
treedf8d5b0f5af108693a4efd500393333b8eada137
parent7da13a337eb1d0ebbe4eadf8d0e32f848566c728 (diff)
Cache information about writeble address sources for performance reasons
-rw-r--r--program/steps/mail/func.inc7
1 files changed, 3 insertions, 4 deletions
diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc
index e0504e658..14e9c7602 100644
--- a/program/steps/mail/func.inc
+++ b/program/steps/mail/func.inc
@@ -1237,7 +1237,6 @@ function rcmail_alter_html_link($matches)
function rcmail_address_string($input, $max=null, $linked=false, $addicon=null)
{
global $IMAP, $RCMAIL, $PRINT_MODE, $CONFIG;
- static $got_writable_abook = null;
$a_parts = $IMAP->decode_address_list($input);
@@ -1248,8 +1247,8 @@ function rcmail_address_string($input, $max=null, $linked=false, $addicon=null)
$j = 0;
$out = '';
- if ($addicon && $got_writable_abook === null && $books = $RCMAIL->get_address_sources(true)) {
- $got_writable_abook = true;
+ if ($addicon && !isset($_SESSION['writeable_abook'])) {
+ $_SESSION['writeable_abook'] = $RCMAIL->get_address_sources(true) ? true : false;
}
foreach ($a_parts as $part) {
@@ -1284,7 +1283,7 @@ function rcmail_address_string($input, $max=null, $linked=false, $addicon=null)
Q($name ? $name : $mailto));
}
- if ($addicon && $got_writable_abook) {
+ if ($addicon && $_SESSION['writeable_abook']) {
$address = html::span(null, $address . html::a(array(
'href' => "#add",
'onclick' => sprintf("return %s.command('add-contact','%s',this)", JS_OBJECT_NAME, urlencode($string)),