Add Default Values for the Plugin

In TYPEMILL, it is totally easy to define some variables that you can use in your plugin later. All you have to do is to add the variables in the YAML configuration file of your plugin.

In our cookie consent plugin, we want to use variables for the colors and for the content. So simply add them in a new block called "settings" like this:

name: Cookie Consent
version: 1.0.0
description: Enables a cookie consent for websites
author: Sebastian Schürmanns
homepage: https://cookieconsent.insites.com/
licence: MIT

settings:
  popup_background: '#70c1b3'
  popup_text: '#ffffff'
  button_background: '#66b0a3'
  button_text: '#ffffff'
  theme: 'edgeless'
  position: 'bottom'
  message: 'This website uses cookies to ensure you get the best experience on our website.'
  link: 'Learn More'
  dismiss: 'Got It'

Always start with the name settings. After that, simply add the variables and indent each line with two spaces. Once again: Do not use the tab key or anything else, because it will break the file. Just indent with two spaces.

As a recommendation: Use my_name instead of my-name or my.name, because key-names with dashes and other special characters are a bit harder to handle in the Twig templates later.

Use the Variables

Great news: Once you have added these default settings to your plugin configuration file, you can access the settings in your whole application. This is because TYPEMILL does a pretty smart job, and merges all settings into the central settings object. All settings means:

  • The basic setting from TYPEMILL.
  • All default settings from all plugins.
  • All individual user settings.

So you want to use some of theses settings in your plugin? No problem, we already did that with the onSettingsLoaded event:

public function onSettingsLoaded($settings)
{
    $this->settings = $settings->getData();
}

The plugin-settings are now included in the $this->settings object.

Want to use these settings in a template? No problem, just use them like this:

{{ settings.plugins.cookieconsent.popup_background }}

Yes. It is really that easy.

Next: Use the Variables in Twig

There is only one missing link: We have to pass the variables from the settings into the template engine of Twig to use them in our Twig template. But good news again: This is done with a single line of code. So let'ss bring everything together and (nearly) finish the Cookie Consent plugin in the next chapter.

Typemill is an open source software and a registered trademark. Read more