jploch Posted July 15 Posted July 15 New Drafts System and Item Permissions PAGEGRID 2.3 is officially here, and it is a major release focused entirely on improving team and client workflows. With drafts, unpublished items, and item-level permissions, you get safer ways to experiment, more control over what goes live, and fine-grained access control for every block. Drafts: Redesign Without Risk Drafts let you change layout and content without affecting the live site. Create a draft, experiment freely, and publish when ready — or discard to revert. No risk of breaking anything your visitors see. How it works Creating a draft is one click from the gear menu in the top navigation bar. PAGEGRID clones your current content into a draft and switches the editor to draft mode. An orange status indicator shows you're in draft mode, with quick access to publish or discard. Drafts are only for PageGrid fields. Non-PageGrid fields (e.g. page title, custom fields) are not editable in draft mode and remain unchanged on the live page. Use cases Safe collaboration: Iterate on layout and content updates with a client in draft mode, publishing only when everyone is happy. Staging updates: Build a campaign page or seasonal homepage update over a few days without taking down the active live version. Read the full draft documentation Unpublished Items Instead of starting a full draft just to update one section, unpublished items let you hide and rework single blocks in-context. This pairs perfectly with drafts: use drafts for page-wide overhauls, and unpublished items to temporarily disable a single block while you tweak its copy or layout. How it works Click the pen icon to edit an item, go to the settings tab, and check the Unpublished status checkbox. Save the item to unpublish it. To make it live again, simply edit the item and click Publish. Item Permissions: Fine-Grained Control for Every Block Until now, PAGEGRID's permission system was global (using native ProccessWire permissions). You could define what each role could do, but those rules applied globally or per template. With item-level permissions (items are pages) you can lock down individual blocks, giving different teams different levels of control on the same page. By restricting structural capabilities to specific containers, you can hand over a site knowing the core design system and layout are completely protected, while still giving editors the exact level of freedom they need to manage their content. How it works Each container block now has a Manage Access option in its settings tab. Enable it and you can choose which roles get access to: Adding new child items Dragging items within the block Resizing items Reordering children Moving items to a different parent block Using specific symbols Creating specific child templates Item permissions always override global and template permissions. Once you enable it for a block, only explicitly granted roles get through. Everyone else keeps their existing permissions everywhere else. Use cases Protecting sections: Lock down sensitive, custom-styled sections so clients can't accidentally move or resize elements. Controlled editing: Let a client add defined block items or symbols and reorder them inside a specific layout group without giving them structural design control over the rest of the page. Read the full permissions documentation Try it today PAGEGRID 2.3 is ready for your projects. Here is how to get started with the new workflow features: PAGEGRID Cloud: The update is already live on all Cloud sites. Just log in and you'll find drafts, unpublished status, and item permissions ready to use. Self-Hosted: Update the PAGEGRID modules to version 2.3 through your ProcessWire admin or pull the latest release from the repository. Once you have given the new features a spin, let me know what you think! 9
jploch Posted July 15 Author Posted July 15 If you need to use permission checks in code just use ProcessWire's standard permission API. The module automatically respects per-item permissions via hook: // Check if user can drag an item page $user->hasPermission('pagegrid-drag', $item); // Check if user can resize an item page $user->hasPermission('pagegrid-resize', $item); // Check if user can add children to a container page $user->hasPermission('page-add', $container); // Check if user can sort children of a container page $user->hasPermission('page-sort', $container); // Check if user can move a child item page $user->hasPermission('page-move', $item); // Built-in ProcessWire methods that call hasPermission internally also respect item permissions: $container->addable(); // respects item permissions for page-add $page->sortable(); // respects item permissions for page-sort 3
jploch Posted July 18 Author Posted July 18 12 hours ago, HMCB said: PageGrid uses a proprietary CSS framework? The core PageGrid module uses minimal modern CSS defaults, you can't really call it a framework: /* main wrapper default styles */ .pg-main { display: grid; grid-template-columns: repeat(12, 1fr); gap: 30px; box-sizing: border-box; } The optional PageGridBlocks module also loads minimal css per block (some blocks load a blockName.css file, eg. slider or accordion). These styles are intended as a minimal foundation for loading your own styles or CSS frameworks on top (or using the style panel to style visually right on the page). These styles have low specificity, so they can be easily overwritten. Adding a CSS framework is just a matter of adding the framework specific markup (CSS classes) to your block templates and loading the framework css file in your main template. This means that all CSS frameworks also work with PAGEGRID. To add your own CSS framework you have to either modify the default blocks (copy from PageGridBlocks/blocks to site/templates/blocks folder) or create your own. I might create a new blocks module for a specific CSS framework if there is enough interrest. So let me know if you have a framework in mind. I would prefere to use a modern vanilla CSS framework that works without CSS preprocessors. Check the styles docs for more info. 2
HMCB Posted Friday at 11:05 PM Posted Friday at 11:05 PM On 7/18/2026 at 3:57 AM, jploch said: Adding a CSS framework is just a matter of adding the framework specific markup (CSS classes) to your block templates and loading the framework css file in your main template. This means that all CSS frameworks also work with PAGEGRID. To add your own CSS framework you have to either modify the default blocks (copy from PageGridBlocks/blocks to site/templates/blocks folder) or create your own. Understood. Thanks for clarifying.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now