From 9a835c7f7ca3b2e1e021840254a15b0205388dfc Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Sat, 27 Aug 2011 04:33:35 -0400
Subject: [PATCH] - Fix is_a() usage for PHP>5.3.6

---
 program/include/rcube_plugin_api.php |    2 +-
 program/include/rcmail.php           |    7 +++++--
 program/steps/mail/func.inc          |    2 +-
 3 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/program/include/rcmail.php b/program/include/rcmail.php
index c6f8a63..7967f94 100644
--- a/program/include/rcmail.php
+++ b/program/include/rcmail.php
@@ -393,7 +393,10 @@
         $id = '0';
 
     // use existing instance
-    if (isset($this->address_books[$id]) && is_a($this->address_books[$id], 'rcube_addressbook') && (!$writeable || !$this->address_books[$id]->readonly)) {
+    if (isset($this->address_books[$id]) && is_object($this->address_books[$id])
+      && is_a($this->address_books[$id], 'rcube_addressbook')
+      && (!$writeable || !$this->address_books[$id]->readonly)
+    ) {
       $contacts = $this->address_books[$id];
     }
     else if ($id && $ldap_config[$id]) {
@@ -1163,7 +1166,7 @@
       $this->smtp->disconnect();
 
     foreach ($this->address_books as $book) {
-      if (is_a($book, 'rcube_addressbook'))
+      if (is_object($book) && is_a($book, 'rcube_addressbook'))
         $book->close();
     }
 
diff --git a/program/include/rcube_plugin_api.php b/program/include/rcube_plugin_api.php
index cfba7fa..0e38a31 100644
--- a/program/include/rcube_plugin_api.php
+++ b/program/include/rcube_plugin_api.php
@@ -176,7 +176,7 @@
         if (is_subclass_of($plugin, 'rcube_plugin')) {
           // ... task, request type and framed mode
           if ((!$plugin->task || preg_match('/^('.$plugin->task.')$/i', $rcmail->task))
-              && (!$plugin->noajax || is_a($rcmail->output, 'rcube_template'))
+              && (!$plugin->noajax || (is_object($rcmail->output) && is_a($rcmail->output, 'rcube_template')))
               && (!$plugin->noframe || empty($_REQUEST['_framed']))
           ) {
             $plugin->init();
diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc
index 50de710..ae0d3a5 100644
--- a/program/steps/mail/func.inc
+++ b/program/steps/mail/func.inc
@@ -1451,7 +1451,7 @@
 {
   global $RCMAIL, $IMAP;
 
-  if (!is_a($message, rcube_message))
+  if (!is_object($message) || !is_a($message, rcube_message))
     $message = new rcube_message($message);
 
   if ($message->headers->mdn_to && !$message->headers->mdn_sent &&

--
Gitblit v1.9.1