dev/core#628 - Make Quicksearch options sortable
[civicrm-core.git] / settings / Core.setting.php
index b332f3b8e18d1e174ccac9d7d9ea03dce495bb4b..77dc4cce90ef31229eca1d4869907fb0de31149c 100644 (file)
 /**
  * Settings metadata file
  */
 /**
  * Settings metadata file
  */
-return array(
-  'contact_view_options' => array(
+return [
+  'contact_view_options' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'contact_view_options',
     'type' => 'String',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'contact_view_options',
     'type' => 'String',
-    'quick_form_type' => 'CheckBoxes',
     'html_type' => 'checkboxes',
     'html_type' => 'checkboxes',
-    'pseudoconstant' => array(
+    'pseudoconstant' => [
       'optionGroupName' => 'contact_view_options',
       'optionGroupName' => 'contact_view_options',
-    ),
+    ],
     'default' => '\ 11\ 12\ 13\ 14\ 15\ 16\ 17\ 18\ 19\ 110\ 111\ 113\ 1',
     'add' => '4.1',
     'title' => ts('Viewing Contacts'),
     'default' => '\ 11\ 12\ 13\ 14\ 15\ 16\ 17\ 18\ 19\ 110\ 111\ 113\ 1',
     'add' => '4.1',
     'title' => ts('Viewing Contacts'),
@@ -53,16 +52,16 @@ return array(
     'description' => ts("Select the tabs that should be displayed when viewing a contact record. EXAMPLE: If your organization does not keep track of 'Relationships', then un-check this option to simplify the screen display. Tabs for Contributions, Pledges, Memberships, Events, Grants and Cases are also hidden if the corresponding component is not enabled. Go to Administer > System Settings > Enable Components to modify the components which are available for your site."),
     'help_text' => NULL,
     'serialize' => CRM_Core_DAO::SERIALIZE_SEPARATOR_BOOKEND,
     'description' => ts("Select the tabs that should be displayed when viewing a contact record. EXAMPLE: If your organization does not keep track of 'Relationships', then un-check this option to simplify the screen display. Tabs for Contributions, Pledges, Memberships, Events, Grants and Cases are also hidden if the corresponding component is not enabled. Go to Administer > System Settings > Enable Components to modify the components which are available for your site."),
     'help_text' => NULL,
     'serialize' => CRM_Core_DAO::SERIALIZE_SEPARATOR_BOOKEND,
-  ),
-  'contact_edit_options' => array(
+  ],
+  'contact_edit_options' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'contact_edit_options',
     'type' => 'String',
     'html_type' => 'checkboxes',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'contact_edit_options',
     'type' => 'String',
     'html_type' => 'checkboxes',
-    'pseudoconstant' => array(
+    'pseudoconstant' => [
       'optionGroupName' => 'contact_edit_options',
       'optionGroupName' => 'contact_edit_options',
-    ),
+    ],
     'default' => '\ 11\ 12\ 13\ 14\ 15\ 16\ 17\ 18\ 19\ 111\ 112\ 114\ 115\ 116\ 117\ 1',
     'add' => '4.1',
     'title' => ts('Editing Contacts'),
     'default' => '\ 11\ 12\ 13\ 14\ 15\ 16\ 17\ 18\ 19\ 111\ 112\ 114\ 115\ 116\ 117\ 1',
     'add' => '4.1',
     'title' => ts('Editing Contacts'),
@@ -71,16 +70,16 @@ return array(
     'description' => ts('Select the sections that should be included when adding or editing a contact record. EXAMPLE: If your organization does not record Gender and Birth Date for individuals, then simplify the form by un-checking this option. Drag interface allows you to change the order of the panes displayed on contact add/edit screen.'),
     'help_text' => NULL,
     'serialize' => CRM_Core_DAO::SERIALIZE_SEPARATOR_BOOKEND,
     'description' => ts('Select the sections that should be included when adding or editing a contact record. EXAMPLE: If your organization does not record Gender and Birth Date for individuals, then simplify the form by un-checking this option. Drag interface allows you to change the order of the panes displayed on contact add/edit screen.'),
     'help_text' => NULL,
     'serialize' => CRM_Core_DAO::SERIALIZE_SEPARATOR_BOOKEND,
-  ),
-  'advanced_search_options' => array(
+  ],
+  'advanced_search_options' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'advanced_search_options',
     'type' => 'String',
     'html_type' => 'checkboxes',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'advanced_search_options',
     'type' => 'String',
     'html_type' => 'checkboxes',
-    'pseudoconstant' => array(
+    'pseudoconstant' => [
       'optionGroupName' => 'advanced_search_options',
       'optionGroupName' => 'advanced_search_options',
-    ),
+    ],
     'default' => '\ 11\ 12\ 13\ 14\ 15\ 16\ 17\ 18\ 19\ 110\ 111\ 112\ 113\ 115\ 116\ 117\ 118\ 119\ 1',
     'add' => '4.1',
     'title' => ts('Contact Search'),
     'default' => '\ 11\ 12\ 13\ 14\ 15\ 16\ 17\ 18\ 19\ 110\ 111\ 112\ 113\ 115\ 116\ 117\ 118\ 119\ 1',
     'add' => '4.1',
     'title' => ts('Contact Search'),
@@ -88,16 +87,16 @@ return array(
     'is_contact' => 0,
     'description' => ts('Select the sections that should be included in the Basic and Advanced Search forms. EXAMPLE: If you don\'t track Relationships - then you do not need this section included in the advanced search form. Simplify the form by un-checking this option.'),
     'serialize' => CRM_Core_DAO::SERIALIZE_SEPARATOR_BOOKEND,
     'is_contact' => 0,
     'description' => ts('Select the sections that should be included in the Basic and Advanced Search forms. EXAMPLE: If you don\'t track Relationships - then you do not need this section included in the advanced search form. Simplify the form by un-checking this option.'),
     'serialize' => CRM_Core_DAO::SERIALIZE_SEPARATOR_BOOKEND,
-  ),
-  'user_dashboard_options' => array(
+  ],
+  'user_dashboard_options' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'user_dashboard_options',
     'type' => 'String',
     'html_type' => 'checkboxes',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'user_dashboard_options',
     'type' => 'String',
     'html_type' => 'checkboxes',
-    'pseudoconstant' => array(
+    'pseudoconstant' => [
       'optionGroupName' => 'user_dashboard_options',
       'optionGroupName' => 'user_dashboard_options',
-    ),
+    ],
     'default' => '\ 11\ 12\ 13\ 14\ 15\ 17\ 18\ 1',
     'add' => '4.1',
     'title' => ts('Contact Dashboard'),
     'default' => '\ 11\ 12\ 13\ 14\ 15\ 17\ 18\ 1',
     'add' => '4.1',
     'title' => ts('Contact Dashboard'),
@@ -106,16 +105,16 @@ return array(
     'description' => ts('Select the sections that should be included in the Contact Dashboard. EXAMPLE: If you don\'t want constituents to view their own contribution history, un-check that option.'),
     'help_text' => NULL,
     'serialize' => CRM_Core_DAO::SERIALIZE_SEPARATOR_BOOKEND,
     'description' => ts('Select the sections that should be included in the Contact Dashboard. EXAMPLE: If you don\'t want constituents to view their own contribution history, un-check that option.'),
     'help_text' => NULL,
     'serialize' => CRM_Core_DAO::SERIALIZE_SEPARATOR_BOOKEND,
-  ),
-  'address_options' => array(
+  ],
+  'address_options' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'address_options',
     'type' => 'String',
     'html_type' => 'checkboxes',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'address_options',
     'type' => 'String',
     'html_type' => 'checkboxes',
-    'pseudoconstant' => array(
+    'pseudoconstant' => [
       'optionGroupName' => 'address_options',
       'optionGroupName' => 'address_options',
-    ),
+    ],
     'default' => '\ 11\ 12\ 13\ 14\ 15\ 16\ 18\ 19\ 110\ 111\ 1',
     'add' => '4.1',
     'title' => ts('Address Fields'),
     'default' => '\ 11\ 12\ 13\ 14\ 15\ 16\ 18\ 19\ 110\ 111\ 1',
     'add' => '4.1',
     'title' => ts('Address Fields'),
@@ -124,8 +123,8 @@ return array(
     'description' => NULL,
     'help_text' => NULL,
     'serialize' => CRM_Core_DAO::SERIALIZE_SEPARATOR_BOOKEND,
     'description' => NULL,
     'help_text' => NULL,
     'serialize' => CRM_Core_DAO::SERIALIZE_SEPARATOR_BOOKEND,
-  ),
-  'address_format' => array(
+  ],
+  'address_format' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'address_format',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'address_format',
@@ -138,8 +137,8 @@ return array(
     'is_contact' => 0,
     'description' => NULL,
     'help_text' => NULL,
     'is_contact' => 0,
     'description' => NULL,
     'help_text' => NULL,
-  ),
-  'mailing_format' => array(
+  ],
+  'mailing_format' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'mailing_format',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'mailing_format',
@@ -152,8 +151,8 @@ return array(
     'is_contact' => 0,
     'description' => NULL,
     'help_text' => NULL,
     'is_contact' => 0,
     'description' => NULL,
     'help_text' => NULL,
-  ),
-  'display_name_format' => array(
+  ],
+  'display_name_format' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'display_name_format',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'display_name_format',
@@ -165,8 +164,8 @@ return array(
     'is_domain' => 1,
     'is_contact' => 0,
     'description' => ts('Display name format for individual contact display names.'),
     'is_domain' => 1,
     'is_contact' => 0,
     'description' => ts('Display name format for individual contact display names.'),
-  ),
-  'sort_name_format' => array(
+  ],
+  'sort_name_format' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'sort_name_format',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'sort_name_format',
@@ -178,8 +177,8 @@ return array(
     'is_domain' => 1,
     'is_contact' => 0,
     'description' => ts('Sort name format for individual contact display names.'),
     'is_domain' => 1,
     'is_contact' => 0,
     'description' => ts('Sort name format for individual contact display names.'),
-  ),
-  'remote_profile_submissions' => array(
+  ],
+  'remote_profile_submissions' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'remote_profile_submissions',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'remote_profile_submissions',
@@ -193,8 +192,8 @@ return array(
     'is_contact' => 0,
     'description' => ts('If enabled, CiviCRM will permit submissions from external sites to profiles. This is disabled by default to limit abuse.'),
     'help_text' => NULL,
     'is_contact' => 0,
     'description' => ts('If enabled, CiviCRM will permit submissions from external sites to profiles. This is disabled by default to limit abuse.'),
     'help_text' => NULL,
-  ),
-  'allow_alert_autodismissal' => array(
+  ],
+  'allow_alert_autodismissal' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'allow_alert_autodismissal',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'allow_alert_autodismissal',
@@ -208,8 +207,8 @@ return array(
     'is_contact' => 0,
     'description' => ts('If disabled, CiviCRM will not automatically dismiss any alerts after 10 seconds.'),
     'help_text' => NULL,
     'is_contact' => 0,
     'description' => ts('If disabled, CiviCRM will not automatically dismiss any alerts after 10 seconds.'),
     'help_text' => NULL,
-  ),
-  'editor_id' => array(
+  ],
+  'editor_id' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'editor_id',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'editor_id',
@@ -218,16 +217,16 @@ return array(
     'default' => 'CKEditor',
     'add' => '4.1',
     'title' => ts('Wysiwig Editor'),
     'default' => 'CKEditor',
     'add' => '4.1',
     'title' => ts('Wysiwig Editor'),
-    'pseudoconstant' => array(
+    'pseudoconstant' => [
       'optionGroupName' => 'wysiwyg_editor',
       'keyColumn' => 'name',
       'optionGroupName' => 'wysiwyg_editor',
       'keyColumn' => 'name',
-    ),
+    ],
     'is_domain' => 1,
     'is_contact' => 0,
     'description' => NULL,
     'help_text' => NULL,
     'is_domain' => 1,
     'is_contact' => 0,
     'description' => NULL,
     'help_text' => NULL,
-  ),
-  'contact_ajax_check_similar' => array(
+  ],
+  'contact_ajax_check_similar' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'contact_ajax_check_similar',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'contact_ajax_check_similar',
@@ -241,8 +240,8 @@ return array(
     'description' => NULL,
     'help_text' => NULL,
     'options' => ['1' => ts('While Typing'), '0' => ts('When Saving'), '2' => ts('Never')],
     'description' => NULL,
     'help_text' => NULL,
     'options' => ['1' => ts('While Typing'), '0' => ts('When Saving'), '2' => ts('Never')],
-  ),
-  'ajaxPopupsEnabled' => array(
+  ],
+  'ajaxPopupsEnabled' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'ajaxPopupsEnabled',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'ajaxPopupsEnabled',
@@ -255,8 +254,8 @@ return array(
     'is_contact' => 0,
     'description' => NULL,
     'help_text' => NULL,
     'is_contact' => 0,
     'description' => NULL,
     'help_text' => NULL,
-  ),
-  'activity_assignee_notification' => array(
+  ],
+  'activity_assignee_notification' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'activity_assignee_notification',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'activity_assignee_notification',
@@ -269,8 +268,8 @@ return array(
     'is_contact' => 0,
     'description' => NULL,
     'help_text' => NULL,
     'is_contact' => 0,
     'description' => NULL,
     'help_text' => NULL,
-  ),
-  'activity_assignee_notification_ics' => array(
+  ],
+  'activity_assignee_notification_ics' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'activity_assignee_notification_ics',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'activity_assignee_notification_ics',
@@ -283,17 +282,16 @@ return array(
     'is_contact' => 0,
     'description' => NULL,
     'help_text' => NULL,
     'is_contact' => 0,
     'description' => NULL,
     'help_text' => NULL,
-  ),
-  'contact_autocomplete_options' => array(
+  ],
+  'contact_autocomplete_options' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'contact_autocomplete_options',
     'type' => 'String',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'contact_autocomplete_options',
     'type' => 'String',
-    'quick_form_type' => 'CheckBoxes',
     'html_type' => 'checkboxes',
     'html_type' => 'checkboxes',
-    'pseudoconstant' => array(
+    'pseudoconstant' => [
       'callback' => 'CRM_Admin_Form_Setting_Search::getContactAutocompleteOptions',
       'callback' => 'CRM_Admin_Form_Setting_Search::getContactAutocompleteOptions',
-    ),
+    ],
     'default' => '\ 11\ 12\ 1',
     'add' => '4.1',
     'title' => ts('Autocomplete Contact Search'),
     'default' => '\ 11\ 12\ 1',
     'add' => '4.1',
     'title' => ts('Autocomplete Contact Search'),
@@ -302,17 +300,17 @@ return array(
     'description' => ts("Selected fields will be displayed in back-office autocomplete dropdown search results (Quick Search, etc.). Contact Name is always included."),
     'help_text' => NULL,
     'serialize' => CRM_Core_DAO::SERIALIZE_SEPARATOR_BOOKEND,
     'description' => ts("Selected fields will be displayed in back-office autocomplete dropdown search results (Quick Search, etc.). Contact Name is always included."),
     'help_text' => NULL,
     'serialize' => CRM_Core_DAO::SERIALIZE_SEPARATOR_BOOKEND,
-  ),
-  'contact_reference_options' => array(
+    'validate_callback' => 'CRM_Admin_Form_Setting_Search::enableOptionOne',
+  ],
+  'contact_reference_options' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'contact_reference_options',
     'type' => 'String',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'contact_reference_options',
     'type' => 'String',
-    'quick_form_type' => 'CheckBoxes',
     'html_type' => 'checkboxes',
     'html_type' => 'checkboxes',
-    'pseudoconstant' => array(
+    'pseudoconstant' => [
       'callback' => 'CRM_Admin_Form_Setting_Search::getContactReferenceOptions',
       'callback' => 'CRM_Admin_Form_Setting_Search::getContactReferenceOptions',
-    ),
+    ],
     'default' => '\ 11\ 12\ 1',
     'add' => '4.1',
     'title' => ts('Contact Reference Options'),
     'default' => '\ 11\ 12\ 1',
     'add' => '4.1',
     'title' => ts('Contact Reference Options'),
@@ -321,8 +319,9 @@ return array(
     'description' => ts("Selected fields will be displayed in autocomplete dropdown search results for 'Contact Reference' custom fields. Contact Name is always included. NOTE: You must assign 'access contact reference fields' permission to the anonymous role if you want to use custom contact reference fields in profiles on public pages. For most situations, you should use the 'Limit List to Group' setting when configuring a contact reference field which will be used in public forms to prevent exposing your entire contact list."),
     'help_text' => NULL,
     'serialize' => CRM_Core_DAO::SERIALIZE_SEPARATOR_BOOKEND,
     'description' => ts("Selected fields will be displayed in autocomplete dropdown search results for 'Contact Reference' custom fields. Contact Name is always included. NOTE: You must assign 'access contact reference fields' permission to the anonymous role if you want to use custom contact reference fields in profiles on public pages. For most situations, you should use the 'Limit List to Group' setting when configuring a contact reference field which will be used in public forms to prevent exposing your entire contact list."),
     'help_text' => NULL,
     'serialize' => CRM_Core_DAO::SERIALIZE_SEPARATOR_BOOKEND,
-  ),
-  'contact_smart_group_display' => array(
+    'validate_callback' => 'CRM_Admin_Form_Setting_Search::enableOptionOne',
+  ],
+  'contact_smart_group_display' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'contact_smart_group_display',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'contact_smart_group_display',
@@ -335,11 +334,11 @@ return array(
     'is_contact' => 0,
     'description' => ts('Controls display of the smart groups that a contact is part of in each contact\'s "Groups" tab. "Show on Demand" provides the best performance, and is recommended for most sites.'),
     'help_text' => NULL,
     'is_contact' => 0,
     'description' => ts('Controls display of the smart groups that a contact is part of in each contact\'s "Groups" tab. "Show on Demand" provides the best performance, and is recommended for most sites.'),
     'help_text' => NULL,
-    'pseudoconstant' => array(
+    'pseudoconstant' => [
       'optionGroupName' => 'contact_smart_group_display',
       'optionGroupName' => 'contact_smart_group_display',
-    ),
-  ),
-  'smart_group_cache_refresh_mode' => array(
+    ],
+  ],
+  'smart_group_cache_refresh_mode' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'smart_group_cache_refresh_mode',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'smart_group_cache_refresh_mode',
@@ -350,13 +349,13 @@ return array(
     'title' => ts('Smart Group Refresh Mode'),
     'is_domain' => 1,
     'is_contact' => 0,
     'title' => ts('Smart Group Refresh Mode'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'pseudoconstant' => array(
+    'pseudoconstant' => [
       'callback' => 'CRM_Contact_BAO_GroupContactCache::getModes',
       'callback' => 'CRM_Contact_BAO_GroupContactCache::getModes',
-    ),
+    ],
     'description' => ts('Should the smart groups be by cron jobs or user actions'),
     'help_text' => ts('In "Opportunistic Flush" mode, caches are flushed in response to user actions; this mode is broadly compatible but may add latency during form-submissions. In "Cron Flush" mode, you should schedule a cron job to flush caches; this can improve latency on form-submissions but requires more setup.'),
     'description' => ts('Should the smart groups be by cron jobs or user actions'),
     'help_text' => ts('In "Opportunistic Flush" mode, caches are flushed in response to user actions; this mode is broadly compatible but may add latency during form-submissions. In "Cron Flush" mode, you should schedule a cron job to flush caches; this can improve latency on form-submissions but requires more setup.'),
-  ),
-  'installed' => array(
+  ],
+  'installed' => [
     'bootstrap_comment' => 'This is a boot setting which may be loaded during bootstrap. Defaults are loaded via SettingsBag::getSystemDefaults().',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'bootstrap_comment' => 'This is a boot setting which may be loaded during bootstrap. Defaults are loaded via SettingsBag::getSystemDefaults().',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
@@ -370,8 +369,8 @@ return array(
     'is_contact' => 0,
     'description' => ts('A flag indicating whether this system has run a post-installation routine'),
     'help_text' => NULL,
     'is_contact' => 0,
     'description' => ts('A flag indicating whether this system has run a post-installation routine'),
     'help_text' => NULL,
-  ),
-  'max_attachments' => array(
+  ],
+  'max_attachments' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'max_attachments',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'max_attachments',
@@ -379,10 +378,10 @@ return array(
     'type' => 'Integer',
     'quick_form_type' => 'Element',
     'html_type' => 'text',
     'type' => 'Integer',
     'quick_form_type' => 'Element',
     'html_type' => 'text',
-    'html_attributes' => array(
+    'html_attributes' => [
       'size' => 2,
       'maxlength' => 8,
       'size' => 2,
       'maxlength' => 8,
-    ),
+    ],
     'default' => 3,
     'add' => '4.3',
     'title' => ts('Maximum Attachments'),
     'default' => 3,
     'add' => '4.3',
     'title' => ts('Maximum Attachments'),
@@ -390,18 +389,18 @@ return array(
     'is_contact' => 0,
     'description' => ts('Maximum number of files (documents, images, etc.) which can be attached to emails or activities.'),
     'help_text' => NULL,
     'is_contact' => 0,
     'description' => ts('Maximum number of files (documents, images, etc.) which can be attached to emails or activities.'),
     'help_text' => NULL,
-  ),
-  'maxFileSize' => array(
+  ],
+  'maxFileSize' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'maxFileSize',
     'type' => 'Integer',
     'quick_form_type' => 'Element',
     'html_type' => 'text',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'maxFileSize',
     'type' => 'Integer',
     'quick_form_type' => 'Element',
     'html_type' => 'text',
-    'html_attributes' => array(
+    'html_attributes' => [
       'size' => 2,
       'maxlength' => 8,
       'size' => 2,
       'maxlength' => 8,
-    ),
+    ],
     'default' => 3,
     'add' => '4.3',
     'title' => ts('Maximum File Size (in MB)'),
     'default' => 3,
     'add' => '4.3',
     'title' => ts('Maximum File Size (in MB)'),
@@ -409,8 +408,8 @@ return array(
     'is_contact' => 0,
     'description' => ts('Maximum Size of file (documents, images, etc.) which can be attached to emails or activities.<br />Note: php.ini should support this file size.'),
     'help_text' => NULL,
     'is_contact' => 0,
     'description' => ts('Maximum Size of file (documents, images, etc.) which can be attached to emails or activities.<br />Note: php.ini should support this file size.'),
     'help_text' => NULL,
-  ),
-  'contact_undelete' => array(
+  ],
+  'contact_undelete' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'contact_undelete',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'contact_undelete',
@@ -423,8 +422,8 @@ return array(
     'is_contact' => 0,
     'description' => ts('If enabled, deleted contacts will be moved to trash (instead of being destroyed). Users with the proper permission are able to search for the deleted contacts and restore them (or delete permanently).'),
     'help_text' => NULL,
     'is_contact' => 0,
     'description' => ts('If enabled, deleted contacts will be moved to trash (instead of being destroyed). Users with the proper permission are able to search for the deleted contacts and restore them (or delete permanently).'),
     'help_text' => NULL,
-  ),
-  'allowPermDeleteFinancial' => array(
+  ],
+  'allowPermDeleteFinancial' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'allowPermDeleteFinancial',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'allowPermDeleteFinancial',
@@ -437,8 +436,8 @@ return array(
     'is_contact' => 0,
     'description' => ts('Allow Permanent Delete for contacts who are linked to live financial transactions'),
     'help_text' => NULL,
     'is_contact' => 0,
     'description' => ts('Allow Permanent Delete for contacts who are linked to live financial transactions'),
     'help_text' => NULL,
-  ),
-  'securityAlert' => array(
+  ],
+  'securityAlert' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'securityAlert',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'securityAlert',
@@ -451,8 +450,8 @@ return array(
     'is_contact' => 0,
     'description' => ts("If enabled, CiviCRM will display pop-up notifications (no more than once per day) for security and misconfiguration issues identified in the system check."),
     'help_text' => NULL,
     'is_contact' => 0,
     'description' => ts("If enabled, CiviCRM will display pop-up notifications (no more than once per day) for security and misconfiguration issues identified in the system check."),
     'help_text' => NULL,
-  ),
-  'doNotAttachPDFReceipt' => array(
+  ],
+  'doNotAttachPDFReceipt' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'doNotAttachPDFReceipt',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'doNotAttachPDFReceipt',
@@ -465,17 +464,17 @@ return array(
     'is_contact' => 0,
     'description' => ts("If enabled, CiviCRM sends PDF receipt as an attachment during event signup or online contribution."),
     'help_text' => NULL,
     'is_contact' => 0,
     'description' => ts("If enabled, CiviCRM sends PDF receipt as an attachment during event signup or online contribution."),
     'help_text' => NULL,
-  ),
-  'recordGeneratedLetters' => array(
+  ],
+  'recordGeneratedLetters' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'recordGeneratedLetters',
     'type' => 'String',
     'quick_form_type' => 'Select',
     'html_type' => 'Select',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'recordGeneratedLetters',
     'type' => 'String',
     'quick_form_type' => 'Select',
     'html_type' => 'Select',
-    'html_attributes' => array(
+    'html_attributes' => [
       'class' => 'crm-select2',
       'class' => 'crm-select2',
-    ),
+    ],
     'default' => 'multiple',
     'add' => '4.7',
     'title' => ts('Record generated letters'),
     'default' => 'multiple',
     'add' => '4.7',
     'title' => ts('Record generated letters'),
@@ -483,20 +482,20 @@ return array(
     'is_contact' => 0,
     'description' => ts('When generating a letter (PDF/Word) via mail-merge, how should the letter be recorded?'),
     'help_text' => NULL,
     'is_contact' => 0,
     'description' => ts('When generating a letter (PDF/Word) via mail-merge, how should the letter be recorded?'),
     'help_text' => NULL,
-    'pseudoconstant' => array(
+    'pseudoconstant' => [
       'callback' => 'CRM_Contact_Form_Task_PDFLetterCommon::getLoggingOptions',
       'callback' => 'CRM_Contact_Form_Task_PDFLetterCommon::getLoggingOptions',
-    ),
-  ),
-  'wkhtmltopdfPath' => array(
+    ],
+  ],
+  'wkhtmltopdfPath' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'wkhtmltopdfPath',
     'type' => 'String',
     'quick_form_type' => 'Element',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'wkhtmltopdfPath',
     'type' => 'String',
     'quick_form_type' => 'Element',
-    'html_attributes' => array(
+    'html_attributes' => [
       'size' => 64,
       'maxlength' => 256,
       'size' => 64,
       'maxlength' => 256,
-    ),
+    ],
     'html_type' => 'text',
     'default' => NULL,
     'add' => '4.3',
     'html_type' => 'text',
     'default' => NULL,
     'add' => '4.3',
@@ -505,17 +504,17 @@ return array(
     'is_contact' => 0,
     'description' => NULL,
     'help_text' => NULL,
     'is_contact' => 0,
     'description' => NULL,
     'help_text' => NULL,
-  ),
-  'recaptchaOptions' => array(
+  ],
+  'recaptchaOptions' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'recaptchaOptions',
     'type' => 'String',
     'quick_form_type' => 'Element',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'recaptchaOptions',
     'type' => 'String',
     'quick_form_type' => 'Element',
-    'html_attributes' => array(
+    'html_attributes' => [
       'size' => 64,
       'maxlength' => 64,
       'size' => 64,
       'maxlength' => 64,
-    ),
+    ],
     'html_type' => 'text',
     'default' => NULL,
     'add' => '4.3',
     'html_type' => 'text',
     'default' => NULL,
     'add' => '4.3',
@@ -524,17 +523,17 @@ return array(
     'is_contact' => 0,
     'description' => ts('You can specify the reCAPTCHA theme options as comma separated data.(eg: theme:\'blackglass\', lang : \'fr\' ). Check the available options at <a href="https://developers.google.com/recaptcha/docs/display#config">Customizing the Look and Feel of reCAPTCHA</a>.'),
     'help_text' => NULL,
     'is_contact' => 0,
     'description' => ts('You can specify the reCAPTCHA theme options as comma separated data.(eg: theme:\'blackglass\', lang : \'fr\' ). Check the available options at <a href="https://developers.google.com/recaptcha/docs/display#config">Customizing the Look and Feel of reCAPTCHA</a>.'),
     'help_text' => NULL,
-  ),
-  'recaptchaPublicKey' => array(
+  ],
+  'recaptchaPublicKey' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'recaptchaPublicKey',
     'type' => 'String',
     'quick_form_type' => 'Element',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'recaptchaPublicKey',
     'type' => 'String',
     'quick_form_type' => 'Element',
-    'html_attributes' => array(
+    'html_attributes' => [
       'size' => 64,
       'maxlength' => 64,
       'size' => 64,
       'maxlength' => 64,
-    ),
+    ],
     'html_type' => 'text',
     'default' => NULL,
     'add' => '4.3',
     'html_type' => 'text',
     'default' => NULL,
     'add' => '4.3',
@@ -543,8 +542,8 @@ return array(
     'is_contact' => 0,
     'description' => NULL,
     'help_text' => NULL,
     'is_contact' => 0,
     'description' => NULL,
     'help_text' => NULL,
-  ),
-  'forceRecaptcha' => array(
+  ],
+  'forceRecaptcha' => [
     'add' => '4.7',
     'help_text' => NULL,
     'is_domain' => 1,
     'add' => '4.7',
     'help_text' => NULL,
     'is_domain' => 1,
@@ -558,17 +557,17 @@ return array(
     'default' => '0',
     'title' => ts('Force reCAPTCHA on Contribution pages'),
     'description' => ts('If enabled, reCAPTCHA will show on all contribution pages.'),
     'default' => '0',
     'title' => ts('Force reCAPTCHA on Contribution pages'),
     'description' => ts('If enabled, reCAPTCHA will show on all contribution pages.'),
-  ),
-  'recaptchaPrivateKey' => array(
+  ],
+  'recaptchaPrivateKey' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'recaptchaPrivateKey',
     'type' => 'String',
     'quick_form_type' => 'Element',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'recaptchaPrivateKey',
     'type' => 'String',
     'quick_form_type' => 'Element',
-    'html_attributes' => array(
+    'html_attributes' => [
       'size' => 64,
       'maxlength' => 64,
       'size' => 64,
       'maxlength' => 64,
-    ),
+    ],
     'html_type' => 'text',
     'default' => NULL,
     'add' => '4.3',
     'html_type' => 'text',
     'default' => NULL,
     'add' => '4.3',
@@ -577,17 +576,17 @@ return array(
     'is_contact' => 0,
     'description' => NULL,
     'help_text' => NULL,
     'is_contact' => 0,
     'description' => NULL,
     'help_text' => NULL,
-  ),
-  'checksum_timeout' => array(
+  ],
+  'checksum_timeout' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'checksum_timeout',
     'type' => 'Integer',
     'quick_form_type' => 'Element',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'checksum_timeout',
     'type' => 'Integer',
     'quick_form_type' => 'Element',
-    'html_attributes' => array(
+    'html_attributes' => [
       'size' => 2,
       'maxlength' => 8,
       'size' => 2,
       'maxlength' => 8,
-    ),
+    ],
     'html_type' => 'text',
     'default' => 7,
     'add' => '4.3',
     'html_type' => 'text',
     'default' => 7,
     'add' => '4.3',
@@ -596,17 +595,17 @@ return array(
     'is_contact' => 0,
     'description' => NULL,
     'help_text' => NULL,
     'is_contact' => 0,
     'description' => NULL,
     'help_text' => NULL,
-  ),
-  'blogUrl' => array(
+  ],
+  'blogUrl' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'blogUrl',
     'type' => 'String',
     'quick_form_type' => 'Element',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'blogUrl',
     'type' => 'String',
     'quick_form_type' => 'Element',
-    'html_attributes' => array(
+    'html_attributes' => [
       'size' => 64,
       'maxlength' => 128,
       'size' => 64,
       'maxlength' => 128,
-    ),
+    ],
     'html_type' => 'text',
     'default' => '*default*',
     'add' => '4.3',
     'html_type' => 'text',
     'default' => '*default*',
     'add' => '4.3',
@@ -615,17 +614,17 @@ return array(
     'is_contact' => 0,
     'description' => ts('Blog feed URL used by the blog dashlet'),
     'help_text' => ts('Use "*default*" for the system default or override with a custom URL'),
     'is_contact' => 0,
     'description' => ts('Blog feed URL used by the blog dashlet'),
     'help_text' => ts('Use "*default*" for the system default or override with a custom URL'),
-  ),
-  'communityMessagesUrl' => array(
+  ],
+  'communityMessagesUrl' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'communityMessagesUrl',
     'type' => 'String',
     'quick_form_type' => 'Element',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'communityMessagesUrl',
     'type' => 'String',
     'quick_form_type' => 'Element',
-    'html_attributes' => array(
+    'html_attributes' => [
       'size' => 64,
       'maxlength' => 128,
       'size' => 64,
       'maxlength' => 128,
-    ),
+    ],
     'html_type' => 'text',
     'default' => '*default*',
     'add' => '4.3',
     'html_type' => 'text',
     'default' => '*default*',
     'add' => '4.3',
@@ -634,17 +633,17 @@ return array(
     'is_contact' => 0,
     'description' => ts('Service providing CiviCRM community messages'),
     'help_text' => ts('Use "*default*" for the system default or override with a custom URL'),
     'is_contact' => 0,
     'description' => ts('Service providing CiviCRM community messages'),
     'help_text' => ts('Use "*default*" for the system default or override with a custom URL'),
-  ),
-  'gettingStartedUrl' => array(
+  ],
+  'gettingStartedUrl' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'gettingStartedUrl',
     'type' => 'String',
     'quick_form_type' => 'Element',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'gettingStartedUrl',
     'type' => 'String',
     'quick_form_type' => 'Element',
-    'html_attributes' => array(
+    'html_attributes' => [
       'size' => 64,
       'maxlength' => 128,
       'size' => 64,
       'maxlength' => 128,
-    ),
+    ],
     'html_type' => 'text',
     'default' => '*default*',
     'add' => '4.3',
     'html_type' => 'text',
     'default' => '*default*',
     'add' => '4.3',
@@ -653,8 +652,8 @@ return array(
     'is_contact' => 0,
     'description' => ts('Service providing the Getting Started data'),
     'help_text' => ts('Use "*default*" for the system default or override with a custom URL'),
     'is_contact' => 0,
     'description' => ts('Service providing the Getting Started data'),
     'help_text' => ts('Use "*default*" for the system default or override with a custom URL'),
-  ),
-  'resCacheCode' => array(
+  ],
+  'resCacheCode' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'resCacheCode',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'resCacheCode',
@@ -668,8 +667,8 @@ return array(
     'is_contact' => 0,
     'description' => ts('Code appended to resource URLs (JS/CSS) to coerce HTTP caching'),
     'help_text' => NULL,
     'is_contact' => 0,
     'description' => ts('Code appended to resource URLs (JS/CSS) to coerce HTTP caching'),
     'help_text' => NULL,
-  ),
-  'verifySSL' => array(
+  ],
+  'verifySSL' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'verifySSL',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'verifySSL',
@@ -682,8 +681,8 @@ return array(
     'is_contact' => 0,
     'description' => ts('If disabled, outbound web-service requests will allow unverified, insecure HTTPS connections'),
     'help_text' => ts('Unless you are absolutely unable to configure your server to check the SSL certificate of the remote server you should leave this set to Yes'),
     'is_contact' => 0,
     'description' => ts('If disabled, outbound web-service requests will allow unverified, insecure HTTPS connections'),
     'help_text' => ts('Unless you are absolutely unable to configure your server to check the SSL certificate of the remote server you should leave this set to Yes'),
-  ),
-  'enableSSL' => array(
+  ],
+  'enableSSL' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'enableSSL',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'enableSSL',
@@ -696,8 +695,8 @@ return array(
     'is_contact' => 0,
     'description' => ts('If enabled, inbound HTTP requests for sensitive pages will be redirected to HTTPS.'),
     'help_text' => ts('If enabled, inbound HTTP requests for sensitive pages will be redirected to HTTPS.'),
     'is_contact' => 0,
     'description' => ts('If enabled, inbound HTTP requests for sensitive pages will be redirected to HTTPS.'),
     'help_text' => ts('If enabled, inbound HTTP requests for sensitive pages will be redirected to HTTPS.'),
-  ),
-  'wpBasePage' => array(
+  ],
+  'wpBasePage' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'wpBasePage',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'wpBasePage',
@@ -711,8 +710,8 @@ return array(
     'is_contact' => 0,
     'description' => ts('If set, CiviCRM will use this setting as the base url.'),
     'help_text' => ts('By default, CiviCRM will generate front-facing pages using the home page at http://wp/ as its base. If you want to use a different template for CiviCRM pages, set the path here.'),
     'is_contact' => 0,
     'description' => ts('If set, CiviCRM will use this setting as the base url.'),
     'help_text' => ts('By default, CiviCRM will generate front-facing pages using the home page at http://wp/ as its base. If you want to use a different template for CiviCRM pages, set the path here.'),
-  ),
-  'secondDegRelPermissions' => array(
+  ],
+  'secondDegRelPermissions' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'secondDegRelPermissions',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'secondDegRelPermissions',
@@ -725,20 +724,14 @@ return array(
     'is_contact' => 0,
     'description' => ts("If enabled, contacts with the permission to edit a related contact will inherit that contact's permission to edit other related contacts"),
     'help_text' => NULL,
     'is_contact' => 0,
     'description' => ts("If enabled, contacts with the permission to edit a related contact will inherit that contact's permission to edit other related contacts"),
     'help_text' => NULL,
-  ),
-  'enable_components' => array(
+  ],
+  'enable_components' => [
     'bootstrap_comment' => 'This is a boot setting which may be loaded during bootstrap. Defaults are loaded via SettingsBag::getSystemDefaults().',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'enable_components',
     'type' => 'Array',
     'bootstrap_comment' => 'This is a boot setting which may be loaded during bootstrap. Defaults are loaded via SettingsBag::getSystemDefaults().',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'enable_components',
     'type' => 'Array',
-    'quick_form_type' => 'Element',
-    'html_type' => 'advmultiselect',
-    'html_attributes' => array(
-      'size' => 5,
-      'style' => 'width:150px',
-      'class' => 'advmultiselect',
-    ),
+    'html_type' => 'checkboxes',
     'default' => NULL,
     'add' => '4.4',
     'title' => ts('Enable Components'),
     'default' => NULL,
     'add' => '4.4',
     'title' => ts('Enable Components'),
@@ -746,13 +739,16 @@ return array(
     'is_contact' => 0,
     'description' => NULL,
     'help_text' => NULL,
     'is_contact' => 0,
     'description' => NULL,
     'help_text' => NULL,
-    'on_change' => array(
+    'on_change' => [
       'CRM_Case_Info::onToggleComponents',
       'CRM_Core_Component::flushEnabledComponents',
       'call://resources/resetCacheCode',
       'CRM_Case_Info::onToggleComponents',
       'CRM_Core_Component::flushEnabledComponents',
       'call://resources/resetCacheCode',
-    ),
-  ),
-  'disable_core_css' => array(
+    ],
+    'pseudoconstant' => [
+      'callback' => 'CRM_Core_SelectValues::getComponentSelectValues',
+    ],
+  ],
+  'disable_core_css' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'disable_core_css',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'disable_core_css',
@@ -765,8 +761,8 @@ return array(
     'is_contact' => 0,
     'description' => ts('Prevent the stylesheet "civicrm.css" from being loaded.'),
     'help_text' => NULL,
     'is_contact' => 0,
     'description' => ts('Prevent the stylesheet "civicrm.css" from being loaded.'),
     'help_text' => NULL,
-  ),
-  'empoweredBy' => array(
+  ],
+  'empoweredBy' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'empoweredBy',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'empoweredBy',
@@ -779,8 +775,8 @@ return array(
     'is_contact' => 0,
     'description' => ts('When enabled, "empowered by CiviCRM" is displayed at the bottom of public forms.'),
     'help_text' => NULL,
     'is_contact' => 0,
     'description' => ts('When enabled, "empowered by CiviCRM" is displayed at the bottom of public forms.'),
     'help_text' => NULL,
-  ),
-  'logging_no_trigger_permission' => array(
+  ],
+  'logging_no_trigger_permission' => [
     'add' => '4.7',
     'is_domain' => 1,
     'is_contact' => 0,
     'add' => '4.7',
     'is_domain' => 1,
     'is_contact' => 0,
@@ -794,8 +790,8 @@ return array(
     'default' => 0,
     'title' => ts('(EXPERIMENTAL) MySQL user does not have trigger permissions'),
     'description' => ts('Set this when you intend to manage trigger creation outside of CiviCRM'),
     'default' => 0,
     'title' => ts('(EXPERIMENTAL) MySQL user does not have trigger permissions'),
     'description' => ts('Set this when you intend to manage trigger creation outside of CiviCRM'),
-  ),
-  'logging' => array(
+  ],
+  'logging' => [
     'add' => '4.7',
     'help_text' => NULL,
     'is_domain' => 1,
     'add' => '4.7',
     'help_text' => NULL,
     'is_domain' => 1,
@@ -810,11 +806,11 @@ return array(
     'title' => ts('Logging'),
     'description' => ts('If enabled, all actions will be logged with a complete record of changes.'),
     'validate_callback' => 'CRM_Logging_Schema::checkLoggingSupport',
     'title' => ts('Logging'),
     'description' => ts('If enabled, all actions will be logged with a complete record of changes.'),
     'validate_callback' => 'CRM_Logging_Schema::checkLoggingSupport',
-    'on_change' => array(
+    'on_change' => [
       'CRM_Logging_Schema::onToggle',
       'CRM_Logging_Schema::onToggle',
-    ),
-  ),
-  'logging_uniqueid_date' => array(
+    ],
+  ],
+  'logging_uniqueid_date' => [
     'add' => '4.7',
     'help_text' => ts('This is the date when CRM-18193 was implemented'),
     'is_domain' => 1,
     'add' => '4.7',
     'help_text' => ts('This is the date when CRM-18193 was implemented'),
     'is_domain' => 1,
@@ -828,8 +824,8 @@ return array(
     'default' => NULL,
     'title' => ts('Logging Unique ID not recorded before'),
     'description' => ts('This is the date when CRM-18193 was implemented'),
     'default' => NULL,
     'title' => ts('Logging Unique ID not recorded before'),
     'description' => ts('This is the date when CRM-18193 was implemented'),
-  ),
-  'logging_all_tables_uniquid' => array(
+  ],
+  'logging_all_tables_uniquid' => [
     'add' => '4.7',
     'help_text' => ts('This indicates there are no tables holdng pre-uniqid log_conn_id values (CRM-18193)'),
     'is_domain' => 1,
     'add' => '4.7',
     'help_text' => ts('This indicates there are no tables holdng pre-uniqid log_conn_id values (CRM-18193)'),
     'is_domain' => 1,
@@ -843,8 +839,8 @@ return array(
     'default' => 0,
     'title' => ts('All tables use Unique Connection ID'),
     'description' => ts('Do some tables pre-date CRM-18193?'),
     'default' => 0,
     'title' => ts('All tables use Unique Connection ID'),
     'description' => ts('Do some tables pre-date CRM-18193?'),
-  ),
-  'userFrameworkUsersTableName' => array(
+  ],
+  'userFrameworkUsersTableName' => [
     'add' => '4.7',
     'help_text' => NULL,
     'is_domain' => 1,
     'add' => '4.7',
     'help_text' => NULL,
     'is_domain' => 1,
@@ -855,15 +851,15 @@ return array(
     'type' => 'String',
     'quick_form_type' => 'Element',
     'html_type' => 'text',
     'type' => 'String',
     'quick_form_type' => 'Element',
     'html_type' => 'text',
-    'html_attributes' => array(
+    'html_attributes' => [
       'size' => '32',
       'maxlength' => '64',
       'size' => '32',
       'maxlength' => '64',
-    ),
+    ],
     'default' => 'users',
     'title' => ts('CMS Users Table Name'),
     'description' => '',
     'default' => 'users',
     'title' => ts('CMS Users Table Name'),
     'description' => '',
-  ),
-  'wpLoadPhp' => array(
+  ],
+  'wpLoadPhp' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'wpLoadPhp',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'wpLoadPhp',
@@ -877,18 +873,18 @@ return array(
     'is_contact' => 0,
     'description' => ts('CiviCRM will use this setting as path to bootstrap WP.'),
     'help_text' => NULL,
     'is_contact' => 0,
     'description' => ts('CiviCRM will use this setting as path to bootstrap WP.'),
     'help_text' => NULL,
-  ),
-  'secure_cache_timeout_minutes' => array(
+  ],
+  'secure_cache_timeout_minutes' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'secure_cache_timeout_minutes',
     'type' => 'Integer',
     'quick_form_type' => 'Element',
     'html_type' => 'text',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'secure_cache_timeout_minutes',
     'type' => 'Integer',
     'quick_form_type' => 'Element',
     'html_type' => 'text',
-    'html_attributes' => array(
+    'html_attributes' => [
       'size' => 2,
       'maxlength' => 8,
       'size' => 2,
       'maxlength' => 8,
-    ),
+    ],
     'default' => 20,
     'add' => '4.7',
     'title' => ts('Secure Cache Timeout'),
     'default' => 20,
     'add' => '4.7',
     'title' => ts('Secure Cache Timeout'),
@@ -896,8 +892,8 @@ return array(
     'is_contact' => 0,
     'description' => ts('Maximum number of minutes that secure form data should linger'),
     'help_text' => NULL,
     'is_contact' => 0,
     'description' => ts('Maximum number of minutes that secure form data should linger'),
     'help_text' => NULL,
-  ),
-  'site_id' => array(
+  ],
+  'site_id' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'site_id',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'site_id',
@@ -911,18 +907,18 @@ return array(
     'is_contact' => 0,
     'description' => NULL,
     'help_text' => NULL,
     'is_contact' => 0,
     'description' => NULL,
     'help_text' => NULL,
-  ),
-  'recentItemsMaxCount' => array(
+  ],
+  'recentItemsMaxCount' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'recentItemsMaxCount',
     'type' => 'Integer',
     'quick_form_type' => 'Element',
     'html_type' => 'text',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'recentItemsMaxCount',
     'type' => 'Integer',
     'quick_form_type' => 'Element',
     'html_type' => 'text',
-    'html_attributes' => array(
+    'html_attributes' => [
       'size' => 2,
       'maxlength' => 3,
       'size' => 2,
       'maxlength' => 3,
-    ),
+    ],
     'default' => 20,
     'add' => '4.7',
     'title' => ts('Size of "Recent Items" stack'),
     'default' => 20,
     'add' => '4.7',
     'title' => ts('Size of "Recent Items" stack'),
@@ -930,18 +926,18 @@ return array(
     'is_contact' => 0,
     'description' => ts('How many items should CiviCRM store in it\'s "Recently viewed" list.'),
     'help_text' => NULL,
     'is_contact' => 0,
     'description' => ts('How many items should CiviCRM store in it\'s "Recently viewed" list.'),
     'help_text' => NULL,
-  ),
-  'recentItemsProviders' => array(
+  ],
+  'recentItemsProviders' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'recentItemsProviders',
     'type' => 'Array',
     'html_type' => 'Select',
     'quick_form_type' => 'Select',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'recentItemsProviders',
     'type' => 'Array',
     'html_type' => 'Select',
     'quick_form_type' => 'Select',
-    'html_attributes' => array(
+    'html_attributes' => [
       'multiple' => 1,
       'class' => 'crm-select2',
       'multiple' => 1,
       'class' => 'crm-select2',
-    ),
+    ],
     'default' => '',
     'add' => '4.7',
     'title' => ts('Recent Items Providers'),
     'default' => '',
     'add' => '4.7',
     'title' => ts('Recent Items Providers'),
@@ -949,11 +945,11 @@ return array(
     'is_contact' => 0,
     'description' => ts('What providers may save views in CiviCRM\'s "Recently viewed" list. If empty, all are in.'),
     'help_text' => NULL,
     'is_contact' => 0,
     'description' => ts('What providers may save views in CiviCRM\'s "Recently viewed" list. If empty, all are in.'),
     'help_text' => NULL,
-    'pseudoconstant' => array(
+    'pseudoconstant' => [
       'callback' => 'CRM_Utils_Recent::getProviders',
       'callback' => 'CRM_Utils_Recent::getProviders',
-    ),
-  ),
-  'dedupe_default_limit' => array(
+    ],
+  ],
+  'dedupe_default_limit' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'dedupe_default_limit',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'dedupe_default_limit',
@@ -967,8 +963,8 @@ return array(
     'is_contact' => 0,
     'description' => ts('Default to only loading matches against this number of contacts'),
     'help_text' => ts('Deduping larger databases can crash the server. By configuring a limit other than 0 here the dedupe query will only search for matches against a limited number of contacts.'),
     'is_contact' => 0,
     'description' => ts('Default to only loading matches against this number of contacts'),
     'help_text' => ts('Deduping larger databases can crash the server. By configuring a limit other than 0 here the dedupe query will only search for matches against a limited number of contacts.'),
-  ),
-  'syncCMSEmail' => array(
+  ],
+  'syncCMSEmail' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'syncCMSEmail',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'syncCMSEmail',
@@ -982,8 +978,8 @@ return array(
     'is_contact' => 0,
     'description' => ts('If enabled, then CMS email id will be synchronised with CiviCRM contacts\'s primary email.'),
     'help_text' => NULL,
     'is_contact' => 0,
     'description' => ts('If enabled, then CMS email id will be synchronised with CiviCRM contacts\'s primary email.'),
     'help_text' => NULL,
-  ),
-  'preserve_activity_tab_filter' => array(
+  ],
+  'preserve_activity_tab_filter' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'preserve_activity_tab_filter',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'preserve_activity_tab_filter',
@@ -995,8 +991,8 @@ return array(
     'is_domain' => 1,
     'is_contact' => 0,
     'description' => ts('When enabled, any filter settings a user selects on the contact\'s Activity tab will be remembered as they visit other contacts.'),
     'is_domain' => 1,
     'is_contact' => 0,
     'description' => ts('When enabled, any filter settings a user selects on the contact\'s Activity tab will be remembered as they visit other contacts.'),
-  ),
-  'do_not_notify_assignees_for' => array(
+  ],
+  'do_not_notify_assignees_for' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'do_not_notify_assignees_for',
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
     'name' => 'do_not_notify_assignees_for',
@@ -1004,17 +1000,66 @@ return array(
     'add' => '4.7',
     'is_domain' => 1,
     'is_contact' => 0,
     'add' => '4.7',
     'is_domain' => 1,
     'is_contact' => 0,
-    'default' => array(),
+    'default' => [],
     'title' => ts('Do not notify assignees for'),
     'description' => ts('These activity types will be excluded from automated email notifications to assignees.'),
     'html_type' => 'select',
     'title' => ts('Do not notify assignees for'),
     'description' => ts('These activity types will be excluded from automated email notifications to assignees.'),
     'html_type' => 'select',
-    'html_attributes' => array(
+    'html_attributes' => [
       'multiple' => 1,
       'class' => 'huge crm-select2',
       'multiple' => 1,
       'class' => 'huge crm-select2',
-    ),
-    'pseudoconstant' => array(
+    ],
+    'pseudoconstant' => [
       'optionGroupName' => 'activity_type',
       'optionGroupName' => 'activity_type',
-    ),
+    ],
     'quick_form_type' => 'Select',
     'quick_form_type' => 'Select',
-  ),
-);
+  ],
+  'menubar_position' => [
+    'group_name' => 'CiviCRM Preferences',
+    'group' => 'core',
+    'name' => 'menubar_position',
+    'type' => 'String',
+    'html_type' => 'select',
+    'default' => 'over-cms-menu',
+    'add' => '5.12',
+    'title' => ts('Menubar position'),
+    'is_domain' => 1,
+    'is_contact' => 0,
+    'description' => ts('Location of the CiviCRM main menu.'),
+    'help_text' => NULL,
+    'options' => [
+      'over-cms-menu' => ts('Replace website menu'),
+      'below-cms-menu' => ts('Below website menu'),
+      'above-crm-container' => ts('Above content area'),
+      'none' => ts('None - disable menu'),
+    ],
+  ],
+  'menubar_color' => [
+    'group_name' => 'CiviCRM Preferences',
+    'group' => 'core',
+    'name' => 'menubar_color',
+    'type' => 'String',
+    'html_type' => 'color',
+    'default' => '#1b1b1b',
+    'add' => '5.13',
+    'title' => ts('Menubar color'),
+    'is_domain' => 1,
+    'is_contact' => 0,
+    'description' => ts('Color of the CiviCRM main menu.'),
+    'help_text' => NULL,
+    'validate_callback' => 'CRM_Utils_Rule::color',
+  ],
+  'requestableMimeTypes' => [
+    'group_name' => 'CiviCRM Preferences',
+    'group' => 'core',
+    'name' => 'requestableMimeTypes',
+    'type' => 'String',
+    'html_type' => 'Text',
+    'default' => 'image/jpeg,image/pjpeg,image/gif,image/x-png,image/png,image/jpg,text/html,application/pdf',
+    'add' => '5.13',
+    'title' => ts('Mime Types that can be passed as URL params'),
+    'is_domain' => 1,
+    'is_contact' => 0,
+    'description' => ts('Acceptable Mime Types that can be used as part of file urls'),
+    'help_text' => NULL,
+  ],
+];