From 52f2a698555dd50f176b58f09396a0a0d9227a04 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Thu, 16 May 2013 06:59:03 -0400
Subject: [PATCH] Added rcube_plugin::add_label() method
---
program/lib/Roundcube/rcube_plugin.php | 24 +++++++++++++++++++++++-
1 files changed, 23 insertions(+), 1 deletions(-)
diff --git a/program/lib/Roundcube/rcube_plugin.php b/program/lib/Roundcube/rcube_plugin.php
index d24a269..3153a84 100644
--- a/program/lib/Roundcube/rcube_plugin.php
+++ b/program/lib/Roundcube/rcube_plugin.php
@@ -227,7 +227,7 @@
$rcube->load_language($lang, $add);
// add labels to client
- if ($add2client) {
+ if ($add2client && method_exists($rcube->output, 'add_label')) {
if (is_array($add2client)) {
$js_labels = array_map(array($this, 'label_map_callback'), $add2client);
}
@@ -236,6 +236,24 @@
}
$rcube->output->add_label($js_labels);
}
+ }
+ }
+
+ /**
+ * Wrapper for add_label() adding the plugin ID as domain
+ */
+ public function add_label()
+ {
+ $rcube = rcube::get_instance();
+
+ if (method_exists($rcube->output, 'add_label')) {
+ $args = func_get_args();
+ if (count($args) == 1 && is_array($args[0])) {
+ $args = $args[0];
+ }
+
+ $args = array_map(array($this, 'label_map_callback'), $args);
+ $rcube->output->add_label($args);
}
}
@@ -390,6 +408,10 @@
*/
private function label_map_callback($key)
{
+ if (strpos($key, $this->ID.'.') === 0) {
+ return $key;
+ }
+
return $this->ID.'.'.$key;
}
}
--
Gitblit v1.9.1