PHPackages                             gggeek/ezworkflowcollection - 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. gggeek/ezworkflowcollection

AbandonedArchivedEzpublish-legacy-extension[Utility &amp; Helpers](/categories/utility)

gggeek/ezworkflowcollection
===========================

This extension is a collection of general-purpose workflow event types for eZ Publish

0.7.0(7y ago)71.6k4GPL-2.0-or-laterPHP

Since Dec 4Pushed 7y ago1 watchersCompare

[ Source](https://github.com/gggeek/ezworkflowcollection)[ Packagist](https://packagist.org/packages/gggeek/ezworkflowcollection)[ Docs](http://projects.ez.no/ezworkflowcollection)[ RSS](/packages/gggeek-ezworkflowcollection/feed)WikiDiscussions master Synced 2w ago

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

Extension ezworkflowcollection for eZ publish
=============================================

[](#extension-ezworkflowcollection-for-ez-publish)

This extension is a collection of general-purpose workflow event types that could be useful in different websites.

The list of event types available so far:

Multipublish workflow event:
----------------------------

[](#multipublish-workflow-event)

Will add secondary locations (one or more) when a content is published.

The list of nodes used as parents for secondary location(s) has to be defined for every workflow event (ie. in the admin interface). It is possible, but not mandatory, to add a class/attribute combination acting as filter, deciding for every given object being published wheter the multipublication will happen or not:

- If no class/attribute combination is selected, the workflow will apply to every object published (to limit its applicability, chain it to a multiplexer workflow).
- If a class/attribute combination is selected, the workflow will check the value of the given attribute to decide if multi-publication has to take place; if the attribute is not found in the current class, no multi-publication happens.
- If multiple class/attribute combinations are selected, the workflow will apply to every object that has set to TRUE at least one of those attributes. If an edited object is already child of one of the nodes selcted as multi-publication location, the workflow does not add a new secondary location at the same place. The cronjob never removes any secondary location, nor does it change any location to become primary.

Subtree Multiplexer workflow event:
-----------------------------------

[](#subtree-multiplexer-workflow-event)

Like a standard multiplexer event, but filters on node subtrees instead

Expire remote caches (ezflow based) workflow event:
---------------------------------------------------

[](#expire-remote-caches-ezflow-based-workflow-event)

Used to purge reverse proxy caches when an object is edited. This allows to set a high TTL for all web pages and increase the hit rate of reverse proxies, and at the same time to have the proxy refresh its cached version of a page as soon as the object is edited.

It is based on the eZHTTPCacheManager class and configuration from eZ Flow, which means that:

- eZ Flow is needed to take advantage of this workflow
- for the workflow to do anything, editing squid.ini is necessary
- currently the only CacheManager class available can purge both squid and varnish reverse proxy caches
- it allows to purge the cache correctly even if multiple domains/hostnames are cused (see ezworkflowcollection.ini)

"Approve location" workflow event:
----------------------------------

[](#approve-location-workflow-event)

Allows approval upon adding a new location to an object. Look at INSTALL file and check troubleshooting section for more info.

"Update object state" workflow event:
-------------------------------------

[](#update-object-state-workflow-event)

Allows to move object state from X to Y upon content publishing

"Add url alias" workflow event:
-------------------------------

[](#add-url-alias-workflow-event)

Allows to add an url alias to an object upon content publishing. The alias will be formed by an (user-defined) attribute of the object itself; it can be set to redirect internally or externally, and to be anchored at root or at parent node

"Copy all existing children to new location" workflow event:
------------------------------------------------------------

[](#copy-all-existing-children-to-new-location-workflow-event)

When adding a new location to an object which already has some children, add those children as well to the new location. Useful e.g. when you have a content that is composed of a parent node and some children, and you want to keep them together at all times, even when using multi-location

"Copy a node to all locations of parent (if parent has many)" workflow event:
-----------------------------------------------------------------------------

[](#copy-a-node-to-all-locations-of-parent-if-parent-has-many-workflow-event)

When publishing a new object, check if parent node has many locations and, if it has, add the new object as child to all locations of parent object. Useful e.g. when you have a content that is composed of a parent node and some children, and you want to keep them together at all times, even when using multi-location

FUTURE IDEAS
============

[](#future-ideas)

'Relate to node' workflow event:
--------------------------------

[](#relate-to-node-workflow-event)

will add a content as related-object to another node.

'Relate to node attribute' workflow event:
------------------------------------------

[](#relate-to-node-attribute-workflow-event)

will add a content as related-object to another node, making use of a related-object(s) attribute.

Section-based multiplexer
-------------------------

[](#section-based-multiplexer)

Object-state-based multiplexer
------------------------------

[](#object-state-based-multiplexer)

Hide until date workflow event:
-------------------------------

[](#hide-until-date-workflow-event)

please use the GWUtils extension, that already implements this

Send email workflow event:
--------------------------

[](#send-email-workflow-event)

similar to notification system, but based on workflows also with batch emails (eg. 1 x week or 1 x month)

Improved approval workflow event:
---------------------------------

[](#improved-approval-workflow-event)

. send out an email in case of rejection, too . make notification configuration flexible

Log workflow event:
-------------------

[](#log-workflow-event)

a simple tracing mechanism, useful e.g. for auditing purposes or debugging workflow execution

Halt workflow event:
--------------------

[](#halt-workflow-event)

Object-attribute based multiplexer workflow event:
--------------------------------------------------

[](#object-attribute-based-multiplexer-workflow-event)

###  Health Score

29

—

LowBetter than 57% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity23

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity51

Maturing project, gaining track record

 Bus Factor1

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

2765d ago

### Community

Maintainers

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

---

Top Contributors

[![gggeek](https://avatars.githubusercontent.com/u/308634?v=4)](https://github.com/gggeek "gggeek (3 commits)")[![alexpagnoni](https://avatars.githubusercontent.com/u/1527890?v=4)](https://github.com/alexpagnoni "alexpagnoni (2 commits)")[![oportier](https://avatars.githubusercontent.com/u/409996?v=4)](https://github.com/oportier "oportier (1 commits)")

---

Tags

ezpublishworkflows

### Embed Badge

![Health badge](/badges/gggeek-ezworkflowcollection/health.svg)

```
[![Health](https://phpackages.com/badges/gggeek-ezworkflowcollection/health.svg)](https://phpackages.com/packages/gggeek-ezworkflowcollection)
```

###  Alternatives

[ezsystems/eztags-ls

eZ Tags is an extension for eZ Publish, providing more functionality for tagging content objects than ezkeyword datatype included in eZ Publish kernel.

40204.0k3](/packages/ezsystems-eztags-ls)[ezsystems/ezautosave-ls

Content editing autosave extension for eZ Publish legacy

22425.5k3](/packages/ezsystems-ezautosave-ls)[ezsystems/legacy-bridge

eZ Platform bridge to eZ Publish Legacy

17118.8k5](/packages/ezsystems-legacy-bridge)[ezsystems/ezsurvey-ls

eZ Survey is a survey module for eZ Publish

248.1k](/packages/ezsystems-ezsurvey-ls)

PHPackages © 2026

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