Skip to content

Keep in control of large SiteTrees by using GridField to manage pages.

License

Notifications You must be signed in to change notification settings

fractaslabs/silverstripe-lumberjack

 
 

SilverStripe Lumberjack

Build Status Scrutinizer Code Quality Code coverage Latest Stable Version Latest Unstable Version License

A module to make managing pages in a GridField easy without losing any of the functionality that you're used to in the CMS.

This is intended to be used in cases where the SiteTree grows beyond a manageable level. eg. blogs, news sections, shops, etc.

This module was born out of and decoupled from micmania1/silverstripe-blog.

Requirements

  • silverstripe/cms: 4.0+

Installation

composer require silverstripe/lumberjack

Features

  • Easily define which page types to show in the SiteTree and which to manage in a GridField.
  • Keep all functionality that comes with the CMS, including versioning and preview.

Usage

In this example we have a NewsHolder page which is the root of our news section, containing NewsArticles and NewsPages. We want to display NewsPage in the site tree but we want to display NewsArticles in a GridField.

<?php

use Page;
use SilverStripe\Lumberjack\Model\Lumberjack;

class NewsHolder extends Page
{
    private static $extensions = [
        Lumberjack::class,
    ];

    private static $allowed_children = [
        'NewsArticle',
        'NewsPage',
    ];
}

class NewsArticle extends Page
{
    private static $show_in_sitetree = false;
    private static $allowed_children = [];
}

class NewsPage extends Page
{
    private static $show_in_sitetree = true;
}

If show_in_sitetree is not explicitly defined on a class, then it will default to true. You can add this setting to core classes and modules using the YAML config system. It is not recommended to add the LumberJack extension to the SiteTree or Page class.

SilverStripe\Blog\Model\Blog:
  extensions:
    - SilverStripe\Lumberjack\Model\Lumberjack

SilverStripe\Blog\Model\BlogPost:
  show_in_sitetree: false

About

Keep in control of large SiteTrees by using GridField to manage pages.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 88.5%
  • CSS 6.1%
  • Ruby 3.4%
  • JavaScript 1.5%
  • Scheme 0.5%