'details', '#open' => TRUE, '#title' => t('Settings'), ] + $settings->getSettingsForm(); // Allow user settings. $form['custom_settings']['show_user_theme_settings'] = [ '#type' => 'checkbox', '#title' => t('Users can override Gin settings'), '#description' => t('Expose the admin theme settings to users.'), '#default_value' => $settings->getDefault('show_user_theme_settings'), ]; /* * ////////////////////////// * Logo settings. * * ////////////////////////// */ $form['logo']['settings']['logo_upload']['#upload_validators'] = ['file_validate_extensions' => ['png gif jpg jpeg apng svg']]; // Upgrade path: // Move settings to new fields. if ($settings->getDefault('icon_default') === FALSE) { $form['logo']['default_logo']['#default_value'] = FALSE; $form['logo']['settings']['logo_path']['#default_value'] = $settings->getDefault('icon_path'); $form['#submit'][] = '_gin_form_system_theme_settings_form_submit'; } // Attach custom library. $form['#attached']['library'][] = 'gin/settings'; } /** * Cleanup settings. */ function _gin_form_system_theme_settings_form_submit(&$form, FormStateInterface $form_state) { $config = \Drupal::configFactory()->getEditable('gin.settings'); $config->clear('icon_path') ->clear('icon_default') ->save(); }