![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mautic.corals.io/app/bundles/FormBundle/Helper/ |
<?php declare(strict_types=1); namespace Mautic\FormBundle\Helper; use Mautic\FormBundle\Model\FormModel; class PropertiesAccessor { public function __construct( private FormModel $formModel ) { } /** * @param mixed[] $field * * @return mixed[] */ public function getProperties(array $field) { $hasContactFieldMapped = !empty($field['mappedField']) && !empty($field['mappedObject']) && 'contact' === $field['mappedObject']; if ('country' === $field['type'] || ($hasContactFieldMapped && !empty($field['properties']['syncList']))) { return $this->formModel->getContactFieldPropertiesList((string) $field['mappedField']); } elseif (!empty($field['properties'])) { return $this->getOptionsListFromProperties($field['properties']); } return []; } /** * @param string|mixed[] $options * * @return string[] */ public function getChoices($options): array { $choices = []; if (is_array($options) && !isset($options[0]['value'])) { return array_flip($options); } if (!is_array($options)) { $options = explode('|', (string) $options); } foreach ($options as $option) { if (is_array($option)) { if (isset($option['label']) && isset($option['alias'])) { $choices[$option['label']] = $option['alias']; } elseif (isset($option['label']) && isset($option['value'])) { $choices[$option['label']] = $option['value']; } else { foreach ($option as $opt) { $choices[$opt] = $opt; } } } else { $choices[$option] = $option; } } return $choices; } /** * @param array<string,mixed> $properties * * @return mixed[] */ private function getOptionsListFromProperties(array $properties) { if (!empty($properties['list']['list'])) { return $properties['list']['list']; } elseif (!empty($properties['optionlist']['list'])) { return $properties['optionlist']['list']; } return []; } }