Best FlexForm based content elements since 2012. With TCA mapping feature, simple backend view and much more features which makes it super easy to create own content element types.

Last update: Apr 8, 2022

DCE-Extension for TYPO3

What is DCE?

DCE is an extension for TYPO3 CMS, which creates easily and fast dynamic content elements. Based on Extbase, Fluid and over 8 years of experience.

Screenshots

DCE General Configuration

Inline Templating in DCE

Installation

You can install DCE in TYPO3 CMS using the TER or use composer to fetch DCE from packagist:

composer req t3/dce:"^2.7"

Documentation

The full documentation can be found here: https://docs.typo3.org/p/t3/dce/master/en-us/

How to contribute?

Just fork this repository and create a pull request to the master branch. Please also describe why you've submitted your patch. If you have any questions feel free to contact me.

In case you can't provide code but want to support DCE anyway, here is my PayPal donation link.

Thanks to all contributors and sponsors!

DDEV Environment

DCE ships a DDEV configuration, which allows you to test DCE in any TYPO3 version:

  • 9.5
  • 10.4
  • 11.x

It uses Apache2 with php-fpm (7.4) enabled.

Requirements

  • Docker
  • Docker Compose
  • DDEV

Setup

  1. Start the DDEV containers using
    ddev start
    
  2. Next execute one of the following commands
    ddev install-v9
    ddev install-v10
    ddev install-v11
    ddev install-all
    
    Note: You can also skip the initial ddev start and enter one of the install commands first
  3. On https://dce.ddev.site/ you get a brief overview of the environments

When you ddev stop your containers, all files will be remain in Docker volume. To clean up use:

docker volume rm dce-v9-data
docker volume rm dce-v10-data
docker volume rm dce-v11-data

Scripts

Besides the installation scripts, DCE also provides host commands in DDEV, to render and preview the documentation.

Render documentation:

ddev docs

Preview rendered documentation:

ddev launch-docs

It only opens the browser with the right location. Please render the documentation first.

GitHub

