PHPackages                             christopherbolt/silverstripe-publishwithme - 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. christopherbolt/silverstripe-publishwithme

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

christopherbolt/silverstripe-publishwithme
==========================================

Publishes/Unpublishes versioned DataObjects that are attached to a Page or parent DataObject when the parent object is published.

v1.0.1(8y ago)76962[1 issues](https://github.com/christopherbolt/silverstripe-publishwithme/issues)2PHPPHP &gt;=5.3.2

Since Mar 1Pushed 4mo ago1 watchersCompare

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

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

PublishWithMe
=============

[](#publishwithme)

Publishes/Un-publishes versioned DataObjects that are attached to a Page when the page is published.

Lets imagine that you have a staff profiles page where each staff member is a DataObject in a has\_many relation. Without any versioning edits to a staff member would be published immediately breaking workflow approval processes and breaking the draft, publish and history functionality of Silverstripe. Or if they did have the Versioned extension they would need to be published independantly from the page which complicates workflow. This module allows those edits to be published when the page is published. Also supports un-publishing, revert to live and history rollback with the page. This allows objects to behave as if they are part of the page.

Upgrading from SilverStripe 3
-----------------------------

[](#upgrading-from-silverstripe-3)

Most of the functionality of this plugin is now built into SilverStripe 4 and can be enabled by using the $owns config that is baked into SS4. To upgrade please replace the $publish\_with\_me config with $owns. In SS4 all this plugin does is enhance the Saved / Published button to show that the page needs publishing if any $owns objects have unpublished changes.

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

[](#requirements)

SS 4.x, see 1.0 branch for SS 3.x

Usage
-----

[](#usage)

Add the PublishWithMe extension to your page (or parent DataObject):

```
private static $extensions = array(
    "PublishWithMe"
);

```

Still on your page (or parent DataObject) define which relations should be managed by this extension, this is a list of array keys from your has\_one and/or has\_many relations, this just now uses the $owns config that is built into SS4:

```
private static $owns = array(
    'Staff',
);

```

The DataObjects to be published with the page must have the Versioned extension, in the example above you would add this to your StaffMember object:

```
private static $extensions = array(
    Versioned::class,
);

```

If your dataobjects themselves contain relations that should be published with the page then also add the PublishWithMe extension and the $owns config and ensure that the child data objects have the Versioned extension etc.

### Installation

[](#installation)

```
composer require christopherbolt/silverstripe-publishwithme ^2

```

###  Health Score

39

—

LowBetter than 86% of packages

Maintenance47

Moderate activity, may be stable

Popularity22

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity61

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

Every ~949 days

Total

4

Last Release

147d ago

Major Versions

v1.0.1 → 2.0.x-dev2025-12-16

2.0.x-dev → 3.0.x-dev2025-12-16

### Community

Maintainers

![](https://www.gravatar.com/avatar/a485d2a5011de981a03627bcbb43deb9a868a46e2507b3037e81516d89117df6?d=identicon)[christopherbolt](/maintainers/christopherbolt)

---

Top Contributors

[![christopherbolt](https://avatars.githubusercontent.com/u/16007412?v=4)](https://github.com/christopherbolt "christopherbolt (17 commits)")

### Embed Badge

![Health badge](/badges/christopherbolt-silverstripe-publishwithme/health.svg)

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

PHPackages © 2026

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