Commit | Line | Data |
---|---|---|
6a488035 TO |
1 | <?php |
2 | /* | |
3 | +--------------------------------------------------------------------+ | |
bc77d7c0 | 4 | | Copyright CiviCRM LLC. All rights reserved. | |
6a488035 | 5 | | | |
bc77d7c0 TO |
6 | | This work is published under the GNU AGPLv3 license with some | |
7 | | permitted exceptions and without any warranty. For full license | | |
8 | | and copyright information, see https://civicrm.org/licensing | | |
6a488035 | 9 | +--------------------------------------------------------------------+ |
d25dd0ee | 10 | */ |
6a488035 TO |
11 | |
12 | /** | |
13 | * | |
14 | * @package CRM | |
ca5cec67 | 15 | * @copyright CiviCRM LLC https://civicrm.org/licensing |
6a488035 TO |
16 | */ |
17 | ||
18 | /** | |
19 | * This class generates form components for Search Parameters | |
20 | * | |
21 | */ | |
22 | class CRM_Admin_Form_Setting_Search extends CRM_Admin_Form_Setting { | |
23 | ||
be2fb01f | 24 | protected $_settings = [ |
dc378d98 TO |
25 | 'includeWildCardInName' => CRM_Core_BAO_Setting::SEARCH_PREFERENCES_NAME, |
26 | 'includeEmailInName' => CRM_Core_BAO_Setting::SEARCH_PREFERENCES_NAME, | |
bfd9c358 | 27 | 'searchPrimaryDetailsOnly' => CRM_Core_BAO_Setting::SEARCH_PREFERENCES_NAME, |
dc378d98 TO |
28 | 'includeNickNameInName' => CRM_Core_BAO_Setting::SEARCH_PREFERENCES_NAME, |
29 | 'includeAlphabeticalPager' => CRM_Core_BAO_Setting::SEARCH_PREFERENCES_NAME, | |
30 | 'includeOrderByClause' => CRM_Core_BAO_Setting::SEARCH_PREFERENCES_NAME, | |
dc378d98 | 31 | 'defaultSearchProfileID' => CRM_Core_BAO_Setting::SEARCH_PREFERENCES_NAME, |
bfd9c358 | 32 | 'smartGroupCacheTimeout' => CRM_Core_BAO_Setting::SEARCH_PREFERENCES_NAME, |
4235341b | 33 | 'quicksearch_options' => CRM_Core_BAO_Setting::SEARCH_PREFERENCES_NAME, |
bfd9c358 CW |
34 | 'contact_autocomplete_options' => CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME, |
35 | 'contact_reference_options' => CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME, | |
36 | 'search_autocomplete_count' => CRM_Core_BAO_Setting::SEARCH_PREFERENCES_NAME, | |
37 | 'enable_innodb_fts' => CRM_Core_BAO_Setting::SEARCH_PREFERENCES_NAME, | |
be2fb01f | 38 | ]; |
6a488035 TO |
39 | |
40 | /** | |
eceb18cc | 41 | * Build the form object. |
6a488035 TO |
42 | */ |
43 | public function buildQuickForm() { | |
44 | CRM_Utils_System::setTitle(ts('Settings - Search Preferences')); | |
45 | ||
d434f797 TO |
46 | parent::buildQuickForm(); |
47 | ||
94127e7e | 48 | // Option 1 can't be unchecked. @see self::enableOptionOne |
d434f797 | 49 | $element = $this->getElement('contact_autocomplete_options'); |
94127e7e | 50 | $element->_elements[0]->setAttribute('disabled', 'disabled'); |
6a488035 | 51 | |
94127e7e | 52 | // Option 1 can't be unchecked. @see self::enableOptionOne |
d434f797 | 53 | $element = $this->getElement('contact_reference_options'); |
94127e7e | 54 | $element->_elements[0]->setAttribute('disabled', 'disabled'); |
d434f797 | 55 | } |
6a488035 | 56 | |
d434f797 TO |
57 | /** |
58 | * @return array | |
59 | */ | |
60 | public static function getContactAutocompleteOptions() { | |
ec3cc27f | 61 | return [1 => ts('Contact Name')] + CRM_Core_OptionGroup::values('contact_autocomplete_options', FALSE, FALSE, TRUE); |
6a488035 | 62 | } |
96025800 | 63 | |
dc378d98 TO |
64 | /** |
65 | * @return array | |
66 | */ | |
67 | public static function getAvailableProfiles() { | |
be2fb01f | 68 | return ['' => ts('- none -')] + CRM_Core_BAO_UFGroup::getProfiles([ |
dc378d98 TO |
69 | 'Contact', |
70 | 'Individual', | |
71 | 'Organization', | |
72 | 'Household', | |
be2fb01f | 73 | ]); |
dc378d98 TO |
74 | } |
75 | ||
d434f797 TO |
76 | /** |
77 | * @return array | |
78 | */ | |
79 | public static function getContactReferenceOptions() { | |
ec3cc27f | 80 | return [1 => ts('Contact Name')] + CRM_Core_OptionGroup::values('contact_reference_options', FALSE, FALSE, TRUE); |
d434f797 TO |
81 | } |
82 | ||
94127e7e CW |
83 | /** |
84 | * Presave callback for contact_reference_options and contact_autocomplete_options. | |
85 | * | |
86 | * Ensures "1" is always contained in the array. | |
87 | * | |
88 | * @param $value | |
89 | * @return bool | |
90 | */ | |
91 | public static function enableOptionOne(&$value) { | |
92 | $values = (array) CRM_Utils_Array::explodePadded($value); | |
93 | if (!in_array(1, $values)) { | |
94 | $value = CRM_Utils_Array::implodePadded(array_merge([1], $values)); | |
95 | } | |
96 | return TRUE; | |
97 | } | |
98 | ||
6a488035 | 99 | } |