diff --git a/config_simple_example/config/install/config_simple_example.settings.yml b/config_simple_example/config/install/config_simple_example.settings.yml new file mode 100644 index 0000000..9f13574 --- /dev/null +++ b/config_simple_example/config/install/config_simple_example.settings.yml @@ -0,0 +1 @@ +message: 'Awesome settings' diff --git a/config_simple_example/config/schema/config_simple_example.schema.yml b/config_simple_example/config/schema/config_simple_example.schema.yml new file mode 100644 index 0000000..c0237d1 --- /dev/null +++ b/config_simple_example/config/schema/config_simple_example.schema.yml @@ -0,0 +1,16 @@ +config_simple_example.settings: + # A config_object is a configuration object which can store fields. + # You have to map all field types the object stores: string, boolean, etc. + # The "text" field type is special because it's translatable by default. + # Checkout how to define schema and all available data types in: + # https://www.drupal.org/docs/drupal-apis/configuration-api/configuration-schemametadata + # Direct link to cheatsheet: + # https://www.drupal.org/files/ConfigSchemaCheatSheet2.0.pdf + # Use Configuration Inspector to vlaidate schema files: + # https://drupal.org/project/config_inspector + type: config_object + label: 'Example config' + mapping: + message: + type: text + label: 'Message' diff --git a/config_simple_example/config_simple_example.config_translation.yml b/config_simple_example/config_simple_example.config_translation.yml new file mode 100644 index 0000000..726854a --- /dev/null +++ b/config_simple_example/config_simple_example.config_translation.yml @@ -0,0 +1,7 @@ +config_simple_example.settings: + title: 'Config Simple Example Translatable config' + # Route for the translatable configuration form. + base_route_name: config_simple_example.settings + # The name of all yml files that have to be translatable. + names: + - config_simple_example.settings diff --git a/config_simple_example/config_simple_example.info.yml b/config_simple_example/config_simple_example.info.yml new file mode 100644 index 0000000..8fa0180 --- /dev/null +++ b/config_simple_example/config_simple_example.info.yml @@ -0,0 +1,8 @@ +name: 'Config simple example' +type: module +description: 'Demonstrates how to create a custom config, config form and config translation.' +package: Example modules +core_version_requirement: ^9.4 || ^10 +dependencies: + - config_translation +# - examples:examples diff --git a/config_simple_example/config_simple_example.links.menu.yml b/config_simple_example/config_simple_example.links.menu.yml new file mode 100644 index 0000000..f539a37 --- /dev/null +++ b/config_simple_example/config_simple_example.links.menu.yml @@ -0,0 +1,12 @@ +config_simple_example.configuration: + title: 'Config Simple Example Configuration' + route_name: config_simple_example.configuration + parent: system.admin_config + description: '' + weight: -15 +config_simple_example.settings: + title: 'Config Simple Example Settings' + route_name: config_simple_example.settings + parent: config_simple_example.configuration + description: '' + weight: -15 diff --git a/config_simple_example/config_simple_example.links.task.yml b/config_simple_example/config_simple_example.links.task.yml new file mode 100644 index 0000000..5494b84 --- /dev/null +++ b/config_simple_example/config_simple_example.links.task.yml @@ -0,0 +1,6 @@ +config_simple_example.settings: + route_name: config_simple_example.settings + title: 'Config Simple Example Settings' + base_route: config_simple_example.settings + weight: 0 + diff --git a/config_simple_example/config_simple_example.module b/config_simple_example/config_simple_example.module new file mode 100644 index 0000000..49dacb2 --- /dev/null +++ b/config_simple_example/config_simple_example.module @@ -0,0 +1,23 @@ +config('config_simple_example.settings'); + + $form['message'] = array( + '#type' => 'textarea', + '#title' => $this->t('Message'), + '#default_value' => $config->get('message'), + ); + + return parent::buildForm($form, $form_state); + } + + /** + * {@inheritdoc} + */ + public function submitForm(array &$form, FormStateInterface $form_state) { + // Retrieve the configuration + $this->config('config_simple_example.settings') + // Set the submitted configuration setting + ->set('message', $form_state->getValue('message')) + ->save(); + + parent::submitForm($form, $form_state); + } +}