PHPackages                             smic/dynamic-routing-pages - 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. smic/dynamic-routing-pages

ActiveTypo3-cms-extension[Utility &amp; Helpers](/categories/utility)

smic/dynamic-routing-pages
==========================

Generates "limitToPages" configuration for your enhancers on the fly so you don't need to hardcode it.

2.0.0(8mo ago)21116.9k↓22.2%10[6 issues](https://github.com/smichaelsen/typo3-dynamic-routing-pages/issues)[2 PRs](https://github.com/smichaelsen/typo3-dynamic-routing-pages/pulls)GPL-2.0-or-laterPHP

Since Mar 9Pushed 2mo ago3 watchersCompare

[ Source](https://github.com/smichaelsen/typo3-dynamic-routing-pages)[ Packagist](https://packagist.org/packages/smic/dynamic-routing-pages)[ RSS](/packages/smic-dynamic-routing-pages/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (7)Dependencies (1)Versions (17)Used By (0)

Dynamic Routing Pages
=====================

[](#dynamic-routing-pages)

Instead of hardcoding the `limitToPages` configuration for your route enhancers this package can automatically detect the necessary pages for you and generate the configuration on the fly.

Problem
-------

[](#problem)

Imagine the following typical routing configuration for the news plugin.

```
routeEnhancers:
  NewsPages:
    type: Extbase
    # add every page-ID that contains a News Plugin
    limitToPages:
      - 23
      - 42
      - 123
      - 242
    extension: News
    plugin: Pi1
    routes:
      - { routePath: '/{myNewsTitle}', _controller: 'News::detail', _arguments: {'myNewsTitle': 'news'} }
      - { routePath: '/{myPagination}', _controller: 'News::list', _arguments: {'myPagination': '@widget_0/currentPage'} }
      - { routePath: '/{year}/{month}', _controller: 'News::list', _arguments: {'year' : 'overwriteDemand/year', 'month' : 'overwriteDemand/month'} }
    defaultController: 'News::list'
    # ...

```

Hardcoding the page ids for your plugin routes has the major drawback that you have to adapt the configuration as soon as someone creates a new page with a plugin (which might happen in a CMS). With the route enhancers configuration not available in the Site module this means you have to ship an updated configuration file every time an editor creates a plugin page.

Solution
--------

[](#solution)

```
routeEnhancers:
  NewsPages:
    type: Extbase
    dynamicPages:
        withPlugin: news_pi1
    extension: News
    plugin: Pi1
    routes:
      - { routePath: '/{myNewsTitle}', _controller: 'News::detail', _arguments: {'myNewsTitle': 'news'} }
      - { routePath: '/{myPagination}', _controller: 'News::list', _arguments: {'myPagination': '@widget_0/currentPage'} }
      - { routePath: '/{year}/{month}', _controller: 'News::list', _arguments: {'year' : 'overwriteDemand/year', 'month' : 'overwriteDemand/month'} }
    defaultController: 'News::list'
    # ...

```

Notice the `dynamicPages` configuration. This package will populate the `limitToPages` with matching pages.

Reference
---------

[](#reference)

`dynamicPages` has three possible properties.

### `withPlugin`

[](#withplugin)

Can be a string or an array of `tt_content.list_type` values. Will find all pages that contain at least one of the given plugins.

### `containsModule`

[](#containsmodule)

Can be a string or an array of `pages.module` values. Will find all pages that have "Contains Plugin" set to one of the given values.

### `withSwitchableControllerAction`

[](#withswitchablecontrolleraction)

Can be a string or an array of `switchableControllerActions` values. Will find all pages that contain plugins with the given action configured.

### `withCType`

[](#withctype)

Can be a string or an array of `withCType` values. Will find all pages that contain content element with given CType.

### `withDoktypes`

[](#withdoktypes)

Can be an integer or an array of `withDoktypes` values. Will find all pages with given doktype.

###  Health Score

51

—

FairBetter than 96% of packages

Maintenance69

Regular maintenance activity

Popularity43

Moderate usage in the ecosystem

Community19

Small or concentrated contributor base

Maturity61

Established project with proven stability

 Bus Factor1

Top contributor holds 71.4% 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 ~273 days

Recently: every ~314 days

Total

7

Last Release

257d ago

Major Versions

1.2.0 → 2.0.02025-09-04

### Community

Maintainers

![](https://www.gravatar.com/avatar/886face3e57e668db2bf95d62325f423baf7e9d8949a9e4c84d3a0e6c3891920?d=identicon)[smichaelsen](/maintainers/smichaelsen)

---

Top Contributors

[![smichaelsen](https://avatars.githubusercontent.com/u/912435?v=4)](https://github.com/smichaelsen "smichaelsen (20 commits)")[![amirarends](https://avatars.githubusercontent.com/u/48568142?v=4)](https://github.com/amirarends "amirarends (3 commits)")[![kitzberger](https://avatars.githubusercontent.com/u/1405149?v=4)](https://github.com/kitzberger "kitzberger (1 commits)")[![saitho](https://avatars.githubusercontent.com/u/7293310?v=4)](https://github.com/saitho "saitho (1 commits)")[![schliesser](https://avatars.githubusercontent.com/u/11655823?v=4)](https://github.com/schliesser "schliesser (1 commits)")[![kszymukowicz](https://avatars.githubusercontent.com/u/1453553?v=4)](https://github.com/kszymukowicz "kszymukowicz (1 commits)")[![ftrojahn](https://avatars.githubusercontent.com/u/6184818?v=4)](https://github.com/ftrojahn "ftrojahn (1 commits)")

### Embed Badge

![Health badge](/badges/smic-dynamic-routing-pages/health.svg)

```
[![Health](https://phpackages.com/badges/smic-dynamic-routing-pages/health.svg)](https://phpackages.com/packages/smic-dynamic-routing-pages)
```

###  Alternatives

[in2code/powermail

Powermail is a well-known, editor-friendly, powerful and easy to use mailform extension for TYPO3 with a lots of features

982.5M38](/packages/in2code-powermail)[fluidtypo3/flux

The flux package from FluidTYPO3

152982.2k20](/packages/fluidtypo3-flux)[friendsoftypo3/content-blocks

TYPO3 CMS Content Blocks - Content Types API | Define reusable components via YAML

96374.6k23](/packages/friendsoftypo3-content-blocks)[derhansen/sf_event_mgt

Configurable event management and registration extension based on ExtBase and Fluid

64313.9k6](/packages/derhansen-sf-event-mgt)[typo3/cms-t3editor

TYPO3 CMS T3Editor - JavaScript-driven editor with syntax highlighting and code completion. Based on CodeMirror.

115.9M50](/packages/typo3-cms-t3editor)[wazum/sluggi

TYPO3 extension for URL slug management with inline editing, auto-sync, locking, access control, and redirects

39488.5k](/packages/wazum-sluggi)

PHPackages © 2026

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