https://github.com/a-r-m-i-n/dce
Comments
  • 1. Do not provide file picker wizard for file templates (cause t3:// links are not supported)

    I have a problem with DCE and TYPO3 v11. Maybe it's a misconfiguration of the new v11?

    I'm developing a new site locally under the subdirectory /kohlern

    Now when I select a file as template via popup in the fileadmin folder I first see it as "t3://file?uid=4" After saving it get's translated into /kohlern/fileadmin/template/dce/headerSlider.html instead of fileadmin/template/dce/headerSlider.html and it doesn't work in the frontend.

    Is this a problem with v11? Do I have to change something in the configuration so it doesn't get mismatched because of the siteroot?

    Reviewed by bytesinmotion at 2022-01-26 15:10
  • 2. 2.8.2 breaks t3:// templates

    Versions

    • DCE version: 2.8.2
    • TYPO3 version: 10.4.26
    • PHP version: 7.4

    With 2.8.2 "t3://" paths for templates such as "t3://file?uid=1234" stopped working. I suspect file: paths have the same issue, but I have not tested it yet.

    I don't think this is intended behavior, as the changelog states that this file reference feature is now only marked as deprecated. It is not yet a breaking change, where support for it is actually dropped.

    Reviewed by Ceremony64 at 2022-03-29 16:02
  • 3. Container > Detail stops working after first translated item.

    Hi @a-r-m-i-n , I'm asked to repost the bug report here, in Reference to the discussion in the Slack channel yesterday. Please let me know if you need any more info to reproduce this error.

    Current setup:

    • Enable DCE container = True
    • Hide other container items, when detail page is triggered = True
    • Detailseite = True
    • Slugs and Detail all setup according to DCE documentation

    Result:

    • All works in Default language
    • Without Slugs the detail page works as expected
    • First element in English works with Slugs enabled
    • In English, after the first DCE, the detail stops working and shows all items in list view.

    This is somehow related to the slugs, without the clean URLs the page renders normally.

    Kind regards,

    Erik

    Reviewed by Scopestyle at 2022-01-20 08:25
  • 4. Rendering problems on other language versions as the main language

    Versions

    • DCE version: 2.8.1
    • TYPO3 version: 10.4.26
    • PHP version: 7.4

    Describe the bug After the upgrade from 2.7.7 to 2.8.1 i noticed something: If you have DCE-Elements on a page then every dce element on the page is rendered as the first dce element on the page but only on different languages as the main language.

    After a downgrade from 2.8.1 back to 2.7.7 everything was alright again.

    I could reproduce it on two different TYPO3 installations.

    Cheers, Chris

    Reviewed by wayheyha at 2022-03-18 13:50
  • 5. Using DCE-content in content-element "insert records" shows all DCE-content elements on the selected page

    I would like to show a subset of DCE-contents from another page on the home page. Usually I use the content element "Insert record" for this purpose, but when I select DCE-content elements, It always shows all DCE-content elements from the selected page. It does not matter which DCE element(s) I select.

    Reviewed by derBoogie at 2022-03-07 12:52
  • 6. Container multi language (free mode) issue in 2.8.1

    Scenario: -Simple DCE with wrapping container ("Enable DCE container" = true and "Enable detail page" -> false) -everything works fine on default language -> sys_language_id = 0 -on sys_language_id = 1, the dce container has the right number of elements inside, but they are all the same (equal to the first element) -Version 2.8.0 does not have this issue -> I found lines 182 - 186 in Classes\Components\DceContainer\ContainerFactory.php to be guilty of this behaviour. Those lines are not present in 2.8.0, i guess those lines fix another issue but cause this new one.

    Note: I only tested this with "Free mode" -> not with the other modes. Also tested only TYPO3 versions 10.4.23 and 10.4.25

    Best regards Sascha

    Reviewed by e3debie at 2022-02-23 21:08
  • 7. Uncaught TYPO3 Exception in Classes/Components/ContentElementGenerator/OutputPlugin.php

    When running typo3/sysext/core/bin/typo3 scheduler:run from a cronjob I got the following error:

    Uncaught TYPO3 Exception syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting '-' or identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) thrown in file [...]/typo3conf/ext/dce/Classes/Components/ContentElementGenerator/OutputPlugin.php in line 54

    I also got this error when testing the code with an online php parser.

    Systeminformation: TYPO3 10.4.24 classic installation (non-composer) PHP 7.2.23 dce 2.8.1 and latest github version

    Reviewed by maslme at 2022-02-17 09:11
  • 8. [BUGFIX] TCA output flexform

    TYPO3 CMS 10.4.23 / PHP 7.4.25 default flexform $GLOBALS['TCA']['tt_content']['columns']['pi_flexform']['config']['ds']['default'] was shown instead of those defined in DCE

    Reviewed by S3b0 at 2022-02-07 09:54
  • 9. Order of a section may get shuffled when deleting an section entry

    There is some weird behavior when deleting an element from a longer section, as in it sometimes reorders the section elements somewhat randomly, tho there does seem to be some kind of pattern to it.

    My simple DCE element: image image

    Now I create the content element based on the DCE element and add 20 section entries numbered 1 to 20 (left backend, right frontend): imageimage

    So far, so good. However, when I now delete the 5th entry (or basically any other) and save, the the order gets shuffled (left backend, right frontend): imageimage

    Also, this does not always occur and I couldn't reliable replicate the issue with fewer section entries like 10 or so, but it happened every time when starting with 20 section entries tho.

    I am running DCE v2.8.4 and Typo3 v10.4.27

    Reviewed by Ceremony64 at 2022-05-05 08:11
  • 10. Prevent undefined array key warning (PHP 8) when dce is saved without modifying flexform settings

    When a dce is saved without modifying flexform settings, an undefined array key warning appears due to the case not being handled that this field was not modified:

    image

    Reviewed by creationell at 2022-04-28 08:54
  • 11. dceOnPageUid

    I have realized a background slideshow with the dce extension. But as there is the same background on each page I handle it over a folder in the page tree which gets implemented into the layout.

    Normaly I would only load the js ans css files if a dce is used on the page using the [dceOnCurrentPage("42")] condition. But as the dce is not on the page but in the folder it does not recognize it. A condition like dceOnPageUid would be prefect to. Do you have a solution for my problem?

    Reviewed by withAdaam at 2022-03-16 20:03
  • 12. Undefined array key "_LOCALIZED_UID" in FalViewHelper

    Versions

    • DCE version: 2.8.4
    • TYPO3 version: 11.5.10
    • PHP version: 8.1

    Describe the bug

    PHP Warning: Undefined array key "_LOCALIZED_UID" in /public/typo3conf/ext/dce/Classes/ViewHelpers/FalViewHelper.php line 64

    Looked into the code, still not fixed there. I think there should be multiple array key access guards added there anyway.

    image

    Reviewed by sbuerk at 2022-05-25 10:28
  • 13. Problem with config field type: file upload

    Versions

    • DCE version: 2.8.4
    • TYPO3 version: 10.4.28
    • PHP version: 7.4

    Describe the bug when i add field type : upload file in my custom dce, and i add content type my custom dce, i have error like

    TCA internal_type of field "settings.myfield" in table tt_content must be set to "db" or "folder".

    Screenshot_29 Screenshot_30 Screenshot_31

    I checked also with :

    • DCE version: 2.6.2
    • TYPO3 version: 10.4.21
    • PHP version: 7.2 and ï've had the same error
    Reviewed by cwplus at 2022-05-24 08:42
  • 14. Undefined array key warnings

    Versions

    • DCE version: 2.8.3
    • TYPO3 version: 11.5.9
    • PHP version: 8.0.18

    Describe the bug After upgrading to PHP 8.0 DCE throws the following warnings. Currently unable to test if it's related to development context or anything but the only thing changed was the php version afaik.

    Core: Error handler (FE): PHP Warning: Undefined array key "dce_enable_autotranslation" in /var/www/html/public/typo3conf/ext/dce/Classes/Domain/Repository/DceRepository.php line 536
    -- | --
    Core: Error handler (FE): PHP Warning: Undefined array key "dce_enable_autotranslation" in /var/www/html/public/typo3conf/ext/dce/Classes/Domain/Repository/DceRepository.php line 527
    -- | --
    Core: Error handler (FE): PHP Warning: Undefined array key "dce_ignore_enablefields" in /var/www/html/public/typo3conf/ext/dce/Classes/Domain/Repository/DceRepository.php line 510
    
    Reviewed by datWeazel at 2022-04-29 09:49
  • 15. Added the ability to use typoscript to configure root file paths

    Hi !

    We need to be able to specify more than 1 root path so I made some changes to the StandaloneViewFactory class.

    The edit is fully compatible with the fields in the DCE configuration (template_layout_root_path & template_partial_root_path).

    Hope you'll approuve the changes, and thank you for this extension :)

    Reviewed by CIMEOS at 2022-03-30 09:13
