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;
}
$selectedCountries = $data['options'];
$selectedCountries = array_flip($selectedCountries);
ksort($selectedCountries);
$selectedCountries = array_flip($selectedCountries);
$data['options'] = $selectedCountries;
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];
}
$options = array_flip($options);
ksort($options);
return array_flip($options);
}
}