summaryrefslogtreecommitdiff
path: root/program/include
diff options
context:
space:
mode:
authorThomas Bruederli <thomas@roundcube.net>2013-10-25 16:50:25 +0200
committerThomas Bruederli <thomas@roundcube.net>2013-10-25 16:50:25 +0200
commit98b7b548a229600f7653cd67d9aae43675938143 (patch)
tree15c141db332b9ae87ef3fbf573ea32d30dc1ea76 /program/include
parent4e4c2511bc00cfc0214acab63b097efe142187a7 (diff)
parent9c41ba3c9ebbb14d01abe961c420f71f9463e61a (diff)
Merge branch 'dev-canned-responses'
Conflicts (resolved): skins/classic/includes/settingstabs.html skins/larry/includes/settingstabs.html
Diffstat (limited to 'program/include')
-rw-r--r--program/include/rcmail.php38
-rw-r--r--program/include/rcmail_output_html.php2
2 files changed, 39 insertions, 1 deletions
diff --git a/program/include/rcmail.php b/program/include/rcmail.php
index 0483f0e18..4b3f13760 100644
--- a/program/include/rcmail.php
+++ b/program/include/rcmail.php
@@ -346,6 +346,44 @@ class rcmail extends rcube
return $list;
}
+ /**
+ * Getter for compose responses.
+ * These are stored in local config and user preferences.
+ *
+ * @param boolean True to sort the list alphabetically
+ * @param boolean True if only this user's responses shall be listed
+ * @return array List of the current user's stored responses
+ */
+ public function get_compose_responses($sorted = false, $user_only = false)
+ {
+ $responses = array();
+
+ if (!$user_only) {
+ foreach ($this->config->get('compose_responses_static', array()) as $response) {
+ if (empty($response['key']))
+ $response['key'] = substr(md5($response['name']), 0, 16);
+ $response['static'] = true;
+ $response['class'] = 'readonly';
+ $k = $sorted ? '0000-' . strtolower($response['name']) : $response['key'];
+ $responses[$k] = $response;
+ }
+ }
+
+ foreach ($this->config->get('compose_responses', array()) as $response) {
+ if (empty($response['key']))
+ $response['key'] = substr(md5($response['name']), 0, 16);
+ $k = $sorted ? strtolower($response['name']) : $response['key'];
+ $responses[$k] = $response;
+ }
+
+ // sort list by name
+ if ($sorted) {
+ ksort($responses, SORT_LOCALE_STRING);
+ }
+
+ return array_values($responses);
+ }
+
/**
* Init output object for GUI and add common scripts.
diff --git a/program/include/rcmail_output_html.php b/program/include/rcmail_output_html.php
index 6651a9461..0c95fbc0e 100644
--- a/program/include/rcmail_output_html.php
+++ b/program/include/rcmail_output_html.php
@@ -1184,7 +1184,7 @@ class rcmail_output_html extends rcmail_output
// generate html code for button
if ($btn_content) {
- $attrib_str = html::attrib_string($attrib, $link_attrib);
+ $attrib_str = html::attrib_string($attrib, array_merge(html::$common_attrib, $link_attrib));
$out = sprintf('<a%s>%s</a>', $attrib_str, $btn_content);
}