PHPackages                             webfox/silverstripe-helpers - 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. webfox/silverstripe-helpers

AbandonedArchivedSilverstripe-module

webfox/silverstripe-helpers
===========================

Core extensions with default helpers

v1.12.0(1y ago)21.5k4[1 PRs](https://github.com/webfox/silverstripe-helpers/pulls)MITPHP

Since Feb 3Pushed 1y ago2 watchersCompare

[ Source](https://github.com/webfox/silverstripe-helpers)[ Packagist](https://packagist.org/packages/webfox/silverstripe-helpers)[ RSS](/packages/webfox-silverstripe-helpers/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (1)Versions (35)Used By (0)

Installation Instructions
=========================

[](#installation-instructions)

Composer
--------

[](#composer)

Run the following to add this module as a requirement and install it via composer.

```
#!bash

composer require "webfox/silverstripe-helpers"

```

Add the following to your `config.yml`:

```
Page:
  has_on_after_update_cms_fields: true
```

then browse to /dev/build?flush=all

Several of these helpers are disabled by default but can be enabled in the config.

Requirements
============

[](#requirements)

- Silverstripe 3.1+
- php5.4+
- php5-intl Package

Extension Overview
==================

[](#extension-overview)

DataListExtension
-----------------

[](#datalistextension)

- Adds a new *ListColumn* function to a DataList to allow implode() style functionality of the list items
    e.g. `$list->ListColumn('ID', ' |')` would result in something like "1 |18 |19 |24".
- Automatically applied

ExtraPageFieldsExtension
------------------------

[](#extrapagefieldsextension)

- Moves the metadata fields to a new tab
- Adds a new "Meta Title" field
- Automatically applied

If you do not add the `HasOnAfterUpdateCMSFieldsExtensionPoint` trait to your base `Page` class then the extension will use an unreliable method of moving the pages. For this reason we suggest adding `use HasOnAfterUpdateCMSFieldsExtensionPoint;` to this class.

If you have a custom constructor already you will need to alias the traits constructor so you may call it.

```
class Page extends SiteTree {

    use HasOnAfterUpdateCMSFieldsExtensionPoint {
        HasOnAfterUpdateCMSFieldsExtensionPoint::__construct as __TraitConstruct;
    }

    public function __construct($record = null, $isSingleton = false, $model = null){

        $this->__TraitConstruct($record, $isSingleton, $model);

        //your custom things

        parent::__construct($record, $isSingleton, $model);
    }

}
```

Relative Assets Extension
-------------------------

[](#relative-assets-extension)

- Prefixes all references to `assets/*` with a preceeding slash i.e. they become something like `/assets/some.png`
- If [zaininnari/html-minifier](https://github.com/zaininnari/html-minifier) is installed minifies the HTML output before rendering.
- If Assets.host config is set then Assets will be prefixed with this host.

```
Assets:
  host: '//example.com/'
```

Would equal `//example.com/assets/image.png`

FooterMenuExtension
-------------------

[](#footermenuextension)

- Adds a new *ShowInFooter* option to the page settings
- Adds a new `FooterPages()` function to the SiteTree to return only pages that have this checked

ImageExtension
--------------

[](#imageextension)

- Adds a new *Image Alt Text* option to the image settings
- Makes the image settings fields full width
- Automatically applied

LinkExtension
-------------

[](#linkextension)

- Adds a new *SEO Text* option to the link settings
- Adds a *force download* checkbox to the link if it's set to a file.
- Automatically applied

Template Providers Overview
===========================

[](#template-providers-overview)

HelpersTemplateProvider
-----------------------

[](#helperstemplateprovider)

- Adds a new `Repeat($times)` function to the templates to return a loopable list (kind of like a for loop)
- Adds a new `Dump($obj)` function to the templates to allow easy dumping of any template variable

Extendable Classes Overview
===========================

[](#extendable-classes-overview)

OwnerPermissionedDataObject
---------------------------

[](#ownerpermissioneddataobject)

- Allows data objects to inherit the access permissions from their attached relation parent
- Relation parent defaults to `Page()`
- If `static::$relationOwner` is set to `null` will fall back to asking the standard `Page` for permission

###  Health Score

41

—

FairBetter than 89% of packages

Maintenance38

Infrequent updates — may be unmaintained

Popularity20

Limited adoption so far

Community17

Small or concentrated contributor base

Maturity75

Established project with proven stability

 Bus Factor1

Top contributor holds 60% 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

Every ~111 days

Recently: every ~730 days

Total

33

Last Release

541d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/89a3fc3149eeb34725cdbe81bee9adc4a9db23425ef3595a3a115a4f23c813ea?d=identicon)[foxbytehq](/maintainers/foxbytehq)

![](https://www.gravatar.com/avatar/868f1ed9f864444f55c654b2291a697a825ce88a84cd3006e1fbba537c245e7f?d=identicon)[hailwood](/maintainers/hailwood)

---

Top Contributors

[![hailwood](https://avatars.githubusercontent.com/u/709773?v=4)](https://github.com/hailwood "hailwood (15 commits)")[![james-simmonds](https://avatars.githubusercontent.com/u/1891906?v=4)](https://github.com/james-simmonds "james-simmonds (7 commits)")[![lestercomia](https://avatars.githubusercontent.com/u/7654763?v=4)](https://github.com/lestercomia "lestercomia (1 commits)")[![TcFxGt4AGE](https://avatars.githubusercontent.com/u/11673312?v=4)](https://github.com/TcFxGt4AGE "TcFxGt4AGE (1 commits)")[![zanderwar](https://avatars.githubusercontent.com/u/13566916?v=4)](https://github.com/zanderwar "zanderwar (1 commits)")

---

Tags

helperssilverstripewebfox

### Embed Badge

![Health badge](/badges/webfox-silverstripe-helpers/health.svg)

```
[![Health](https://phpackages.com/badges/webfox-silverstripe-helpers/health.svg)](https://phpackages.com/packages/webfox-silverstripe-helpers)
```

###  Alternatives

[silvershop/core

Provides an ecommerce product catalog, shopping cart, and order management system

11340.0k42](/packages/silvershop-core)[silverstripe-terraformers/gridfield-rich-filter-header

Rich filter header component for GridField

1325.7k1](/packages/silverstripe-terraformers-gridfield-rich-filter-header)[sunnysideup/ecommerce

Silverstripe E-commerce Application

257.2k79](/packages/sunnysideup-ecommerce)

PHPackages © 2026

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