summaryrefslogtreecommitdiff
path: root/program/include/rcube_output_html.php
diff options
context:
space:
mode:
Diffstat (limited to 'program/include/rcube_output_html.php')
-rw-r--r--program/include/rcube_output_html.php25
1 files changed, 23 insertions, 2 deletions
diff --git a/program/include/rcube_output_html.php b/program/include/rcube_output_html.php
index 7ceea1839..3bc93db53 100644
--- a/program/include/rcube_output_html.php
+++ b/program/include/rcube_output_html.php
@@ -696,10 +696,31 @@ class rcube_output_html extends rcube_output
// show a label
case 'label':
if ($attrib['name'] || $attrib['command']) {
+ // @FIXME: 'noshow' is useless, remove?
+ if ($attrib['noshow']) {
+ return '';
+ }
+
$vars = $attrib + array('product' => $this->config->get('product_name'));
unset($vars['name'], $vars['command']);
- $label = $this->app->gettext($attrib + array('vars' => $vars));
- return !$attrib['noshow'] ? (get_boolean((string)$attrib['html']) ? $label : html::quote($label)) : '';
+
+ $label = $this->app->gettext($attrib + array('vars' => $vars));
+ $quoting = !empty($attrib['quoting']) ? strtolower($attrib['quoting']) : (get_boolean((string)$attrib['html']) ? 'no' : '');
+
+ switch ($quoting) {
+ case 'no':
+ case 'raw':
+ break;
+ case 'javascript':
+ case 'js':
+ $label = rcmail::JQ($label);
+ break;
+ default:
+ $label = html::quote($label);
+ break;
+ }
+
+ return $label;
}
break;