Merge branch '2015.11-develop' into 2016.11
[tine20] / tine20 / Tinebase / Config / KeyField.php
index e3b31ad..5ddcb3f 100644 (file)
@@ -63,7 +63,12 @@ class Tinebase_Config_KeyField extends Tinebase_Record_Abstract
             $record->setKeyFieldRecordModel($_options['recordModel']);
         }
 
-        $record->setFromArray($_data);
+        if (is_array($_data)) {
+            $record->setFromArray($_data);
+        } else if (is_string($_data)) {
+            if (Tinebase_Core::isLogLevel(Zend_Log::NOTICE)) Tinebase_Core::getLogger()->notice(__METHOD__ . '::'
+                . __LINE__ . ' Did not get an array to set keyfield config. Got this: ' . $_data);
+        }
         return $record;
     }
     
@@ -137,6 +142,10 @@ class Tinebase_Config_KeyField extends Tinebase_Record_Abstract
      */
     public function getValue($id)
     {
+        if (! $this->records instanceof Tinebase_Record_RecordSet) {
+            return '';
+        }
+
         $record = $this->records->filter('id', $id)->getFirstRecord();
         if (! $record) {
             $record = $this->getKeyfieldDefault();
@@ -185,4 +194,4 @@ class Tinebase_Config_KeyField extends Tinebase_Record_Abstract
 
         return $originRecord ? $originRecord->getId() : null;
     }
-}
\ No newline at end of file
+}