Skip to content

Arguments

Thomas Lange edited this page Dec 1, 2024 · 7 revisions

This document explains how to use the optional field for arguments in the content editor. This field can contain a list of arguments as key or key/value pairs formatted as follows:

FOO=value|BAR=value (or FOO=value|BAR; BAR will be automatically set to true).

How to access arguments in a template

Lets assume that your argument string for a specific post is something like this:

HIGHLIGHT|PREVIEW_IMG=foobar.png

You can now access the entire (unparsed) argument string in templates with $POST['ATTR']['ARGV'] (see template documentation for more information). This contains the unparsed argument string as he was written into the content editor. You also can access a parsed version of the arguments as key->value array with $POST['ARGV']:

Unparsed: $POST['ATTR']['ARGV']

string(32) "HIGHLIGHT|PREVIEW_IMG=foobar.png"

Parsed: $POST['ARGV']

array(2) {
	["HIGHLIGHT"]=>
	bool(true)
	["PREVIEW_IMG"]=>
	string(10) "foobar.png"
}

How this arguments can be used to do something special

If you are a template developer, you can check within your templates if the argument HIGHLIGHT is present (arguments with no explicit value will be automatically set to boolean true). If set, you can highlight this post differently. Just check if this value is set and add an extra CSS class to your HTML markup which then will highlight your post.

You can even add a preview image functionality. Lets assume you want to show a preview image for each post in the list? There is no core functionality to do this, but with the argument functionality you can do this very simple:

<?php if(isset($POST['ARGV']['PREVIEW_IMG'])): ?>
	<img class="preview-img" href="<?=Application::getFileURL("images/preview/{$POST['ARGV']['PREVIEW_IMG']}")?>" alt="" />
<?php endif; ?>

Syntax

Each argument key (the part before the =) must only contain letters from A-Z, a-z, 0-9 and underscores (_)!

Conclusion

The use cases of these arguments are practically unlimited. Please note that the templates of the default theme are not using any arguments provided in the argument field. It is up to you whether you implement this in your own template to do something special or not!