]> source.dussan.org Git - nextcloud-server.git/commitdiff
Fix errors when no addressbook.
authorThomas Tanghus <thomas@tanghus.net>
Mon, 30 Jul 2012 10:28:10 +0000 (12:28 +0200)
committerThomas Tanghus <thomas@tanghus.net>
Mon, 30 Jul 2012 10:28:10 +0000 (12:28 +0200)
apps/contacts/lib/addressbook.php
apps/contacts/lib/vcard.php

index 73b30e942fa257c14b435443f2676ef06e352107..634d59eb9bd2ebd5c65d5f8e35ac70f17c52dd2c 100644 (file)
@@ -71,10 +71,15 @@ class OC_Contacts_Addressbook{
         * @return associative array
         */
        public static function find($id){
-               $stmt = OCP\DB::prepare( 'SELECT * FROM *PREFIX*contacts_addressbooks WHERE id = ?' );
-               $result = $stmt->execute(array($id));
-
-               return $result->fetchRow();
+               try {
+                       $stmt = OCP\DB::prepare( 'SELECT * FROM *PREFIX*contacts_addressbooks WHERE id = ?' );
+                       $result = $stmt->execute(array($id));
+                       return $result->fetchRow();
+               } catch(Exception $e) {
+                       OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.', exception: '.$e->getMessage(), OCP\Util::ERROR);
+                       OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.', id: '.$id, OCP\Util::DEBUG);
+                       return false;
+               }
        }
 
        /**
@@ -171,7 +176,7 @@ class OC_Contacts_Addressbook{
                $prefbooks = OCP\Config::getUserValue($uid,'contacts','openaddressbooks',null);
                $prefbooks = explode(';',$prefbooks);
                for ($i = 0; $i < count($prefbooks); $i++) {
-                       if(!self::find($prefbooks[$i])) {
+                       if(!$prefbooks[$i] || !self::find($prefbooks[$i])) {
                                unset($prefbooks[$i]);
                        }
                }
@@ -207,16 +212,15 @@ class OC_Contacts_Addressbook{
                try {
                        $stmt = OCP\DB::prepare( $prep );
                        $result = $stmt->execute($active);
+                       while( $row = $result->fetchRow()){
+                               $addressbooks[] = $row;
+                       }
                } catch(Exception $e) {
                        OCP\Util::writeLog('contacts','OC_Contacts_Addressbook:active:, exception: '.$e->getMessage(),OCP\Util::DEBUG);
                        OCP\Util::writeLog('contacts','OC_Contacts_Addressbook:active, ids: '.join(',', $active),OCP\Util::DEBUG);
                        OCP\Util::writeLog('contacts','OC_Contacts_Addressbook::active, SQL:'.$prep,OCP\Util::DEBUG);
                }
 
-               while( $row = $result->fetchRow()){
-                       $addressbooks[] = $row;
-               }
-
                return $addressbooks;
        }
 
@@ -239,7 +243,7 @@ class OC_Contacts_Addressbook{
                        if(!in_array($id, $openaddressbooks)) {
                                $openaddressbooks[] = $id;
                        }
-               } else { 
+               } else {
                        if(in_array($id, $openaddressbooks)) {
                                unset($openaddressbooks[array_search($id, $openaddressbooks)]);
                        }
index 2868643387d7c9a9934a52c53916b30565a81ac9..7c8dbd2ee4926b4fe5376b90ddb650488c327994 100644 (file)
@@ -62,6 +62,9 @@ class OC_Contacts_VCard{
                        }
                } elseif($id) {
                        if(is_array($id)) {
+                               if(count($id) == 0) {
+                                       return array();
+                               }
                                $id = $id[0];
                        }
                        try {
@@ -110,7 +113,7 @@ class OC_Contacts_VCard{
                return $result->fetchRow();
        }
 
-       /** 
+       /**
        * @brief Format property TYPE parameters for upgrading from v. 2.1
        * @param $property Reference to a Sabre_VObject_Property.
        * In version 2.1 e.g. a phone can be formatted like: TEL;HOME;CELL:123456789
@@ -126,7 +129,7 @@ class OC_Contacts_VCard{
                }
        }
 
-       /** 
+       /**
        * @brief Decode properties for upgrading from v. 2.1
        * @param $property Reference to a Sabre_VObject_Property.
        * The only encoding allowed in version 3.0 is 'b' for binary. All encoded strings