PHPackages                             ttree/outofbandrendering - 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. ttree/outofbandrendering

ActiveNeos-package[Utility &amp; Helpers](/categories/utility)

ttree/outofbandrendering
========================

A package to render Fusion Out of Band in complex application fun &amp; easy

4.0.0(7mo ago)41.3k41MITPHP

Since Dec 21Pushed 7mo ago3 watchersCompare

[ Source](https://github.com/ttreeagency/OutOfBandRendering)[ Packagist](https://packagist.org/packages/ttree/outofbandrendering)[ RSS](/packages/ttree-outofbandrendering/feed)WikiDiscussions master Synced 3w ago

READMEChangelogDependencies (1)Versions (11)Used By (1)

Fusion Out of Band rendering helpers
====================================

[](#fusion-out-of-band-rendering-helpers)

This package provide some helpers to work with Fusion Out of Band rendering in Neos CMS

**Package under development, API can change at any time**

How to use ?
------------

[](#how-to-use-)

Edit your distribution `Routes.yaml` and add the required routes:

```
-
  name: 'Ttree.OutOfBandRendering'
  uriPattern: ''
  subRoutes:
    'TtreeOutOfBandRenderingSubroutes':
      package: 'Ttree.OutOfBandRendering'
      variables:
        'defaultUriSuffix': ''

```

With this configuration you can access the URL endpoint at `http://www.domain.com/api/v1/rendering`.

Check the [Routes.yaml](Configuration/Routes.yaml) in this package, if you need a custom URL.

Make it work
------------

[](#make-it-work)

The endpoint require two parameters:

- **node**: the node address of the rendering node (e.g. `{"contentRepositoryId":"default","workspaceName":"live","dimensionSpacePoint":{"language":"en"},"aggregateId":"dfdddebe-d4a9-40b5-b7e1-e071a8024174"}`)
- **preset**: the preset name, check below for information about Presets

You can create preset in two different ways, static presets in `Settings.yaml` and dynamic presets with your own PHP implementation. A preset is mainly used to limit the Fusion path that can be rendered out of band.

### Static Preset

[](#static-preset)

To use static preset, just write something like this in your `Settings.yaml`:

```
Ttree:
  OutOfBandRendering:
    presets:
      'marketplace:version':
        path: 'root/neosMarketPlaceDocument/element/body/content/main/package/versions'

```

The key `marketplace:version` is your preset name, and the path the allowed Fusion path to be rendered.

### Dynamic Preset

[](#dynamic-preset)

A dynamic preset is more flexible and allow you to generate the Fusion path dynamically based on the given node.

You need a `PresetDefintion` object, the easy way is to extend the `AbstractPresetDefinition` like this:

```
use Ttree\OutOfBandRendering\Domain\Model\AbstractPresetDefinition;
use Neos\ContentRepository\Domain\Model\NodeInterface;

class CustomPresetPresetDefinition extends AbstractPresetDefinition  {

    /**
     * @param NodeInterface $node
     * @return string
     */
    public function getFusionPath(NodeInterface $node) {
        return 'page/body/content/main/enterpriseProfile/element/reportSection/content';
    }
}
```

The `PresetDefinitionInterface` force you to defined the following methods:

- **PresetDefinitionInterface::getPriority**: Return an integer to define the preset priority (higher has more priority, like in the Flow Framework PropertyMapper
- **PresetDefinitionInterface::getName**: Return the name of the preset (used in the endpoint URL)
- **PresetDefinitionInterface::canHandle**: Receive the current document node as argument, and allow you to add more logic to decide if a preset can handle the given node
- **PresetDefinitionInterface::getFusionPath**: Receive the current document node as argument, must return the Fusion path to render

What's next ?
-------------

[](#whats-next-)

- Implement authorization support
- Add JS module to support content loading (appending, replacing, infinite scrolling, ...)

Acknowledgments
---------------

[](#acknowledgments)

Development sponsored by [ttree ltd - neos solution provider](http://ttree.ch).

We try our best to craft this package with a lots of love, we are open to sponsoring, support request, ... just contact us.

License
-------

[](#license)

Licensed under MIT, see [LICENSE](LICENSE)

###  Health Score

46

—

FairBetter than 92% of packages

Maintenance62

Regular maintenance activity

Popularity23

Limited adoption so far

Community16

Small or concentrated contributor base

Maturity69

Established project with proven stability

 Bus Factor1

Top contributor holds 93.2% 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 ~399 days

Recently: every ~617 days

Total

10

Last Release

236d ago

Major Versions

0.1.0 → 1.0.02016-04-02

1.0.0 → 2.0.02017-03-29

2.0.x-dev → 3.0.02019-01-25

3.1.0 → 4.0.02025-10-29

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/145363?v=4)[ttree](/maintainers/ttree)[@ttree](https://github.com/ttree)

---

Top Contributors

[![dfeyer](https://avatars.githubusercontent.com/u/221173?v=4)](https://github.com/dfeyer "dfeyer (96 commits)")[![kdambekalns](https://avatars.githubusercontent.com/u/95873?v=4)](https://github.com/kdambekalns "kdambekalns (4 commits)")[![dlubitz](https://avatars.githubusercontent.com/u/13046100?v=4)](https://github.com/dlubitz "dlubitz (3 commits)")

---

Tags

neoscmsFUSIONflow-framework

### Embed Badge

![Health badge](/badges/ttree-outofbandrendering/health.svg)

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

###  Alternatives

[shel/neos-colorpicker

A plugin for Neos CMS which provides a colorpicker editor

14101.5k6](/packages/shel-neos-colorpicker)[shel/neos-hyphens

A plugin for Neos CMS which provides hyphens for the inline editor

21210.1k1](/packages/shel-neos-hyphens)[carbon/includeassets

Include your assets (css, js) in an easy way into Neos

14233.4k12](/packages/carbon-includeassets)[shel/neos-workspace-module

An alternative workspace module with additional features for Neos CMS

1741.7k1](/packages/shel-neos-workspace-module)

PHPackages © 2026

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