CRUDlex is an easy to use CRUD generator for Symfony 4 and Silex 2 which is great for auto generated admin pages
CRUDlex is an easy to use CRUD generator for Symfony 4 and Silex 2 which is great for auto generated admin pages

CRUDlex CRUDlex is an easy to use, well documented and tested CRUD generator for Symfony 4 and Silex 2. It is very useful to generate admin pages for

Nov 19, 2021
Simple & secure helper to manipulate arrays in various ways

Array helper Simple & secure helper to manipulate arrays in various ways, especially for multidimensional arrays Forget about checking for existing ke

Apr 22, 2020
:lipstick: Scalable and durable all-purpose data import library for publishing APIs and SDKs.
:lipstick: Scalable and durable all-purpose data import library for publishing APIs and SDKs.

Porter Scalable and durable data imports for publishing and consuming APIs Porter is the all-purpose PHP data importer. She fetches data from anywhere

May 26, 2022
Library for (de-)serializing data of any complexity (supports JSON, and XML)

jms/serializer Introduction This library allows you to (de-)serialize data of any complexity. Currently, it supports XML and JSON. It also provides yo

May 19, 2022
A repository with implementations of different data structures and algorithms using PHP

PHP Data Structures and Algorithms Data structure and Algorithm is always important for any programming language. PHP, being one of the most popular l

May 17, 2022
Leetcode for PHP, five questions a week and weekends are updated irregularly
Leetcode for PHP,  five questions a week and weekends are updated irregularly

