Access config pages management
Create new config page
Create new config page
Configure and access created config page
Configure and access created config page
Context switch links

DO I NEED IT?
At some point I was tired of creating custom pages using menu and form API, writing tons of code just to have a page with an ugly form where a client can enter some settings, and as soon as a client wants to add some interactions to the page (drag&drop, ajax etc) things starts to get hairy. The same story was with the creation of dedicated CT just to theme a single page (like homepage) and explaining why you can only have 1 node of this type, or force it programmatically.

If this sounds familiar, then this module maybe just a thing you were looking for :)

DESCRIPTION:
This module provide a fieldable entity that allows to create customizable feature-rich configuration pages and place them where you like in menu system, you are able to use fieldAPI with fine widgets created by the community, so multi-values drag&drop, autocomplete, file uploads look pretty and just works out of the box!

MAIN FEATURES:
Fieldable entity (config page)
Create fieldable entity using BO. FieldAPI, Features, views and other entity related modules are supported.

Mount your config page into menu structure as you like
You can choose how (where) user will access this config page, so it can have a proper path like "admin/config/mysettings" and not explain to customer that he needs to create "a special node" in node/add.

Context-awareness
You need to have same page with different settings based on current language or domain or some other factor? Config pages controller will automatically load the proper config page based on current context. You can copy settings from one context to another, import and export text values using Features. Language and Domain (Domain module) contexts are supplied with this module, but you can add your custom context in no time using the module's API.

Create "singleton" pages
You no longer need to create a new content type that will store fields for your singleton pages like homepage and explain to a client that this page is content but he can't create 2 nodes in it.

Themable
Config pages are themable as any other entity, so with proper view mode configuration you can just drop CCT provided by this module on the Page (in Panel module) and have your config page rendered.

Nodequeue replacement
In most cases, using config pages will give you more flexibility than nodequeue module. Just you use EntityReference field, and use views as autocomplete source, so you have all the power of views at your hands. And it will have all the features above - context awareness, themable and more.

INSTALLATION:
Install this module like any other module.

CREATING CONFIG PAGE:

  1. After module installed, you can navigate to "admin/structure/config_pages/types" and click on "Add config page".
  2. Enter config page title and mount point, for example "admin/config/mysettings" and menu item type.
  3. Choose context if you need (if for example you want to have different settings for different languages) and save config page.
  4. Go to "https://drupal8.local/admin/structure/config_pages/types" and find your config page there, you can add desired fields as you do for any other entity.
  5. If this config page is expected to be rendered (for exmaple if this is homepage config) manage display for your config page as you do for any other entity.
  6. At this point you can find you page using the path from pt2. (admin/config/mysettings).
  7. Give appropriate user roles access to config page you created (using permissions).

HOW CAN I ACCESS MY SETTINGS?

  • If this config page is used to store settings then you should use config_pages_get() or config_pages_config() functions.
  • If this config page is singleton page like custom homepage, you can use config_pages_render(), config_pages_render_field() to use in your code, or CTools Content Type called "Config Pages: Content" to place on panels.

I WANT MORE!

  • Saving your config pages to features is essential to make them part of site code.
  • Saving config pages values to features is possible but not always useful.
  • If you need different configurations based on some custom context - create one using provided contexts as example!

DRUPAL 8!

Drupal 8 version was written from scratch based on Drupal Entity API.
All key functionality from 7.x version exits in new Drupal 8.x version.
Currently there are two versions exists:

  • Stable branch 8.x-2.x which can safely used on production.

Please note: Development version still can have some architectural changes on context plugin system (so be careful using it for your production).

If you need documentation about how to manage and develop ConfigPages use this link

Project information

Releases