PHPackages                             sheadawson/silverstripe-rateable - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. sheadawson/silverstripe-rateable

ActiveSilverstripe-vendormodule[Utility &amp; Helpers](/categories/utility)

sheadawson/silverstripe-rateable
================================

An extension that adds a star rating system + UI to any DataObject type.

3.1.0(2y ago)204.6k131PHP

Since Aug 3Pushed 2y ago7 watchersCompare

[ Source](https://github.com/sheadawson/silverstripe-rateable)[ Packagist](https://packagist.org/packages/sheadawson/silverstripe-rateable)[ Docs](http://github.com/sheadawson/silverstripe-rateable)[ RSS](/packages/sheadawson-silverstripe-rateable/feed)WikiDiscussions master Synced 2w ago

READMEChangelog (5)Dependencies (2)Versions (15)Used By (1)

silverstripe-rateable
=====================

[](#silverstripe-rateable)

An extension that adds a star rating system + UI to any DataObject type

Requirements
------------

[](#requirements)

Silverstripe 4 and 5

Installation
------------

[](#installation)

`composer require sheadawson/silverstripe-rateable 2.0.x@stable`

Apply the Rateable DataExtension to the Objects you want to rate. ie. in mysite/\_config/config.yml

```
Page:
  extensions:
    - SheaDawson\Rateable\Extensions\Rateable

```

Then in your templates you can use $RateableUI, when in the context of your rateable object to render the star rating UI. If you have multiple instances of the same DataObject + RateableUI on one page, you can pass in a unique identifier string to $RateableUI, ie. $RateableUI('footer').

Run dev/build?flush=all

Sorting objects by rating
-------------------------

[](#sorting-objects-by-rating)

```
$pages = Page::get();
$sortedPages = singleton('RateableService')->sortByRating($pages);
```

Disabling by default on some page types
---------------------------------------

[](#disabling-by-default-on-some-page-types)

If you have added this extension to the `Page` class, it's enabled by default on *all* pages. But on some page types this might be annoying, e.g. ErrorPage or some holders. You can disable $RateableUI by default on this pages by adding this to your config.yml:

```
ErrorPage:
  defaults:
    EnableRatings: 0

```

You can still enable it on some pages of this type by hand in the "Settings" section.

###  Health Score

38

—

LowBetter than 83% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity30

Limited adoption so far

Community21

Small or concentrated contributor base

Maturity71

Established project with proven stability

 Bus Factor1

Top contributor holds 56.1% 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 ~241 days

Recently: every ~672 days

Total

14

Last Release

850d ago

Major Versions

1.1.x-dev → 2.0.02016-10-20

2.0.x-dev → 3.0.02020-04-30

### Community

Maintainers

![](https://www.gravatar.com/avatar/6ca23b453a4fc5ac237ad4fcc512f68fab5c7b124f403cad1a5848b3fffb6aa2?d=identicon)[sheadawson](/maintainers/sheadawson)

---

Top Contributors

[![sheadawson](https://avatars.githubusercontent.com/u/1166136?v=4)](https://github.com/sheadawson "sheadawson (23 commits)")[![wernerkrauss](https://avatars.githubusercontent.com/u/1043925?v=4)](https://github.com/wernerkrauss "wernerkrauss (7 commits)")[![xini](https://avatars.githubusercontent.com/u/1152403?v=4)](https://github.com/xini "xini (7 commits)")[![hdpero](https://avatars.githubusercontent.com/u/13778690?v=4)](https://github.com/hdpero "hdpero (3 commits)")[![thunger](https://avatars.githubusercontent.com/u/1459399?v=4)](https://github.com/thunger "thunger (1 commits)")

---

Tags

silverstripeRating

### Embed Badge

![Health badge](/badges/sheadawson-silverstripe-rateable/health.svg)

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

###  Alternatives

[silverstripe/userforms

UserForms enables CMS users to create dynamic forms via a drag and drop interface and without getting involved in any PHP code

1321.1M83](/packages/silverstripe-userforms)[symbiote/silverstripe-advancedworkflow

Adds configurable workflow support to the CMS, with a GUI for creating custom workflow definitions.

46299.9k9](/packages/symbiote-silverstripe-advancedworkflow)[silverstripe/widgets

Widgets are small pieces of functionality such as showing the latest Comments or Flickr Photos. They normally display on the sidebar of your website.

37418.6k20](/packages/silverstripe-widgets)[lekoala/silverstripe-cms-actions

Add actions to your models in SilverStripe

39317.0k29](/packages/lekoala-silverstripe-cms-actions)[silverstripe/sharedraftcontent

Share draft page content with non-CMS users

21419.6k11](/packages/silverstripe-sharedraftcontent)[lekoala/silverstripe-softdelete

Soft delete extension for SilverStripe

11212.9k](/packages/lekoala-silverstripe-softdelete)

PHPackages © 2026

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