PHPackages                             silverstripe-australia/silverstripe-partial-themes - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Templating &amp; Views](/categories/templating)
4. /
5. silverstripe-australia/silverstripe-partial-themes

ActiveSilverstripe-module[Templating &amp; Views](/categories/templating)

silverstripe-australia/silverstripe-partial-themes
==================================================

A module that allows developers to defined just one a few template over-rides for the base theme templates, applied to just sub-trees of a site

1.0.0(10y ago)43.2k2[1 issues](https://github.com/nyeholt/silverstripe-partial-themes/issues)[4 PRs](https://github.com/nyeholt/silverstripe-partial-themes/pulls)BSD-3-ClausePHP

Since Jul 16Pushed 10y ago2 watchersCompare

[ Source](https://github.com/nyeholt/silverstripe-partial-themes)[ Packagist](https://packagist.org/packages/silverstripe-australia/silverstripe-partial-themes)[ Docs](https://github.com/nyeholt/silverstripe-partial-themes)[ RSS](/packages/silverstripe-australia-silverstripe-partial-themes/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (2)Used By (0)

silverstripe-partial-themes
===========================

[](#silverstripe-partial-themes)

A module for managing themes a little more flexibly; by applying a theme to a subtree of a site, by specifying just a partial set of templates to make up a 'theme', and by allowing code be bound to the theme implementation.

Partial Themes
--------------

[](#partial-themes)

Allows for the creation of themes that may override only a part of the 'main' theme. For example, assume you have /themes/simple bound as your main project theme, you can specify another theme alongside this which changes a single template. So assuming you wanted to create another theme, eg /themes/simplesimon that only differed in the way products were displayed, rather than specifying a whole new theme, you would provide *just* the required template.

```
/themes/simple
/themes/simple/templates
/themes/simple/templates/Includes
/themes/simple/templates/Includes/Footer.ss
/themes/simple/templates/Includes/SideBar.ss
/themes/simple/templates/Includes/Navigation.ss
/themes/simple/templates/Includes/SidebarMenu.ss
/themes/simple/templates/Includes/Header.ss
/themes/simple/templates/Includes/BreadCrumbs.ss
/themes/simple/templates/Page.ss
/themes/simple/templates/Layout
/themes/simple/templates/Layout/ProductPage.ss
/themes/simple/templates/Layout/Page_results.ss
/themes/simple/templates/Layout/Page.ss
/themes/simplesimon/templates/Layout/ProductPage.ss

```

Then, inside the CMS, the 'Partial theme' setting field would be set to 'simplesimon'.

Theme Helpers
-------------

[](#theme-helpers)

Rather than specifying theme specific code in the page controller init method, the module looks for a `{ThemeName}Helper` class to call for before init and after init.

Configuration
-------------

[](#configuration)

```

Page:
  extensions:
    - PartialThemesExtension

Controller:
  extensions:
    - PartialThemesExtension

```

Project specific requirements
-----------------------------

[](#project-specific-requirements)

You must have the following defined for the controller(s) that will use partial themes; in particular, the Page\_Controller class

```
    public function getViewer($action) {
        $viewer = parent::getViewer($action);
        $viewer = $this->overridePartialTemplates($viewer, array(), $action);
        return $viewer;
    }
```

Usage
-----

[](#usage)

Once enabled, Theme settings are available on a page's Settings tab.

###  Health Score

31

—

LowBetter than 68% of packages

Maintenance15

Infrequent updates — may be unmaintained

Popularity22

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity63

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

3960d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/25cb1c56a7ab949d1e6b28a2a04862ce1cffe1799a291e1797f8dfd33cd83716?d=identicon)[nyeholt](/maintainers/nyeholt)

---

Top Contributors

[![nyeholt](https://avatars.githubusercontent.com/u/161730?v=4)](https://github.com/nyeholt "nyeholt (3 commits)")

---

Tags

silverstripethemepartial theme

### Embed Badge

![Health badge](/badges/silverstripe-australia-silverstripe-partial-themes/health.svg)

```
[![Health](https://phpackages.com/badges/silverstripe-australia-silverstripe-partial-themes/health.svg)](https://phpackages.com/packages/silverstripe-australia-silverstripe-partial-themes)
```

###  Alternatives

[silverstripe-themes/simple

The SilverStripe simple theme (default SilverStripe 3 theme)

411.3M8](/packages/silverstripe-themes-simple)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
