Kirby Modules Plugin (Kirby 2)

Great!, this works very similar to my Solution discussed here Add Explicit Support for Multi-Section Pages. With the difference that this is notably more ordered and its integration with “kirby patterns” is great.

However, I think that the use of Controllers and Models are essentials for the Modules, It would be great if you add the support for that.

Thank you for the feedback.

What would be your use-case for controllers and models? Since the modules are constrained to be displayed on one page only, I can’t think of one for models. Controllers might be useful though.

  1. Can you give some use cases for this plugin? When can it be useful?
  2. Are the modules like patterns user controlled in the panel?
  1. We are using it for a project where each page is pretty much unique. The layout of all pages is different. That’s where this makes most sense, because then we don’t have to create hundreds of templates but just a few modules that can be configured and rearranged however the client likes.
    The plugin can also be used for simpler use-cases like a one-pager. The advantage is the same: The client can rearrange the content modules.
  2. Kind of, yes. That’s why it is so useful to combine the Modules plugin with the Patterns plugin.
1 Like

Modules Plugin v1.1.0

I just published a new version of the Modules plugin featuring some new helper methods.


7 posts were split to a new topic: Modules plugin: CSS file for each module

Modules Plugin v1.2.0

The Modules plugin now has its own Kirby extension registry for modules, which allows you to register modules from other plugins. Thanks to @dweidner for the idea.



i have a problem… again :stuck_out_tongue:

i defined a image field in a module like:

    label: Background image
    type: image
    icon: image

and try to get the URL to the image in my module html.php with:

<?= $module->bgimage()->url() ?>

but i just get something like:


http://localhost/localtest/kirbymodule/ is the root of my page and fullscreen-bg5.jpg is the image for the module. But the url is not correct for the image.

have i overlooked something?

best regards,


<?= $module->bgimage()->toFile()->url() ?>

gives me:

Fatal error: Call to a member function url() on a non-object in…


BUT <?= $module->bgimage()->toFile() ?> gives me the a tag and i see the image:

<img src="http://localhost/localtest/kirbymodule/content/2-projects/1-project-a/3-static-wall/fullscreen-bg5.jpg" alt="">

hmm…anyway. i need just the URL for CSS-trickery.


Ok, then two options:

$image = $module->bgimage()->toFile();
echo $image->url():


$image = $module->image($module->bgimage());
echo $image->url()

both gives me : Fatal error: Call to a member function url() on a non-object :crying_cat_face:

This one looks weird but gives me the correct URL:

$image = $module->url()."/".$module->bgimage();
echo $image;

strange. have to use this i think. thank you for the input!


That’s weird, there should be another solution.

1 Like

That’s very strange. Actually Sonja’s example should work, $module is a simple page object. Which Kirby version are you using?

my version is 2.3.2.

Thanks, I will do some testing in the next few days.

1 Like

I have tested with your setup and can’t reproduce the issue. The “non-object” error generally occurs if the image does not actually exist. Have you verified that your module has an image with that file name (attention: not your displayed page, but your module page)?


Just to let you know that there is a bug when updating programmatically a structure field in Kirby if the modules plugin and at least one module is present.

I have opened an issue with more details and code example on your Github repository

Modules Plugin v1.3.0

May I present: A brand-new release of the Modules plugin. :tada:
This time:

You can download the plugin here. Please let me know if there are any issues.

1 Like

10 posts were split to a new topic: Modules plugin: Structure fields