[ Mini Kiebo ]
Server: Windows NT DESKTOP-5B8S0D4 6.2 build 9200 (Windows 8 Professional Edition) i586
Path:
D:
/
Backup
/
05122024
/
htdocs
/
jurnal-kesmas
/
lib
/
pkp
/
classes
/
components
/
forms
/
[
Home
]
File: FieldAutosuggestPreset.php
<?php /** * @file classes/components/form/FieldControlledVocab.php * * Copyright (c) 2014-2021 Simon Fraser University * Copyright (c) 2000-2021 John Willinsky * Distributed under the GNU GPL v3. For full terms see the file docs/COPYING. * * @class FieldAutosuggestPreset * * @ingroup classes_controllers_form * * @brief A type of autosuggest field that preloads all of its options. */ namespace PKP\components\forms; class FieldAutosuggestPreset extends FieldBaseAutosuggest { /** @copydoc Field::$component */ public $component = 'field-autosuggest-preset'; /** @var array Key/value list of suggestions for this field */ public $options = []; /** @var array Key/value list of languages this field should support. Key = locale code. Value = locale name */ public $locales = []; /** * @copydoc Field::getConfig() */ public function getConfig() { $config = parent::getConfig(); $config['options'] = $this->options; $config['selected'] = $this->getSelected(); return $config; } /** * @copydoc Field::getConfig() */ protected function getSelected(): array { if ($this->isMultilingual) { $selected = []; foreach ($this->locales as $locale) { if (array_key_exists($locale['key'], $this->value)) { $config['selected'][$locale['key']] = array_map([$this, 'mapSelected'], (array) $this->value[$locale['key']]); } else { $config['selected'][$locale['key']] = []; } } return $selected; } return array_map([$this, 'mapSelected'], $this->value); } /** * Map the selected values to the format expected by an * autosuggest field * * @param string $value * * @return array */ protected function mapSelected($value) { foreach ($this->options as $option) { if ($option['value'] === $value) { return $option; } } return [ 'value' => $value, 'label' => $value, ]; } }