---
title: 'Creating Backend Pages'
url: 'https://getgrav.org/forum/plugins/creating-backend-pages-t2478'
markdown: 'https://getgrav.org/forum/plugins/creating-backend-pages-t2478.md'
date: '2026-06-21'
description: "Hello there, I'm trying to set up a custom page inside the admin plugin. I want to create a custom configuration page for my plugin, because there can be a lot"
---

[Plugins](https://getgrav.org/forum/plugins)

#  Creating Backend Pages 

 [admin](https://getgrav.org/forum/tag/admin) [plugins](https://getgrav.org/forum/tag/plugins)

  Started by Michael Gollmer 8 years ago · 5 replies · 1185 views    

 [8 years ago](https://getgrav.org/forum/plugins/creating-backend-pages-t2478#post-24190 "Permalink") 

Hello there,

I'm trying to set up a custom page inside the admin plugin. I want to create a custom configuration page for my plugin, because there can be a lot of data to add and edit, so it seemed to me pretty cray to add all these stuff inside the standard configuration.

I already set up a custom menu page, that calls a certain page. But how can I use kind somekind of blueprint-form on this page, that saves the entered/edited content to some custom yaml files inside the `user/data` directory?

I would be great if somebody could give me a quick rundown on how to do this.

Thanks and regards,
Michael

 [8 years ago](https://getgrav.org/forum/plugins/creating-backend-pages-t2478#post-24193 "Permalink") 

The PHP file [comments.php](https://github.com/getgrav/grav-plugin-comments/blob/develop/comments.php) from the 'comments' plugin shows how to save/retrieve data to/from the 'user/data' folder.

 [8 years ago](https://getgrav.org/forum/plugins/creating-backend-pages-t2478#post-24194 "Permalink") 

Thank you @pamtbaau, but I don't see how to handle the data the same way they can handeld by the admin plugin for example.

 [8 years ago](https://getgrav.org/forum/plugins/creating-backend-pages-t2478#post-24195 "Permalink") 

What is it you are missing?

 [8 years ago](https://getgrav.org/forum/plugins/creating-backend-pages-t2478#post-24196 "Permalink") 

Hard to explain. I wanted to rebuild the same functionality like you have when using blueprints in backend. This more like adding single files without any abillity to edit or replace data.

I thought of using the class \\Grav\\Common\\Data\\Blueprint, but I don't know how.

 [8 years ago](https://getgrav.org/forum/plugins/creating-backend-pages-t2478#post-24197 "Permalink") 

Soooo, i solved the problem on storing data (using the "Blueprint"-Class. Here is the way I use to store YAML-Files.

```php
<?php
namespace Grav\Plugin;

use Grav\Common\Plugin;
//...
use Grav\Common\Data;
use Grav\Common\File\CompiledYamlFile;

class ExamplePlugin extends Plugin
{

     /**
     * @var Data\Blueprints
     */
    protected $blueprints;

    //...
    public function storeData(){
          //set up Blueprints class with place where to look for blueprints
          if ($this->blueprints === null) {
             $this->blueprints = new Data\Blueprints('blueprints://');
           }

          //createt a blueprints folder inside the plugin and example-file "blueprinttype.yaml"
          //Create new Data-object with collected Blueprint-Object
          $data = new Data\Data(["example"=> true],$this->blueprints->get('blueprinttype'));
          //find/create storage file
          $file = CompiledYamlFile::instance($this->grav['locator']->findResource('user://data/example/config' . YAML_EXT,
                    true, true));
    }

              //attach storage file to Data-object and save 
               $data->file($file);
               $data->save();

}

```

After saving `$data->save();` the data are stored in the given file. Awesome!
But now I don't know how to build a form out of the blueprint.

Regards,
Michael

[Log in](https://getgrav.org/login?return=%2Fforum%2Fplugins%2Fcreating-backend-pages-t2478) to reply.

###  Suggested topics

 | Topic | Participants | Replies | Views | Activity |
|---|---|---|---|---|
| [grav-mcp update\_page sends lang in the body instead of the query string, so non-default languages are never updated](https://getgrav.org/forum/plugins/grav-mcp-update-page-sends-lang-in-the-body-instead-of-the-query-string-so-non-default-languages-are-never-updated-t9469)    [Plugins](https://getgrav.org/forum/plugins) · by renedebaaij, 2 days ago |  | 0 | 36 | [2 days ago](https://getgrav.org/forum/plugins/grav-mcp-update-page-sends-lang-in-the-body-instead-of-the-query-string-so-non-default-languages-are-never-updated-t9469 "by renedebaaij") |
| [How to clone a flex object in twig](https://getgrav.org/forum/plugins/how-to-clone-a-flex-object-in-twig-t9438)    [Plugins](https://getgrav.org/forum/plugins) · by complanar, 3 weeks ago |  | 6 | 389 | [2 weeks ago](https://getgrav.org/forum/plugins/how-to-clone-a-flex-object-in-twig-t9438 "by complanar") |
| [Integration of GRAV articles into my principal website](https://getgrav.org/forum/plugins/integration-of-grav-articles-into-my-principal-website-t9440)    [Plugins](https://getgrav.org/forum/plugins) · by BenLaKnet, 2 weeks ago |  | 1 | 208 | [2 weeks ago](https://getgrav.org/forum/plugins/integration-of-grav-articles-into-my-principal-website-t9440 "by BenLaKnet") |
| [How to restrict access of admin users to certain subpages](https://getgrav.org/forum/plugins/how-to-restrict-access-of-admin-users-to-certain-subpages-t9416)    [Plugins](https://getgrav.org/forum/plugins) · by complanar, 1 month ago |  | 2 | 482 | [4 weeks ago](https://getgrav.org/forum/plugins/how-to-restrict-access-of-admin-users-to-certain-subpages-t9416 "by complanar") |
| [Clearing of the page content while editing in admin plugin in the Grav 2.0](https://getgrav.org/forum/plugins/clearing-of-the-page-content-while-editing-in-admin-plugin-in-the-grav-2-0-t9394)    [Plugins](https://getgrav.org/forum/plugins) · by Vladimir Novak, 2 months ago |  | 3 | 761 | [2 months ago](https://getgrav.org/forum/plugins/clearing-of-the-page-content-while-editing-in-admin-plugin-in-the-grav-2-0-t9394 "by pamtbaau") |
