loadCountries($data); $defaultValues = (array)$this->extractValueFromAttributes($data); $data['attributes']['class'] = trim('ff-el-form-control ' . $data['attributes']['class']); $data['attributes']['id'] = $this->makeElementId($data, $form); if ($tabIndex = \FluentForm\App\Helpers\Helper::getNextTabIndex()) { $data['attributes']['tabindex'] = $tabIndex; } $placeholder = ArrayHelper::get($data, 'attributes.placeholder'); $activeList = ArrayHelper::get($data, 'settings.country_list.active_list'); $elMarkup = ""; $html = $this->buildElementMarkup($elMarkup, $data, $form); echo apply_filters('fluenform_rendering_field_html_' . $elementName, $html, $data, $form); } /** * Load countt list from file * @param array $data * @return array */ protected function loadCountries($data) { $app = App::make(); $data['options'] = array(); $activeList = ArrayHelper::get($data, 'settings.country_list.active_list'); $countries = $app->load($app->appPath('Services/FormBuilder/CountryNames.php')); if ($activeList == 'visible_list') { $selectCountries = ArrayHelper::get($data, 'settings.country_list.' . $activeList, []); foreach ($selectCountries as $value) { $data['options'][$value] = $countries[$value]; } } elseif ($activeList == 'hidden_list' || $activeList == 'priority_based') { $data['options'] = $countries; $selectCountries = ArrayHelper::get($data, 'settings.country_list.' . $activeList, []); foreach ($selectCountries as $value) { unset($data['options'][$value]); } } else { $data['options'] = $countries; } return $data; } /** * Build options for country list/select * @param array $options * @return string/html [compiled options] */ protected function buildOptions($options, $defaultValues = []) { $opts = ''; foreach ($options as $value => $label) { if (in_array($value, $defaultValues)) { $selected = 'selected'; } else { $selected = ''; } $opts .= ""; } return $opts; } protected function getSelectedCountries($keys = []) { $app = App::make(); $options = []; $countries = $app->load($app->appPath('Services/FormBuilder/CountryNames.php')); foreach ($keys as $value) { $options[$value] = $countries[$value]; } return $options; } }