=== Template Dictionary ===
Contributors: radovank
Tags: template, dictionary, variables, settings, options
Requires at least: 4.5
Tested up to: 5.5.3
Stable tag: 1.6.1
License: GPL2
License URI: https://www.gnu.org/licenses/gpl-2.0.html

A plugin for developers which provides template variables dictionary editable in backend.

== Description ==

Template Dictionary is a plugin which can be used to create template variables editable by admins.

The plugin is multilingual ready. It includes Polylang integration, another multilingual plugin can be integrated with filters.

= Admin pages =
There are few admin pages for managing the plugin.

* **Template Dictionary** – view, edit and delete the template variables values
* **Settings list** – view, edit and delete template variables settings
* **Add setting** – add new or edit template variables setting
* **Edit values** – edit a value, this page is accessable from the page **Template Dictionary**
* **Export/Import** – export settings and values to xml or import it from xml

= Usage in template =
You can use a value in template by calling function `get` of Template Dictionary object, which can be accessed by function `TmplDict()`.

For example, if you set a setting with code *the_code*, you can use it's value by:

`TmplDict()->get( 'the_code' );`

This function returns the value. If you need to echo the value, you can use function `eget`. Both functions have an optional argument `$default`, which is the default returned/echoed value, if the admin value is empty.

You can also get the value by accessing the code as property:

`$value = TmplDict()->the_code;`

= Usage with shortcode =
You can also use a shortcode `[tmpl_dict]` with attributes `code`, `default` and `do_shortcode`. The last attribute says, if the function `do_shortcode` will be called on the value.

= Setup template language =
Default template language can be set by setting the constant `TMPL_DICT_DEFAULT_LANG` in wp-config. Default value of this constant consists of two first characters of the current WP locale. **It is important to set the default language constant properly if you plan to create your site multilingual in future.**

**If you have a multilingual site**, you need to set current template language with the filter `template_dictionary_language`. For users of Polylang, it is already integrated in this plugin, the current template language is the Polylang current language slug.

= Setup available languages =
**If you have a multilingual site**, you also need to set available languages with the filter `template_dictionary_languages`. Again, if Polylang is activated, these available languages consist of Polylang languages slugs.

If your site is not multilingual, there is only one available language – the default language.

= Use JS object =
To generate JavaScript dictionary object, you need to define `TMPL_DICT_JS_VAR_NAME` constant. Add to `wp_config.php`:

`define( 'TMPL_DICT_JS_VAR_NAME', 'dict' );`

Then you can use it in JS:

`$('#some-element').text( dict.the_code );`

== Screenshots ==

1. Setting up a variable
2. Filling out values
3. Values list
4. Various field types
5. Export/Import page
6. Using values in template

== Changelog ==
= 1.6.1 =
* Fix: When exporting both settings and values, export empty settings too.
* Fix: Correct number of placeholders for wpdb::prepare.

= 1.6 =
* Added method to get whole dictionary array.
* Added JS dictionary object.

= 1.5 =
* Added term field type.
* Add admin info notice if `TMPL_DICT_DEFAULT_LANG` constant is not set.

= 1.4 =
* Fix: Page for editing settings was not showing.
* Show admin submenu opened on Edit Values page.

= 1.3 =
* Fix: screen option per_page on settings list
* Enabled caching of values
* Set user locale as language in admin if it is in available languages list.
* Refactored admin pages

= 1.02 =
* Added post-multiple field type.
* Added method __get for accessing dictionary values as properties.

= 1.01 =
* Fix: notice after deleting setting
* Do not show empty field options in settings list.
