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.

Overview

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.

Comments
  • Added the ability to use typoscript to configure root file paths

    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 :)

    opened by CIMEOS 16
  • Do not provide file picker wizard for file templates (cause t3:// links are not supported)

    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?

    opened by bytesinmotion 10
  • 2.8.2 breaks t3:// templates

    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.

    bug 
    opened by Ceremony64 6
  • Upgrade Wizard Bug (DCE 2.9.1 - Typo3 11.15.16)

    Upgrade Wizard Bug (DCE 2.9.1 - Typo3 11.15.16)

    Hi, I wanted to inform you that a problem with the Upgrade Wizard persists in version 2.9.1 (with Typo3 Version 11.15.16). (I thought that maybe it is better to open a new issue for this)

    When clicking on "Run Upgrade Wizard" in the Install Tool (or BE) while DCE is installed the same 503 Error message appears as mentioned in https://github.com/a-r-m-i-n/dce/issues/28#issue-1324362856.

    When activating ['SYS']['exceptionalErrors'] => 12290, additional information is displayed:

    DceErrorScreenshot

    Originally posted by @uzerterter in https://github.com/a-r-m-i-n/dce/issues/28#issuecomment-1247077103

    bug 
    opened by uzerterter 5
  • Container > Detail stops working after first translated item.

    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

    bug 
    opened by Scopestyle 4
  • Add optional selector for nested elements migration in FileToFile wizard

    Add optional selector for nested elements migration in FileToFile wizard

    This allows to migrate nested elements using

    as a wrapper for nested file uploads elements.

    In my case FlexForm looked like this:

    <field index="settings.slides">
                        <el index="el">
                            <section index="1">
                                <itemType index="container_slides">
                                    <el>
                                        <field index="image">
                                            <value index="vDEF">_temp_14.jpg</value>
                                        </field>
    

    and original xpath selector was failing, looking for <field index="X">

    initial report on Slack

    opened by janslu 3
  • Upgrade Wizard fails

    Upgrade Wizard fails

    Versions

    • DCE version: 2.9.0
    • TYPO3 version: 11.5.13
    • PHP version: 7.4.27

    Describe the bug The upgrade wizard fails. No additional bug message, no PHP error.

    It's a local installation used for testing and development.

    Here is what was written to the /var/log/dce_update_wizard.log:

    Mon, 01 Aug 2022 14:38:46 +0200 [DEBUG] request="703737bdc7216" component="T3.Dce.UpdateWizards.FileToFalUpdateWizard": Executing update of T3\Dce\UpdateWizards\FileToFalUpdateWizard 
    Mon, 01 Aug 2022 14:38:46 +0200 [DEBUG] request="703737bdc7216" component="T3.Dce.UpdateWizards.FileToFalUpdateWizard": Checking for new folders to create in fileadmin 
    Mon, 01 Aug 2022 14:38:46 +0200 [DEBUG] request="703737bdc7216" component="T3.Dce.UpdateWizards.FileToFalUpdateWizard": 0 new folders created. 
    Mon, 01 Aug 2022 14:38:46 +0200 [DEBUG] request="703737bdc7216" component="T3.Dce.UpdateWizards.FileToFalUpdateWizard": Moving old media files 
    Mon, 01 Aug 2022 14:38:46 +0200 [DEBUG] request="703737bdc7216" component="T3.Dce.UpdateWizards.FileToFalUpdateWizard": All found media files moved. Start indexing new files in FAL 
    

    And some screenshots: Bildschirmfoto 2022-08-01 um 14 38 39

    Bildschirmfoto 2022-08-01 um 14 38 45 Bildschirmfoto 2022-08-01 um 14 39 15 bug 
    opened by slackero 3
  • backend search not working

    backend search not working

    • DCE version: 2.8.4
    • TYPO3 version: 11.5.13
    • PHP version: 8.0.11

    When dce is installed the spinning search wheel in typo3´s backend never stop spinning when trying to search in backend in the searchform top right billede

    bug 
    opened by martin-git-kristensen 3
  • Rendering problems on other language versions as the main language

    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

    bug 
    opened by wayheyha 3
  • Using DCE-content in content-element

    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.

    question 
    opened by derBoogie 3
  • Using standard image field for mapping causes error

    Using standard image field for mapping causes error

    Versions

    • DCE version: 2.9.3
    • TYPO3 version: 11.5.17
    • PHP version: 7.4

    Describe the bug I create a fresh TYPO3 11 installation with DCE, then I did:

    • create a new DCE
    • create an FAL field using the suggested configuration (https://github.com/a-r-m-i-n/dce/files/9921386/configuration.txt) and fill out other required fields
    • Map field value to TCA column -> existing field "image - Integer"
    • save the DCE
    • create a page and use the DCE you just created
    • insert an image and save
    • I get the error:

    503 Oops, an error occurred! An exception occurred while executing 'UPDATE tt_content SET image = ? WHERE uid = ?' with params ["NEW636280595631b052851626", 4]: Incorrect integer value: 'NEW636280595631b052851626' for column database.tt_content.image at row 1

    Now I can fix it for already created elements by clicking on "Update TCA mappings", but doing so for every new element isn't a good workflow :)

    bug 
    opened by TBschen 2
  • em_conf.php and composer.json have opposing settings

    em_conf.php and composer.json have opposing settings

    Versions

    • DCE version: 2.9.3
    • TYPO3 version: 11.5.19
    • PHP version: 8.1.12

    Describe the bug composer.json says:

       "require": {
            "php": ">=7.3",
    
    

    em_conf.php says:

        'constraints' => [
            'depends' => [
                'php' => '7.3.0-7.4.99',
    
    

    Both together do not make sense. It leads to have composer running on PHP 8.1 correctly, what is basically ok. But should faild for the em_conf-contraint and for bug #43 . Our experience is, that DCE runs well on PHP 8 except bug #43 So, please adapt em_conf:

        'constraints' => [
            'depends' => [
                'php' => '7.3.0-8.1.99',
    
    

    or even to php 8.2.

    Many thanks, Thomas

    bug 
    opened by subnoodle 1
  • Bug trows exception on FileToFalUpdateWizard

    Bug trows exception on FileToFalUpdateWizard

    Versions

    • DCE version: 2.9.3
    • TYPO3 version: 11.5.19
    • PHP version: 8.1.12

    Describe the bug https://github.com/a-r-m-i-n/dce/blob/master/Classes/UpdateWizards/FileToFalUpdateWizard.php On line a missing array key is check an old way:

     [ TYPO3\CMS\Core\Error\Exception ]
      Warning: Undefined array key "uid" in /html/typo3/web/typo3conf/ext/dce/Classes/UpdateWizards/FileToFalUpdateWizard.php
      line 100
    

    => Appears by running the upgrade-wizard (cli or backend) => Appears only in some constellations of content we did not find out exactly. But something like: a old non FAL-file-field is there, but not even used once: The read records a NULL / empty and leads to that error

    Please make the fix on line 100: old if ($affectedDceRow['uid']) new if (!isset($affectedDceRow['uid']))

    We assume it's related to PHP 8. Anyways, DCE runs on php 8 and has missleading settings in em_conf.php and composer.php There i write another issue.

    Please fix as soon as possible since we deploy that on many sites adapting the line manually on live systems.

    Thank you very much, Thomas

    bug 
    opened by subnoodle 0
  • Add FAQ entry: Where are content element definitions stored

    Add FAQ entry: Where are content element definitions stored

    When evaluating DCE as option for a new TYPO3 project, it is helpful to know where content elements defined by DCE are stored - in database or in file system (where they could be put into git).

    Please add a FAQ entry about this to https://docs.typo3.org/p/t3/dce/main/en-us/UserFaq/Index.html

    enhancement 
    opened by cweiske 1
  • DCE Container on pages with news detail page outside of the news record, does not work

    DCE Container on pages with news detail page outside of the news record, does not work

    The DCE Container feature checks for tx_news_pi1|news to be present. It does not respect if the news record being displayed contains the actual DCE container element.

    This makes it currently impossible to use DCE container on news detail pages, outside of the news detail page itself (e.g. in a sidebar column).

    Possible fix: At this point, when the news parameter is present (https://github.com/a-r-m-i-n/dce/blob/master/Classes/Components/DceContainer/ContainerFactory.php#L52), get an instance of the news record and check if the current element is part of news being displayed.

    bug 
    opened by a-r-m-i-n 0
  • [BUGFIX] Migrate all File to FAL in section fields

    [BUGFIX] Migrate all File to FAL in section fields

    Versions

    • DCE version: 2.9.3
    • TYPO3 version: 10.4.32
    • PHP version: 7.4

    If there is more than one file upload field in a section field, only the latest media file is migrated to FAL. This patch migrate all media files in the section.

    I didn't do a thorough test in conjunction with file upload fields outside of a section, so test the code again before merging.

    opened by gregordonsky 0
  • [FEATURE] Sorting and ordering DCEs by clicking on table headers

    [FEATURE] Sorting and ordering DCEs by clicking on table headers

    Hello Armin,

    When working with multiple DCEs (+50) on a website with many back-end layout, keeping it tidy is not an easy task. For that matter, we prefix DCEs names by the back-end layout that they will be used on.

    So we needed a sorting feature to help us see in a better form all of our DCEs by back-end layout. This is a first naive way of sorting. We could go deeper to sort other fields in a 2nd iteration.

    For now :

    • It sorts by name or uid and little carrets indicates the ordering.

    | name (asc = 1 click) | uid (desc = 2 clicks) | |---|---| |image|image|

    Thank you for the incredible work on DCE !

    enhancement 
    opened by lepetitglacon 2
Owner
Armin Vieweg
Webdeveloper PHP & JavaScript
Armin Vieweg
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

Philip 108 Jun 30, 2022
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

Gurukami 27 Oct 25, 2022
: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

null 594 Jan 1, 2023
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

Johannes 2.2k Jan 1, 2023
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

Mizanur Rahman 610 Jan 2, 2023
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

吴亲库里 370 Dec 29, 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

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

Cole Green 121 Jan 6, 2023
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

Mohammed Le Doze 5.6k Jan 3, 2023
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

Georg Ringer 6 Oct 24, 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

phpDocumentor 9k Dec 29, 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 1.0 LaraAdmin is a Open source CRM for quick-start Admin based applications with features like Advanced CRUD Generation, Schema Manager and

Dwij IT Solutions 1.5k Dec 29, 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

METRO Markets 14 May 23, 2022
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

REDAXO CMS c/o Yakamara Media GmbH & Co. KG 302 Jan 8, 2023
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

doubleleft 762 Dec 30, 2022
A Laravel package to help integrate Shopware PHP SDK much more easier

Shopware 6 Laravel SDK A Laravel package to help integrate Shopware PHP SDK much more easier Installation Install with Composer composer require sas/s

Shape & Shift 16 Nov 3, 2022
php String Objects Chains like length,forEach,filter,replace,repalcAll much More.... Module

php String Objects Chains like length,forEach,filter,replace,repalcAll much More.... Module

im__koli 1 Mar 29, 2022
GDPR compliant TYPO3 content elements which work great with PIWIK Consent Manager.

PIWIK Consent Manager TYPO3 extension PIWIK Consent Manager integration in order to make TYPO3 content elements GDPR compliant. You can click on the i

null 6 Aug 8, 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 f

Sleiman Sleiman 511 Dec 31, 2022