Skip to content

Kirby 3.9.8

Blueprints

Blueprints are registered with the blueprints extension.

File definition

The blueprints extension accepts an array of key/value pairs, where the key is the name of the blueprint and the value the path to the file in your plugin folder.

/site/plugins/your-plugin/index.php
Kirby::plugin('your/plugin', [
    'blueprints' => [
        'pages/blog' => __DIR__ . '/blueprints/blog.yml'
    ]
]);

The blueprint key must start with 'pages/...', 'users/...', etc. to activate the designated locations.

Array definition

Alternatively, you can also pass the blueprint definition as an array instead of a file:

Kirby::plugin('your/plugin', [
    'blueprints' => [
        'pages/blog' => [
            'title'    => 'Blog',
            'sections' => [
                // ...
            ]
        ]
    ]
]);

Callback definition

Plugins can now define dynamic blueprints based on config settings, content and other factors.

<?php

Kirby::plugin('my/blueprint', [
    'blueprints' => [
        'pages/blog' => function ($kirby) {
            return [
                'title' => 'Blog',
                'sections' => [
                    'articles' => [
                        'type'     => 'pages',
                        'template' => 'article',
                        'limit'    => $kirby->option('blog.article.limit')
                    ]
                ]
            ];
        }
    ]
]);