From 92eb10e7732716beec8b227693d62cb9a79b9db6 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Mon, 12 Nov 2012 08:30:19 -0500
Subject: [PATCH] Don't throw error when plugin doesn't register 'refresh' action handler

---
 program/include/rcube_plugin_api.php |   30 +++++++++++++++---------------
 1 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/program/include/rcube_plugin_api.php b/program/include/rcube_plugin_api.php
index 8c1e125..c473b0b 100644
--- a/program/include/rcube_plugin_api.php
+++ b/program/include/rcube_plugin_api.php
@@ -31,24 +31,24 @@
  */
 class rcube_plugin_api
 {
-  static private $instance;
-  
+  static protected $instance;
+
   public $dir;
   public $url = 'plugins/';
   public $task = '';
   public $output;
-  
+
   public $handlers = array();
-  private $plugins = array();
-  private $tasks = array();
-  private $actions = array();
-  private $actionmap = array();
-  private $objectsmap = array();
-  private $template_contents = array();
-  private $active_hook = false;
+  protected $plugins = array();
+  protected $tasks = array();
+  protected $actions = array();
+  protected $actionmap = array();
+  protected $objectsmap = array();
+  protected $template_contents = array();
+  protected $active_hook = false;
 
   // Deprecated names of hooks, will be removed after 0.5-stable release
-  private $deprecated_hooks = array(
+  protected $deprecated_hooks = array(
     'create_user'       => 'user_create',
     'kill_session'      => 'session_destroy',
     'upload_attachment' => 'attachment_upload',
@@ -98,7 +98,7 @@
   /**
    * Private constructor
    */
-  private function __construct()
+  protected function __construct()
   {
     $this->dir = slashify(RCMAIL_PLUGINS_DIR);
   }
@@ -327,7 +327,7 @@
     if (isset($this->actions[$action])) {
       call_user_func($this->actions[$action]);
     }
-    else {
+    else if (rcube::get_instance()->action != 'refresh') {
       rcube::raise_error(array('code' => 524, 'type' => 'php',
         'file' => __FILE__, 'line' => __LINE__,
         'message' => "No handler found for action $action"), true, true);
@@ -470,7 +470,7 @@
    * @param array $attrib
    * @return array
    */
-  private function template_container_hook($attrib)
+  protected function template_container_hook($attrib)
   {
     $container = $attrib['name'];
     return array('content' => $attrib['content'] . $this->template_contents[$container]);
@@ -483,7 +483,7 @@
    * @param string $fn Filename
    * @return string 
    */
-  private function resource_url($fn)
+  protected function resource_url($fn)
   {
     if ($fn[0] != '/' && !preg_match('|^https?://|i', $fn))
       return $this->url . $fn;

--
Gitblit v1.9.1