- if (!empty($this->_varNames)) {
- CRM_Core_Error::deprecatedFunctionWarning('deprecated use of preferences form. This will be removed from core soon');
- foreach ($this->_varNames as $groupName => $groupValues) {
- $formName = CRM_Utils_String::titleToVar($groupName);
- $this->assign('formName', $formName);
- $fields = [];
- foreach ($groupValues as $fieldName => $fieldValue) {
- $fields[$fieldName] = $fieldValue;
-
- switch ($fieldValue['html_type']) {
- case 'text':
- $this->addElement('text',
- $fieldName,
- $fieldValue['title'],
- [
- 'maxlength' => 64,
- 'size' => 32,
- ]
- );
- break;
-
- case 'textarea':
- case 'checkbox':
- $this->add($fieldValue['html_type'],
- $fieldName,
- $fieldValue['title']
- );
- break;
-
- case 'radio':
- $options = CRM_Core_OptionGroup::values($fieldName, FALSE, FALSE, TRUE);
- $this->addRadio($fieldName, $fieldValue['title'], $options, NULL, ' ');
- break;
-
- case 'YesNo':
- $this->addRadio($fieldName, $fieldValue['title'], [0 => 'No', 1 => 'Yes'], NULL, ' ');
- break;
-
- case 'checkboxes':
- $options = array_flip(CRM_Core_OptionGroup::values($fieldName, FALSE, FALSE, TRUE));
- $newOptions = [];
- foreach ($options as $key => $val) {
- $newOptions[$key] = $val;
- }
- $this->addCheckBox($fieldName,
- $fieldValue['title'],
- $newOptions,
- NULL, NULL, NULL, NULL,
- [' ', ' ', '<br/>']
- );
- break;
-
- case 'select':
- $this->addElement('select',
- $fieldName,
- $fieldValue['title'],
- $fieldValue['option_values'],
- CRM_Utils_Array::value('attributes', $fieldValue)
- );
- break;
-
- case 'wysiwyg':
- $this->add('wysiwyg', $fieldName, $fieldValue['title'], $fieldValue['attributes']);
- break;
-
- case 'entity_reference':
- $this->addEntityRef($fieldName, $fieldValue['title'], CRM_Utils_Array::value('options', $fieldValue, []));
- }
- }
-
- $fields = CRM_Utils_Array::crmArraySortByField($fields, 'weight');
- $this->assign('fields', $fields);
- }
- }
-