PHPackages                             ichhabrecht/content-defender - 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. ichhabrecht/content-defender

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

ichhabrecht/content-defender
============================

Define allowed or denied content element types in your backend layouts

3.5.3(1y ago)892.9M↓13.9%47[32 issues](https://github.com/IchHabRecht/content_defender/issues)[17 PRs](https://github.com/IchHabRecht/content_defender/pulls)18GPL-2.0-or-laterPHPPHP ^8.1CI failing

Since May 8Pushed 1y ago9 watchersCompare

[ Source](https://github.com/IchHabRecht/content_defender)[ Packagist](https://packagist.org/packages/ichhabrecht/content-defender)[ Docs](https://github.com/IchHabRecht/content_defender)[ RSS](/packages/ichhabrecht-content-defender/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (11)Versions (50)Used By (18)

TYPO3 Extension content\_defender
=================================

[](#typo3-extension-content_defender)

[![Latest Stable Version](https://camo.githubusercontent.com/54bdd17254600da5a6997230fe1d0b1965e8a45b09d6332096032e8f551bfaa3/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f69636868616272656368742f636f6e74656e742d646566656e6465722e737667)](https://packagist.org/packages/ichhabrecht/content-defender)[![StyleCI](https://camo.githubusercontent.com/35d755fc760573ac5bbdff6ced0d92bda132e4a1339338001180e95938b8cbba/68747470733a2f2f7374796c6563692e696f2f7265706f732f39303534353134332f736869656c643f6272616e63683d6d61696e)](https://styleci.io/repos/90545143)[![GitHub Actions](https://github.com/IchHabRecht/content_defender/actions/workflows/test.yml/badge.svg?event=push)](https://github.com/IchHabRecht/content_defender/actions/workflows/test.yml/badge.svg?event=push)

Content Defender adds more options to define allowed or denied content element types in your backend layouts

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

[](#installation)

This extension can be installed using Composer or the Extension Manager.

### Composer

[](#composer)

```
composer require ichhabrecht/content-defender

```

### Extension Manager

[](#extension-manager)

See [TYPO3 Documentation - Managing Extensions - Legacy Guide](https://docs.typo3.org/m/typo3/tutorial-getting-started/main/en-us/Extensions/LegacyManagement.html)

Usage
-----

[](#usage)

1. You only need to adjust the column configuration of your backend\_layout

**Restrict certain content element fields**

- To allow a limited set of values for content element fields use `allowed.field = [list of comma separated values]`

*Examples:*

```
columns {
    1 {
        name = Column with header and textmedia elements
        colPos = 3
        colspan = 6
        allowed {
            CType = header, textmedia
        }
    }
}

```

```
columns {
    1 {
        name = Column with News plugin only
        colPos = 3
        colspan = 6
        allowed {
            CType = list
            list_type = news_pi1
        }
    }
}

```

**Combine multiple content element fields**

- The example allows multiple content element types (text and list) while restricting plugin types to `news` only.

*Example:*

```
columns {
    1 {
        name = A column with restricted list_type and "normal" CType
        colPos = 3
        colspan = 6
        allowed {
            CType = textmedia, list
            list_type = news_pi1
        }
    }
}

```

**Deny certain content element types**

- To remove a set of values from content element fields use `disallowed.field = [list of comma separated values]`

*Examples:*

```
columns {
    1 {
        name = Column without divider, plain html and table elements
        colPos = 3
        colspan = 6
        disallowed {
            CType = div, html, table
        }
    }
}

```

```
columns {
    1 {
        name = Column with header and list, without News plugin
        colPos = 3
        colspan = 6
        allowed {
            CType = header, list
        }
        disallowed {
            list_type = news_pi1
        }
    }
}

```

**Limit the number of content elements**

- To restrict the number of content elements use `maxitems = [number of elements]`

*Example:*

```
columns {
    1 {
        name = Column with one textmedia
        colPos = 3
        colspan = 6
        allowed {
            CType = textmedia
        }
        maxitems = 1
    }
}

```

Known issues
------------

[](#known-issues)

### TypeError

[](#typeerror)

*count(): Argument #1 ($value) must be of type Countable|array, null given*

Content Defender needs the runtime cache to be available. Please ensure that this cache **doesn't use** a \\TYPO3\\CMS\\Core\\Cache\\Backend\\NullBackend backend.

Community
---------

[](#community)

- Thanks to [b13](https://b13.com) that sponsored the maintenance of this extension with a sponsorship
- Thanks to [Wolfgang Wagner](https://wwagner.net) who sponsored the maintenance of this extension with a sponsorship
- Thanks to [WACON Internet GmbH](https://www.wacon.de) that sponsored the maintenance of this extension with a [GitHub sponsorship](https://github.com/sponsors/IchHabRecht)
- Thanks to [Daniel Goerz](https://twitter.com/ervaude) who wrote about content\_defender in his blog [useTYPO3](https://usetypo3.com/backend-layouts.html)
- Thanks to [Marcus Schwemer](https://twitter.com/MarcusSchwemer) who wrote about content\_defender in his blog [TYPO3worx](https://typo3worx.eu/2017/07/typo3-extension-roundup-q1-q2-2017/)

###  Health Score

58

—

FairBetter than 98% of packages

Maintenance38

Infrequent updates — may be unmaintained

Popularity58

Moderate usage in the ecosystem

Community36

Small or concentrated contributor base

Maturity85

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 91.3% 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 ~67 days

Recently: every ~82 days

Total

44

Last Release

418d ago

Major Versions

1.0.3 → 2.0.02017-05-11

2.2.4 → 3.0.02017-12-18

2.2.5 → 3.0.32018-02-01

2.x-dev → 3.0.42018-03-12

PHP version history (7 changes)3.0.10PHP &gt;= 5.5, &lt; 7.4

3.0.12PHP &gt;= 5.5, &lt; 7.5

3.1.0PHP &gt;= 7.0, &lt; 7.5

3.2.0PHP &gt;= 7.2, &lt; 7.5 || &gt;= 8.0, &lt; 8.1

3.2.2PHP &gt;= 7.2, &lt; 7.5 || ^8.0

3.x-devPHP ^7.4 || ^8.0

3.5.0PHP ^8.1

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1453345?v=4)[Nicole Hummel](/maintainers/IchHabRecht)[@IchHabRecht](https://github.com/IchHabRecht)

---

Top Contributors

[![IchHabRecht](https://avatars.githubusercontent.com/u/1453345?v=4)](https://github.com/IchHabRecht "IchHabRecht (294 commits)")[![kevin-appelt](https://avatars.githubusercontent.com/u/25666167?v=4)](https://github.com/kevin-appelt "kevin-appelt (13 commits)")[![revoltek-daniel](https://avatars.githubusercontent.com/u/5931272?v=4)](https://github.com/revoltek-daniel "revoltek-daniel (3 commits)")[![koehnlein](https://avatars.githubusercontent.com/u/16088567?v=4)](https://github.com/koehnlein "koehnlein (2 commits)")[![mbrodala](https://avatars.githubusercontent.com/u/5037116?v=4)](https://github.com/mbrodala "mbrodala (2 commits)")[![mschwemer](https://avatars.githubusercontent.com/u/103594?v=4)](https://github.com/mschwemer "mschwemer (1 commits)")[![spoonerWeb](https://avatars.githubusercontent.com/u/1793083?v=4)](https://github.com/spoonerWeb "spoonerWeb (1 commits)")[![DavidR93](https://avatars.githubusercontent.com/u/47664027?v=4)](https://github.com/DavidR93 "DavidR93 (1 commits)")[![SvenJuergens](https://avatars.githubusercontent.com/u/20923295?v=4)](https://github.com/SvenJuergens "SvenJuergens (1 commits)")[![goldi42](https://avatars.githubusercontent.com/u/113867?v=4)](https://github.com/goldi42 "goldi42 (1 commits)")[![jdreesen](https://avatars.githubusercontent.com/u/424602?v=4)](https://github.com/jdreesen "jdreesen (1 commits)")[![josefglatz](https://avatars.githubusercontent.com/u/2861556?v=4)](https://github.com/josefglatz "josefglatz (1 commits)")[![mkroener](https://avatars.githubusercontent.com/u/112870221?v=4)](https://github.com/mkroener "mkroener (1 commits)")

---

Tags

backendcontentlayoutrestrictiontypo3typo3-cmstypo3-extensioncontentbackendTYPO3 CMSrestrict

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/ichhabrecht-content-defender/health.svg)

```
[![Health](https://phpackages.com/badges/ichhabrecht-content-defender/health.svg)](https://phpackages.com/packages/ichhabrecht-content-defender)
```

###  Alternatives

[yoast-seo-for-typo3/yoast_seo

Yoast SEO for TYPO3

521.6M9](/packages/yoast-seo-for-typo3-yoast-seo)[in2code/in2publish_core

Content publishing extension to connect stage and production server

40135.8k](/packages/in2code-in2publish-core)[derhansen/sf_event_mgt

Configurable event management and registration extension based on ExtBase and Fluid

64313.9k6](/packages/derhansen-sf-event-mgt)[brotkrueml/schema

Embedding schema.org vocabulary - API and view helpers for schema.org markup

33584.6k13](/packages/brotkrueml-schema)[ehaerer/paste-reference

Paste reference instead of copy for content elements in TYPO3

19326.5k](/packages/ehaerer-paste-reference)[causal/extractor

This extension detects and extracts metadata (EXIF / IPTC / XMP / ...) from potentially thousand different file types (such as MS Word/Powerpoint/Excel documents, PDF and images) and bring them automatically and natively to TYPO3 when uploading assets. Works with built-in PHP functions but takes advantage of Apache Tika and other external tools for enhanced metadata extraction.

16244.5k](/packages/causal-extractor)

PHPackages © 2026

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