Skip to content

Kirby 3.9.8

File methods

File methods are registered with the fileMethods extension.

Default file methods

For a full list of default file methods, please check out the Reference.

Be aware that you cannot override these default file methods with any custom file method.

Getting started

You can extend the set of defined file methods very easily in a plugin file.

/site/plugins/file-methods/index.php
Kirby::plugin('my/plugin', [
    'fileMethods' => [
        'download' => function () {
            return '<a download href="' . $this->url() . '">' . $this->filename() . '</a>';
        }
    ]
]);

This example shows the basic architecture of a file method. You define the method name with the key for the fileMethods extension array. $this in the callback function refers to the $file object.

Working with method arguments

In some cases it might be helpful to be able to pass arguments to the method:

<?= $file->download('Download me') ?>

The definition for such a method with arguments is very simple:

Kirby::plugin('my/plugin', [
    'fileMethods' => [
        'download' => function ($text = null) {
            return '<a download href="' . $this->url() . '">' . $text ?? $this->filename() . '</a>';
        }
    ]
]);