Merge pull request #4004 from civicrm/4.4
[civicrm-core.git] / CRM / Admin / Form / Preferences.php
index 2794f78f5c9f2eb95d94f8cc91db78e7864fa68d..d1f7b25219547703ee2bf5413bd399279abf06bf 100644 (file)
@@ -1,9 +1,9 @@
 <?php
 /*
  +--------------------------------------------------------------------+
- | CiviCRM version 4.4                                                |
+ | CiviCRM version 4.5                                                |
  +--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-2013                                |
+ | Copyright CiviCRM LLC (c) 2004-2014                                |
  +--------------------------------------------------------------------+
  | This file is a part of CiviCRM.                                    |
  |                                                                    |
@@ -28,7 +28,7 @@
 /**
  *
  * @package CRM
- * @copyright CiviCRM LLC (c) 2004-2013
+ * @copyright CiviCRM LLC (c) 2004-2014
  * $Id$
  *
  */
@@ -97,6 +97,9 @@ class CRM_Admin_Form_Preferences extends CRM_Core_Form {
     $session->pushUserContext(CRM_Utils_System::url('civicrm/admin', 'reset=1'));
   }
 
+  /**
+   * @return array
+   */
   function setDefaultValues() {
     $defaults = array();
 
@@ -109,6 +112,9 @@ class CRM_Admin_Form_Preferences extends CRM_Core_Form {
     return $defaults;
   }
 
+  /**
+   * @param $defaults
+   */
   function cbsDefaultValues(&$defaults) {
 
     foreach ($this->_varNames as $groupName => $groupValues) {
@@ -188,6 +194,17 @@ class CRM_Admin_Form_Preferences extends CRM_Core_Form {
                 array('&nbsp;&nbsp;', '&nbsp;&nbsp;', '<br/>')
               );
               break;
+
+            case 'select':
+              $this->addElement('select',
+                $fieldName,
+                $fieldValue['title'],
+                $fieldValue['option_values']
+              );
+              break;
+
+            case 'entity_reference':
+              $this->addEntityRef($fieldName, $fieldValue['title'], CRM_Utils_Array::value('options', $fieldValue, array()));
           }
         }
 
@@ -245,7 +262,7 @@ class CRM_Admin_Form_Preferences extends CRM_Core_Form {
       foreach ($groupValues as $settingName => $fieldValue) {
         switch ($fieldValue['html_type']) {
           case 'checkboxes':
-            if (CRM_Utils_Array::value($settingName, $this->_params) &&
+            if (!empty($this->_params[$settingName]) &&
               is_array($this->_params[$settingName])
             ) {
               $this->_config->$settingName = CRM_Core_DAO::VALUE_SEPARATOR . implode(CRM_Core_DAO::VALUE_SEPARATOR,
@@ -264,6 +281,7 @@ class CRM_Admin_Form_Preferences extends CRM_Core_Form {
           case 'text':
           case 'select':
           case 'radio':
+          case 'entity_reference':
             $this->_config->$settingName = CRM_Utils_Array::value($settingName, $this->_params);
             break;