Move Page Level


How I can move a page to other page level?

  • page X/ subpage Y
  • page Z/ …

best David

1 Like

ok temporary solved - over the file structure (content) - but it this also possible about the UI?

So far, there is no official way through the panel.

Move page from one place to another, in the panel

I agree that it would be good to be able to move a page from one place in the hierarchy to another in the Panel.

Maybe from example…





It might not be perfect but I have a hidden page called “Draft” where I store content that I will probably some time create pages with. It would be even more simple if I could just move them when they are ready.

I don’t want a field called “status” for drafts / published, because I want to have them in one place and also see which pages are published and what is not. Also, I don’t like the menu / visibility thing in Kirby.

How to

To find the location where the page should go to, there are some options to consider…

  1. A select box with the whole tree. When many pages this can me very long. Select2 or Chosen JS plugins might be required to use pagination in those cases. They also have Ajax support, at least one of them.
  2. Use the “page finder” in the panel. It works good already when using the zooming glass in the upper right corner. Just put it in a tiny search field.

Move the folder

  1. Check for permissions, just in case
  2. Copy the folder to the new location, if permissions allow
  3. Check if everything worked as expected
  4. Delete the old folder

Because the blueprint is connected to the txt-file in the folder it should not change.

What happens if the new parent page’s blueprint only allows certain blueprints for its subpages – different ones than the page you are currently moving?

Is there such a blueprint setting?

If the parent page you are trying to move to don’t support that page blueprint, it should probably say that it’s forbidden to move that page to that location? Then the admin need to change the parent blueprint first.

The blueprint setting:

1 Like

@texnixe recently added copying tree support to here dev branch of ‘proof of concept’-plugin clone field. maybe some plugin wizard (trying not to look at @jenstornell directly :wink: ) could polish that to perfection. copy tree is imho basic requirement for moving a page.

1 Like

I think I have to find another way of copying the tree, because if there are many files, it won’t work.

Moving a page is actually trickier. Because you have to check if the parent page may have a subpage with the blueprint of the current page. If not, what do you do with the page? Simply not copy it and throw an error? Change the template? What if the page has subpages and the new blueprint does not allow subpages? Delete the subpages? The same for files and filetypes …

Those questions have already been asked but what is the answer? The easy way would be not moving the page in such a case. That would rather limit the move function to specific use cases, e.g. moving between different category pages.


When you are cloning a page, do you really want to clone the whole page tree? Can you give an example why that would be useful? Personally I don’t see a good reason for it. The reason for cloning a page without the tree could be for creating a draft or for creating a page that will be very similar.

It’s also like @texnixe said. The tree could contain 1000 of pages with 20 images in each that are 2MB in size. That would be a copy operation with 40000MB, which is 40GB.

It’s in general quite hard to copy large files. It contains ajax, maybe file chunks, checks and error handling. When everything works, it’s not so much work but the project will get 10 times big, just for all checks, ajax and error handling. Patience in cases like this is not my strong suit.

I will not build this, sorry. :confused:

I’ll leave it to @texnixe :wink:

I don’t see much sense in cloning a whole tree either. The current dev state of the field works for pages with only a few smaller images but it stops working when you have more than let’s say 15 files with more than 3 MB in average.

My original idea was to simply clone a single page (in all languages) without any files. That would be my main use case. Even then you would have to add a check if more pages are allowed in the parent page.

I have no intention to build a move page plugin either, I’m afraid, too many “ifs” for my taste :wink:

1 Like

i see. i underestimated the problem with lots of files. i thought adding a field for target folder instead of just asking for the new title would be a breeze if one knows how to do panel fields (better than i do anyway). i did not ask for a perfekt solution - more suggesting ideas.

my clients usecase is publishing a newsletter (online as well as data send via mailjet api) with about 100 pages (each 1 very small thumb) about very two weeks. 50% of the pages stay the same (job exchange mostly). but a new url is needed. current structure is already using a ‘refrence’ template for static content so copied data is minimal.
and yes – maybe a real database would have been a good idea too, but they really like working in the panel.

i understand that. just to explain my need to move pages with subpages…

problem is my customer knows wordpress and kirbys folders do no behave like wordpress categories. one can not move content once created. sure thing kirby is not wordpress and should not be. we picked kirby for this project because of good reasons. i just need a proper way to allow the client to work without feeling like stumbling over rocks once in while. they create about 2-3 posts per day. telling them to copy’paste 50 pages by hand every two weeks is not acceptable imho.
i am using tags in backend and filters for frontend a lot already to reduce the “folder” problem. but kirby panel sidebar can not handle more than 100 pages very preformantly so i needed to split the posts into folders.

Any progress here? Would love to see move / duplicate page functionality. We have to do this manually for our clients, which is far from optimal.

Currently, there is no option to do that. Your only option is to create custom fields. There are a couple of custom fields available that provide cloning functionality:

The same can be done for moving pages.