✏️ Leetcode for PHP why do you have to sleep for a long time ,and naturally sleep after death 联系 说明 由于目前工作主要是 golang,我又新起了一个LeetCode-Go-Week项目,- Leetc

May 26, 2022
True asynchronous PHP I/O and HTTP without frameworks, extensions, or annoying code. Uses the accepted Fibers RFC to be implemented into PHP 8.1
True asynchronous PHP I/O and HTTP without frameworks, extensions, or annoying code. Uses the accepted Fibers RFC to be implemented into PHP 8.1

PHP Fibers - Async Examples Without External Dependencies True asynchronous PHP I/O and HTTP without frameworks, extensions, or annoying code behemoth

May 13, 2022
World countries in JSON, CSV, XML and Yaml. Any help is welcome!

World countries in JSON, CSV, XML and YAML. Countries data This repository contains a list of world countries, as defined by ISO Standard 3166-1, in J

May 26, 2022
This extensions makes it possible to modify the TCA of container children elements

This extensions makes it possible to modify the TCA of container children elements

Apr 12, 2022
TypeResolver - A PSR-5 based resolver of Class names, Types and Structural Element Names

TypeResolver and FqsenResolver The specification on types in DocBlocks (PSR-5) describes various keywords and special constructs but also how to stati

May 26, 2022
LaraAdmin is a Open source Laravel Admin Panel / CMS which can be used as Admin Backend, Data Management Tool or CRM boilerplate for Laravel with features like Advanced CRUD Generation, Module Manager, Backups and many more.
LaraAdmin is a Open source Laravel Admin Panel / CMS which can be used as Admin Backend, Data Management Tool or CRM boilerplate for Laravel with features like Advanced CRUD Generation, Module Manager, Backups and many more.

LaraAdmin 1.0 LaraAdmin is a Open source CRM for quick-start Admin based applications with features like Advanced CRUD Generation, Schema Manager and

May 24, 2022
A Symfony Feature Flag Bundle which easily allows you to configure and use your favorite feature flag provider.

Metro Markets FF Metro Markets FF is a Feature Flag Symfony Bundle. It easily allows you to configure and use your favorite feature flag provider. Ins

Jan 27, 2022
SubRocks is a faithful recreation & reverse engineering effort for 2012 YouTube
SubRocks is a faithful recreation & reverse engineering effort for 2012 YouTube

subrocks-2012 a 2012 rewrite for subrocks SubRocks is a faithful recreation & reverse engineering effort for 2012 YouTube. You can visit the site at h

Jan 15, 2022
A RESTful and extendable Backend as a Service that provides instant backend to develop sites and apps faster, with dead-simple integration for JavaScript, iOS, Android and more.

Welcome to hook ![Gitter](https://badges.gitter.im/Join Chat.svg) hook is a RESTful, extendable Backend as a Service that provides instant backend to

Mar 6, 2022
Plastic is an Elasticsearch ODM and mapper for Laravel. It renders the developer experience more enjoyable while using Elasticsearch, by providing a fluent syntax for mapping, querying, and storing eloquent models.
Plastic is an Elasticsearch ODM and mapper for Laravel. It renders the developer experience more enjoyable while using Elasticsearch, by providing a fluent syntax for mapping, querying, and storing eloquent models.

Plastic is an Elasticsearch ODM and mapper for Laravel. It renders the developer experience more enjoyable while using Elasticsearch, by providing a f

May 23, 2022
REDAXO, a PHP-based CMS since 2004. Both simple and flexible.
REDAXO, a PHP-based CMS since 2004. Both simple and flexible.

?? Deutsch Content Management since 2004. Both simple and flexible. REDAXO provides you an easy-to-learn website framework. It lets you create content

May 6, 2022
Unmaintained: Laravel Searchy makes user driven searching easy with fuzzy search, basic string matching and more to come!

!! UNMAINTAINED !! This package is no longer maintained Please see Issue #117 Here are some links to alternatives that you may be able to use (I do no

May 2, 2022
View themes is a simple package to provide themed view support to Laravel.

Laravel View Themes View themes is a simple package to provide themed view support to Laravel. Installation Add alexwhitman/view-themes to the require

Dec 19, 2020