How to keep website content organized in archive folders?

Hej there, I got some questions and I’m sure you can help me :slight_smile:

I’m currently planning a website with three similar overview pages (arts, projects, articles) and each of these pages should show:

  • some featured elements (with a button to show all featured)
  • newest elements (with a button to show all elements in chronological order or by year like an archive)
  • overview of contained categories to filter by topic

So they share the same “collection”-blueprint but I dublicated them to show different icons in the panel

Is there a way to use just one blueprint for all three but still have different icons in the panel?


Then I need art, project and article blueprints/templates, each with featured-toggle, published-date and category-tags to allow the different views/sortings mentioned above.

But I don’t like to have all arts, projects and articles just as subpages of the collections, since the number of subpages could get quite huge (which can result in performance issues, from what I’ve read).

So to keep the content organized and limit the number of subpages, the content should be structured like an archive in year-folders (an year/archive page could act similar to the grand collections and show featured, newest and contained categories of the respective year).

Is there a way to have Kirby automatically save/move an element to the correct year folder (or create it)?
I mean that the folder location corresponds with the set date also when changing it?

Otherwise changing a date could result in e.g. a 2016 project being in the 2017 archive and would need manual maintainance.

An even better scenario would be to create art/project/article directly from the panel dashboard, which then gets saved into the correct collection and year folder after setting a date and saving it. Is this possible?!


So, do you think this structure and approach are suitable?

1-arts/
  2016/
  2017/
    YYYYMMDD-art-title/
      art.de.txt
      art.en.txt
      cover.jpg
      comments/
2-projects/
  2016/
  2017/
    YYYYMMDD-project-title/
      project.de.txt
      project.en.txt
      cover.png
      comments/
3-blog/
  2016/
  2017/
    YYYYMMDD-article-title/
      article.de.txt
      article.en.txt
      cover.jpg
      comments/

Or should I just go for subfolders without year-folders?
(I know, URLs could still be routed to contain the year in it, and the sorting/displaying/archiving of featured/new elements could work this way too).

No, icons are set on a per blueprints basis.

No, if you create a new page via the Panel, you have to decide where you want to add it first. After the page is created, you could use a hook to move the page, but note that the URL of the page will change as well.

This dashboard widget clones page, you might use it as a basis for developing a custom widget that saves a page to a particular folder depending on date.

Wow, thanks for the blazing fast reply, @texnixe! :slight_smile:

Okay, but some way of “extending” a blueprint would be great. At least I can make the fields global and reference them in each blueprint. Then I can make possible changes in one place instead of three, but for now I just triplicate the blueprint with different icon lines :smiley:

Thanks for the head up, haven’t thought about hooks, because I did not need them before!
An URL change should be no problem, because it would happen right after the page creation (before becoming visible to users or accessed in any way by crawlers) and later ONLY if the year or title changes.

Very interesting, I’ll definitely look into it! :slight_smile: Thanks!

Have a look at global field definitions.

As for the templates, if you just triplicate the frame and fill the rest with snippets, you don’t have to maintain code in three different templates.

That’s what I intended for the templates already and I was more looking for the blueprint/panel side of this :smile: so the global field definitions are what I was looking for.

Thank you very much! :slight_smile: