+--------------------------------------------------------------------+
| CiviCRM version 4.7 |
+--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-2017 |
+ | Copyright CiviCRM LLC (c) 2004-2018 |
+--------------------------------------------------------------------+
| This file is a part of CiviCRM. |
| |
/**
*
* @package CRM
- * @copyright CiviCRM LLC (c) 2004-2017
+ * @copyright CiviCRM LLC (c) 2004-2018
*/
/**
$this->_defaults['contact_reference_options'] = self::getAutocompleteContactReference();
$this->_defaults['enableSSL'] = Civi::settings()->get('enableSSL');
$this->_defaults['verifySSL'] = Civi::settings()->get('verifySSL');
+ $this->_defaults['environment'] = CRM_Core_Config::environment();
$this->_defaults['enableComponents'] = Civi::settings()->get('enable_components');
}
* Build the form object.
*/
public function buildQuickForm() {
- $session = CRM_Core_Session::singleton();
- $session->pushUserContext(CRM_Utils_System::url('civicrm/admin', 'reset=1'));
- $args = func_get_args();
- $check = reset($args);
+ CRM_Core_Session::singleton()->pushUserContext(CRM_Utils_System::url('civicrm/admin', 'reset=1'));
$this->addButtons(array(
array(
'type' => 'next',
);
$descriptions = array();
- foreach ($this->_settings as $setting => $group) {
- $settingMetaData = civicrm_api('setting', 'getfields', array('version' => 3, 'name' => $setting));
- $props = $settingMetaData['values'][$setting];
+ $settingMetaData = $this->getSettingsMetaData();
+ foreach ($settingMetaData as $setting => $props) {
if (isset($props['quick_form_type'])) {
if (isset($props['pseudoconstant'])) {
$options = civicrm_api3('Setting', 'getoptions', array(
else {
$options = NULL;
}
+ //Load input as readonly whose values are overridden in civicrm.settings.php.
+ if (Civi::settings()->getMandatory($setting)) {
+ $props['html_attributes']['readonly'] = TRUE;
+ $setStatus = TRUE;
+ }
$add = 'add' . $props['quick_form_type'];
if ($add == 'addElement') {
}
}
+ if (!empty($setStatus)) {
+ CRM_Core_Session::setStatus(ts("Some fields are loaded as 'readonly' as they have been set (overridden) in civicrm.settings.php."), '', 'info', array('expires' => 0));
+ }
+ // setting_description should be deprecated - see Mail.tpl for metadata based tpl.
$this->assign('setting_descriptions', $descriptions);
+ $this->assign('settings_fields', $settingMetaData);
}
/**
) + $autoSearchFields;
}
+ /**
+ * Get the metadata relating to the settings on the form, ordered by the keys in $this->_settings.
+ *
+ * @return array
+ */
+ protected function getSettingsMetaData() {
+ $allSettingMetaData = civicrm_api3('setting', 'getfields', array());
+ $settingMetaData = array_intersect_key($allSettingMetaData['values'], $this->_settings);
+ // This array_merge re-orders to the key order of $this->_settings.
+ $settingMetaData = array_merge($this->_settings, $settingMetaData);
+ return $settingMetaData;
+ }
+
}