function IconExtractorSettingsForm::generateSettingsForm
Create the Drupal Form API element from the settings.
The generated form support default from the 'saved_value' key in the form state. This value is set in IconPackManager::getExtractorPluginForms().
Parameters
array $settings: The settings from the icon pack definition.
\Drupal\Core\Form\FormStateInterface|null $form_state: The from state used to get values if no form context.
Return value
array The form API generated.
3 calls to IconExtractorSettingsForm::generateSettingsForm()
- IconExtractorBase::buildConfigurationForm in core/
lib/ Drupal/ Core/ Theme/ Icon/ IconExtractorBase.php - Form constructor.
- IconExtractorSettingsFormTest::testGenerateSettingsForm in core/
tests/ Drupal/ Tests/ Core/ Theme/ Icon/ IconExtractorSettingsFormTest.php - Test the IconExtractorSettingsForm::generateSettingsForm method.
- IconExtractorSettingsFormTest::testGenerateSettingsFormWithValues in core/
tests/ Drupal/ Tests/ Core/ Theme/ Icon/ IconExtractorSettingsFormTest.php - Test the IconExtractorSettingsForm::generateSettingsForm method.
File
-
core/
lib/ Drupal/ Core/ Theme/ Icon/ IconExtractorSettingsForm.php, line 59
Class
- IconExtractorSettingsForm
- Handle icon extractor settings form conversion from YAML to Drupal Form API.
Namespace
Drupal\Core\Theme\IconCode
public static function generateSettingsForm(array $settings, ?FormStateInterface $form_state = NULL) : array {
$saved_values = $form_state ? $form_state->getCompleteFormState()
->getValue('saved_values') ?? [] : [];
$form = [];
foreach ($settings as $setting_id => $setting) {
if (isset($setting['enum']) && is_array($setting['enum']) && !empty($setting['enum'])) {
$form[$setting_id] = self::buildEnumForm($setting_id, $setting, $saved_values);
continue;
}
// Settings format is a subset of JSON Schema, with only the scalars.
$form[$setting_id] = match ($setting['type']) { 'boolean' => self::buildBooleanForm($setting_id, $setting, $saved_values),
'number' => self::buildNumberForm($setting_id, $setting, $saved_values),
'integer' => self::buildNumberForm($setting_id, $setting, $saved_values),
'string' => self::buildStringForm($setting_id, $setting, $saved_values),
default => self::buildStringForm($setting_id, $setting, $saved_values),
};
}
return array_filter($form);
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.