This package is not installable via Composer 1.x, please make sure you upgrade to Composer 2+. Read more about our Composer 1.x deprecation policy.
This package is abandoned and no longer maintained. The author suggests using the package instead.

Allows you to inheritage information from the parent pages

0.2.5 2018-04-20 10:18 UTC

This package is not auto-updated.

Last update: 2019-02-20 18:55:24 UTC


Allows you to inherit any property from parent pages (any level). Check out the usage example to see how it works.


  • Loading information from direct or indirect parent page.

  • This is only tested for db-fields. Has_one or has_many hasn't be confirmed.*


The following example shows a possible use case of two page types which have a fixed position in the information architecture and using inheritage to get the "color" field to the sublanding page.

 * In the SiteTree this page will be directly under the homepage.
 * URL structure /landing
class LandingPage extends Page
     * @var array
    $db = [
        'Color' => 'Varchar',
class LandingPage_Controller extends Page_Controller
    /* ... */
 * In the SiteTree this page will be directly under the landing page.
 * URL structure /landing/sublanding
class SubLandingPage extends Page
    /* ... */
class SubLandingPage_Controller extends Page_Controller
    /* ... */

in you can do this now:

<% cached 'color', $Top.ID, $Top.LastEdited %>
<% end_cached %>

to retrieve the Color value set on the parent. Please ensure you apply suitable caching to any calls.

Requirements and installation


  • SilverStripe Framework and CMS ^3.0


  1. Run the following command to install the package:

    # install the package
    composer require bringyourownideas/inheritage-by-sitetree;
    git add composer.json composer.lock;
    git commit -m 'MINOR: adding inheritage-by-sitetree';
  2. Set up your Extension

    This can be done either via a yml configuration file (e.g. mysite/_config/config.yml):


    or by checking the InheritageBySiteTreeExtension.php and adding the "non-extension" version of the module to your Page.php-file. The second option is more performant.

  3. Run dev/build to load extension

    # run dev/build to load extension
    php ./framework/cli-script.php dev/build

misc: future ideas/development, issues, contrib, license

This project is supported by bring your own ideas Ltd.. Bring Your Own Ideas Ltd. helps you to make your project ideas to reality.

bring your own ideas