Collections
Collections are registered with the collections
extension.
Callback definition
The collections
extension accepts an array of collections where the key is the name of the collection and the value a callback function that returns the collection.
Kirby::plugin('your/plugin', [
'collections' => [
'projects' => function ($site) {
return $site->find('projects')->children()->listed();
}
]
]);
File definition
Alternatively, you can require a file. The required file would be a collection with a return function.
Kirby::plugin('your/plugin', [
'collections' => [
'articles' => require 'some/file.php'
]
]);
Usage in templates
Once defined, you can use the collection in your templates using the collection()
helper.
<?php foreach (collection('articles') as $article) : ?>
Author: <?= $article->author() ?>
...
<?php endforeach ?>