Giter Club home page Giter Club logo

mask_export's Introduction

TYPO3 Extension mask_export

Latest Stable Version Build Status StyleCI

Want to create new content elements the easy way?

Use mask and its drag & drop wizard to create content elements the easy way.

Use mask_export to export the content elements into an own extension.

Why

A content element needs some TCA information, TypoScript and database configuration and template files. Actually there is no need to depend on any third party extension when dealing with content elements.

But you don't want to deal with different information in different files and folders. You want to be able to concentrate on what is necessary for the user, not how it has to be implemented in your TYPO3 CMS.

By using mask and mask_export you can do exactly this! Simply create your own content elements by using a drag & drop wizard. Add fields, repeating items, nested content elements within minutes.

Why not

Mask offers an easy way to create content elements but has some disadvantage when you need to take care about performance. Especially the frontend rendering can take at lot of time for uncached pages. Instead of relying on TYPO3 CMS core rendering, all elements are rendered by an own Extbase Controller. As this was needed to support former version of TYPO3 CMS, it was deprecated with the introduction of fluid_styled_content and the concepts of DataProcessors in TYPO 7 LTS.

This is what mask_export is developed for. It takes the content element information from the mask configuration and generates the needed code to get those elements to work with pure TYPO3 CMS core functionality out of the box. It bundles all necessary information into an own extension that can be installed and used in every other TYPO3 CMS system.

Installation

Simply install mask and mask_export with Composer or the Extension Manager.

composer require ichhabrecht/mask-export

Usage

  • use the mask wizard to configure own content elements
  • change to tab "Code Export"
  • if you like change the extension key, the default one is my_mask_export
  • either install or download your extension

Best practise

It is recommended to not touch the generated export extension. Instead you should add necessary changes and your own templates into a site package.

This ensures you can edit your content elements within the mask wizard (add further content elements, change settings) and still be able to use the new extension version in your existing system.

You can find some common configuration in the my_maskexport_sitepackage example site package.

Furthermore you can refer to the slides CCE (Custom Content Elements) - Best Practice for additional information.

Community

mask_export's People

Contributors

dogawaf avatar georgringer avatar helhum avatar ichhabrecht avatar josefglatz avatar kevin-appelt avatar nhovratov avatar noelclick avatar simonschaufi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mask_export's Issues

inconsistent export code after deleting content elements

mask.zip
after deleting some content elements in mask, i want to export a new content element:

there i see some very strange code with already deleted fields.

e.G.:
ext_tables:

<?php
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::allowTableOnStandardPages('teaser_undefined');

in this table elements which are already deletet reoccur:

ext_tables.sql:

CREATE TABLE teaser_undefined (
...
    teaser_link tinytext,
    teaser_class tinytext,
    teaser_title tinytext,

these field do not exit any longer, but they are still in the exported code.

Even if i delete all content elements in mask.

TYPO3 7.6.14
mask 2.1.1
mask_export 0.4.2

Render Section image fails

Hello.

Created a simple CE with repeating elements. Text and one/more image/s.
the Mask elements works fine in FE and BE.
exporting this element does not work:
the fluid template in BACKEND does NOT render the Image

fluid:

<f:for each="{processedRow.tx_testce_teaserboxen}" as="item">
  <div>
    <f:for each="{item.tx_testce_image}" as="file">
        <f:image image="{file}" alt="{file.alternative}" title="{file.title}" width="200" /><br />
        {file.description} / {file.identifier}<br />
    </f:for>
   <f:format.stripTags><f:format.crop maxCharacters="250">{item.tx_contenttmd_bodytext}</f:format.crop></f:format.stripTags>
</div>

This fails with a crash:

The argument "image" was registered with type "object", but is of type "array" in view helper "TYPO3\CMS\Fluid\ViewHelpers\ImageViewHelper"

Removing the <f:for each="{item.tx_testce_image}" as="file">...</f:for> works.

What ist the diefference of the MASK and the exported version?

Thank you for your help and/or fixing this issue.

using: T3 V8.7 and the latest export_mask from GIT

Christian

localisation: translation of a content element also fails

when translating a content element, which has a only a content field (where another content element is nested e,g, with a normal field, e.g. string), i get NO output in the fe in the new language.

in be everything is ok.

if i reproduce this with the original mask extension it works.

Language: All not displayed

A mask_export content element with Language=All (sys_language_uid=-1) is not displayed.
Not sure if this is a solution or a workaround:
In Configuration/TypoScript/setup.txt add language to dataProcessing:

dataProcessing.10 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
dataProcessing.10 {
    if.isTrue.field = tx_mask_content_1
    table = tt_content
    pidInList.field = pid
    where = tx_mask_content_1_parent=###uid### AND deleted=0 AND hidden=0 AND colPos='999'  AND sys_language_uid IN (###language###, -1)
    orderBy = sorting
    markers {
        uid.field = uid
        language.field = sys_language_uid
    }
    languageField = 0
    as = data_tx_mask_content_1
}

This was tested in a environment with only one language (sys_languag_uid=0).
Issue is in both 7.6 and 8.7

Sorting of IRRE-elements

Backend sorting is ignored in frontend output of IRRE-elements.
Manually adding "orderBy = sorting" in TypoScript configuration of content elements (in "dataProcessing"-section) fixes this. This should be added automatically when exporting mask-elements via mask_export.

Colpos 999 for nested content isn't allowed

I create a mask element with an option "Content" and link to another Mask Element (IRRE functionality) And i have three columns at the backend layout, too.

You can see it here: https://picload.org/image/rdwopggo/mask.png

After the export i deinstall mask and install mask_example extension with all mask elements and get this output: https://picload.org/image/rdwopgro/mask2.png

Hint: Extensions mask adds the colPos 999 via itemsProcFunc: mask\Classes\ItemsProcFuncs\ColPosList.php

Fields of foreign IRRE table missing in ext_tables.sql on export (0.3.2)

Hey,

it seems that there's a bug when generating the export.

It occurs when there's at least two different content types. Each one of them has one IRRE field with each a different name but the underlying foreign tables share some fields with the same names, e.g. 'link' or 'image':

mask-profile_list_items

mask-teaser_list_items

The export then generates all fields for that IRRE-table of one of those new content types but leaves those with the same names out for the other table:

CREATE TABLE tt_content (
    tx_mycustomelements_profile_list_items int(11) unsigned DEFAULT '0' NOT NULL,
    tx_mycustomelements_teaser_list_items int(11) unsigned DEFAULT '0' NOT NULL
);
CREATE TABLE tx_mycustomelements_profile_list_items (
    uid int(11) NOT NULL auto_increment,
    pid int(11) DEFAULT '0' NOT NULL,
    parentid int(11) DEFAULT '0' NOT NULL,
    parenttable varchar(255) DEFAULT '' NOT NULL,
    sorting int(11) unsigned DEFAULT '0' NOT NULL,
    t3ver_oid int(11) unsigned DEFAULT '0' NOT NULL,
    t3ver_id int(11) DEFAULT '0' NOT NULL,
    t3ver_wsid int(11) DEFAULT '0' NOT NULL,
    t3ver_label varchar(255) DEFAULT '' NOT NULL,
    t3ver_state tinyint(4) DEFAULT '0' NOT NULL,
    t3ver_stage int(11) DEFAULT '0' NOT NULL,
    t3ver_count int(11) DEFAULT '0' NOT NULL,
    t3ver_tstamp int(11) DEFAULT '0' NOT NULL,
    t3ver_move_id int(11) DEFAULT '0' NOT NULL,
    tstamp int(11) unsigned DEFAULT '0' NOT NULL,
    crdate int(11) unsigned DEFAULT '0' NOT NULL,
    cruser_id int(11) unsigned DEFAULT '0' NOT NULL,
    deleted tinyint(4) unsigned DEFAULT '0' NOT NULL,
    hidden tinyint(4) unsigned DEFAULT '0' NOT NULL,
    starttime tinyint(4) unsigned DEFAULT '0' NOT NULL,
    endtime tinyint(4) unsigned DEFAULT '0' NOT NULL,
    sys_language_uid int(11) DEFAULT '0' NOT NULL,
    l10n_parent int(11) unsigned DEFAULT '0' NOT NULL,
    l10n_diffsource mediumblob,
    tx_mycustomelements_name tinytext,
    tx_mycustomelements_description tinytext,
    tx_mycustomelements_link tinytext,
    tx_mycustomelements_image int(11) unsigned DEFAULT '0' NOT NULL,
    PRIMARY KEY (uid),
    KEY parent (pid),
    KEY t3ver_oid (t3ver_oid,t3ver_wsid),
    KEY language (l10n_parent,sys_language_uid)
);
CREATE TABLE tx_mycustomelements_teaser_list_items (
    uid int(11) NOT NULL auto_increment,
    pid int(11) DEFAULT '0' NOT NULL,
    parentid int(11) DEFAULT '0' NOT NULL,
    parenttable varchar(255) DEFAULT '' NOT NULL,
    sorting int(11) unsigned DEFAULT '0' NOT NULL,
    t3ver_oid int(11) unsigned DEFAULT '0' NOT NULL,
    t3ver_id int(11) DEFAULT '0' NOT NULL,
    t3ver_wsid int(11) DEFAULT '0' NOT NULL,
    t3ver_label varchar(255) DEFAULT '' NOT NULL,
    t3ver_state tinyint(4) DEFAULT '0' NOT NULL,
    t3ver_stage int(11) DEFAULT '0' NOT NULL,
    t3ver_count int(11) DEFAULT '0' NOT NULL,
    t3ver_tstamp int(11) DEFAULT '0' NOT NULL,
    t3ver_move_id int(11) DEFAULT '0' NOT NULL,
    tstamp int(11) unsigned DEFAULT '0' NOT NULL,
    crdate int(11) unsigned DEFAULT '0' NOT NULL,
    cruser_id int(11) unsigned DEFAULT '0' NOT NULL,
    deleted tinyint(4) unsigned DEFAULT '0' NOT NULL,
    hidden tinyint(4) unsigned DEFAULT '0' NOT NULL,
    starttime tinyint(4) unsigned DEFAULT '0' NOT NULL,
    endtime tinyint(4) unsigned DEFAULT '0' NOT NULL,
    sys_language_uid int(11) DEFAULT '0' NOT NULL,
    l10n_parent int(11) unsigned DEFAULT '0' NOT NULL,
    l10n_diffsource mediumblob,
    tx_mycustomelements_title tinytext,
    tx_mycustomelements_teaser text,
    tx_mycustomelements_linktext tinytext,
    PRIMARY KEY (uid),
    KEY parent (pid),
    KEY t3ver_oid (t3ver_oid,t3ver_wsid),
    KEY language (l10n_parent,sys_language_uid)
);

See, how the expected tx_mycustomelements_link field is missing from the CREATE TABLE block for the tx_mycustomelements_teaser_list_items table?

I'm using TYPO3 7.6.11, EXT:mask 2.1.1 and EXT:mask_export 0.3.2.

Thanks and regards,
Chris

the export ignores backend preview templates

I created several backend preview tempaltes for my mask elements. When I export the mask elements, the export ignores the backend templates. Do I need to consider something, that the templates are included in the export?

FR: Provide fields for Template-/Partial-/LayoutPaths

Hi Nicole,

it would be great to have three more fields in your code export for defining the Template- Partial- and LayoutPaths. For now I have to set them manually for each generated and exported content element. When I don't set them, the Layouts would be searched in a wrong path below ext_folder/Resources/Private/Templates/TtContent/Templates

my workaround is this:

tt_content.websitetemplate_calltoaction = FLUIDTEMPLATE
tt_content.websitetemplate_calltoaction {
	layoutRootPath = {$styles.templates.layoutRootPath}
	partialRootPath = {$styles.templates.partialRootPath}
	templateRootPath = {$styles.templates.templateRootPath}
	file = EXT:website_template/Resources/Private/Templates/TtContent/calltoaction.html
}

with having defined {$styles.templates.layoutRootPath} in my constants. But I have to put those three lines manually into each Content element.

Well, would be great, to have this feature implemented - or any hint what I'm possibly doing wrong?

#1: PHP Warning: array_intersect_key():

I installed mask in TYPO3 7.6.9 (clean introduction package), made 1 CE with mask. Then i installed mask_export (last version from GIT). When i click on Code Export - mask_example - Save then nothing happens. When i click on download i get a corrupt zip-archive with 0 bytes in it. After activating developer mode i got this Error:
#1: PHP Warning: array_intersect_key(): Argument #2 is not an array in /Volumes/DATEN/sites/typo3_76/typo3conf/ext/mask_export/Classes/Aggregate/AbstractOverridesAggregate.php line 49 (More information)

TYPO3\CMS\Core\Error\Exception thrown in file
/Volumes/DATEN/src/typo3_src-7.6.last/typo3/sysext/core/Classes/Error/ErrorHandler.php in line 111.

24 TYPO3\CMS\Core\Error\ErrorHandler::handleError(2, "array_intersect_key(): Argument #2 is not an array", "/Volumes/DATEN/sites/typo3_76/typo3conf/ext/mask_e…t/Classes/Aggregate/AbstractOverridesAggregate.php", 49, array)
23 array_intersect_key(array, NULL)

/Volumes/DATEN/sites/typo3_76/typo3conf/ext/mask_export/Classes/Aggregate/AbstractOverridesAggregate.php:
00047: {
00048: $newTableFields = array_intersect_key($tableConfiguration['columns'],
00049: $this->maskConfiguration[$this->table]['tca']);
00050:
00051: if (empty($newTableFields)) {

22 CPSIT\MaskExport\Aggregate\AbstractOverridesAggregate::addTableColumns(array)

/Volumes/DATEN/sites/typo3_76/typo3conf/ext/mask_export/Classes/Aggregate/TtContentOverridesAggregate.php:
00049:
00050: $tableConfiguration = $GLOBALS['TCA'][$this->table];
00051: $this->addTableColumns($tableConfiguration);
00052: $this->addTableTypes($tableConfiguration);
00053: }

21 CPSIT\MaskExport\Aggregate\TtContentOverridesAggregate::process()

/Volumes/DATEN/sites/typo3_76/typo3conf/ext/mask_export/Classes/Aggregate/AbstractAggregate.php:
00052: {
00053: $this->maskConfiguration = $maskConfiguration;
00054: $this->process();
00055: }
00056:

20 CPSIT\MaskExport\Aggregate\AbstractAggregate::__construct(array)

/Volumes/DATEN/src/typo3_src-7.6.last/typo3/sysext/core/Classes/Utility/GeneralUtility.php:
04534: break;
04535: case 2:
04536: $instance = new $className($arguments[1]);
04537: break;
04538: case 3:

Put labels of select items into locallang file

While all field labels are correctly written to locallang_db.xlf the labels of select items are hardcoded into TCA/Overrides/tt_content.php. For consistency and being better translatable they should be included in the locallang file as well.

Error: Class 'MASKCONT\Maskcont\Form\FormDataProvider\TcaColPosItem' not found

TYPO3 8.7.1 or 8.7.4
Mask Export 0.9.1

Question 1:
When exporting a mask content element with a CONTENT Element, there is a class added:

typo3conf\ext\maskcont\Classes\Form\FormDataProvider\TcaColPosItem.php

in ext_localconf.php the following lines are added:

$GLOBALS['TYPO3_CONF_VARS']['SYS']['formEngine']['formDataGroup']['tcaDatabaseRecord'][\MASKCONT\Maskcont\Form\FormDataProvider\TcaColPosItem::class] = [
    'depends' => [
        \TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseRowDefaultValues::class,
    ],
    'before' => [
        \TYPO3\CMS\Backend\Form\FormDataProvider\TcaSelectItems::class,
    ],
];

For me this doesn't work.
I get the error see screen below.

Question 2:
Why is this class only added when i use a CONTENT Element? In former version of mask_export, this class, which is necessary for the backend preview i guess, was also added when using a REPEATED Element.
btw: Where is the hook gone?
mask_export

prepare database changes for exported extension

After exporting the CE definitions as own extension and installing this extension you can not use any CEs which are created with the pure mask definition as there are a lot of places where the extension name is used. In mask you have mask_* or tx_mask_*, in the export you have your (unified) extension key.

this occurs for:

  • new tables
  • new fields (in tt_content and new tables)
  • entries in the field tt_content.CType

it would be nice to have a prepared update query which can change existing mask content to the new extension content.

Content Element Wizard TYPE: [ INVALID VALUE ]

Today i tested the mask_export extension and found a bug after i installed my generated template extension.

In the content element wizard my new content element is available, but if i select it i receive the following error: TYPE: [ INVALID VALUE ("maskexample_example_table") ].

I’ve installed mask 2.1.1 and mask_export 0.3.1.

I advance i will sent you a zip file with my generated extension and the mask.json file via Slack, maybe this will help you.

Error Download

PHP Warning: ZipArchive::open(): Empty string as source in /Applications/XAMPP/xamppfiles/htdocs/list-engeneering/typo3conf/ext/mask_export/Classes/Controller/ExportController.php line 104

mask.json.zip

nothing happens when importing mask_example

hi,

TYPO3 7.6.10
mask 2.0.1

when exporting a configuration named mask_example and installing it in a new project with mask already installed (both static templates mask and mask_example included), nothing happens.

i do not find my fce's or anything in the new project

wrong sql for start- and endtime in foreign IRRE tables

Hi Nicole,

there seems to be a bug with foreign IRRE table start- and endtime. For both fields a tinyint(4) is used. It should be int(11).

In mask itself it works but not in the exported extension.
I used TYPO§ 8.7.1, mask 3.0.1, mask_export 0.9.0

Example CE configuration:

{
    "tt_content": {
        "elements": {
            "workshops": {
                "label": "Workshops",
                "key": "workshops",
                "shortLabel": "Workshops",
                "description": "Informationen zu einem Workshop",
                "icon": "fa-briefcase",
                "color": "#000000",
                "columns": [
                    "header",
                    "header_layout",
                    "tx_mask_workshop"
                ],
                "labels": [
                    "",
                    "",
                    "Workshop"
                ],
                "options": {
                    "4": "rte"
                }
            }
        },
        "sql": {
            "tx_mask_workshop": {
                "tt_content": {
                    "tx_mask_workshop": "int(11) unsigned DEFAULT '0' NOT NULL"
                }
            }
        },
        "tca": {
            "tx_mask_workshop": {
                "config": {
                    "type": "inline",
                    "foreign_table": "--inlinetable--",
                    "foreign_field": "parentid",
                    "foreign_table_field": "parenttable",
                    "foreign_sortby": "sorting",
                    "appearance": {
                        "enabledControls": {
                            "dragdrop": "1"
                        },
                        "collapseAll": "1",
                        "expandSingle": "1",
                        "newRecordLinkTitle": "Neuen Workshop anlegen",
                        "levelLinksPosition": "both",
                        "useSortable": "1"
                    },
                    "minitems": "",
                    "maxitems": ""
                },
                "exclude": "1",
                "inlineLabel": "Workshop",
                "inlineIcon": "Pfad_zu_Icon_das_fuer_IRRE_verwendet_wird ",
                "l10n_mode": "copy",
                "key": "workshop"
            }
        }
    },
    "sys_file_reference": {
        "sql": {
            "tx_mask_bild": {
                "sys_file_reference": {
                    "tx_mask_bild": "int(11) unsigned DEFAULT '0' NOT NULL"
                }
            }
        }
    },
    "tx_mask_workshop": {
        "sql": {
            "tx_mask_titel": {
                "tx_mask_workshop": {
                    "tx_mask_titel": "tinytext"
                }
            },
            "tx_mask_beschreibung": {
                "tx_mask_workshop": {
                    "tx_mask_beschreibung": "text"
                }
            },
            "tx_mask_bild": {
                "tx_mask_workshop": {
                    "tx_mask_bild": "int(11) unsigned DEFAULT '0' NOT NULL"
                }
            },
        },
        "tca": {
            "tx_mask_titel": {
                "config": {
                    "type": "input",
                    "eval": "required",
                    "default": "",
                    "placeholder": "",
                    "size": "",
                    "max": "",
                    "is_in": ""
                },
                "exclude": "1",
                "inlineParent": "tx_mask_workshop",
                "label": "Titel",
                "key": "titel"
            },
            "tx_mask_beschreibung": {
                "config": {
                    "type": "text",
                    "eval": "trim",
                    "richtextConfiguration": "default",
                    "enableRichtext": "1",
                    "cols": "",
                    "rows": "",
                    "default": "",
                    "placeholder": "",
                    "max": ""
                },
                "exclude": "1",
                "inlineParent": "tx_mask_workshop",
                "label": "Beschreibung",
                "rte": "1",
                "key": "beschreibung"
            },
            "tx_mask_bild": {
                "exclude": "1",
                "options": "file",
                "config": {
                    "appearance": {
                        "collapseAll": "1",
                        "useSortable": "1"
                    },
                    "minitems": "0",
                    "maxitems": "1",
                    "filter": [
                        {
                            "parameters": {
                                "allowedFileExtensions": ""
                            }
                        }
                    ]
                },
                "l10n_mode": "copy",
                "inlineParent": "tx_mask_workshop",
                "label": "Bild",
                "key": "bild"
            }
        }
    }
}

Add documentation

Need some documentation to explain some differences to mask itself

  • own fluid variables in FE and BE

[BUG] Colpos will be 0 instead of 999 when using containers as Non-Admin user

Hi Nicole,

I'm not 100% sure, wether this is a mask_export related bug, but may be.

When I'm building content elements which act as a container, nested contents will get colpos 999 as mask default. This totally works fine when creating contents as an administrator. But when creating new contents as a non-admin user, the colpos which is stored in the database will be 0, which breaks the whole template. Unfortunately I can't tell which changes I have done befor getting this issue :-(
If you need more info, let me know.

Regards, Manuel

Content elements miss icon

If you have a look into the edit form, you will see no CType icon is displayed. This is because mask_export content elements miss to define an icon in TCA ['tt_content']['columns']['CType']['config']['items'] configuration.

Add option to include mask.json to export

To use mask in a team or be able to change content elements at a later time, it might be useful to add the mask.json file to the export. There should be an extension option to enable or disable the export.

Recommended Workflow

I saw someone thought this was an import-export addon for mask (like I did too at first) but it's different. Very interesting!!

So I have a few questions:

Am I right that it's rather like a kickstarter to replace the manual coding of new field types, using mask as a GUI engine?

Would you install mask in some independent TYPO3 instance and generate the export(s) from there? Or just run both extensions (mask and mymaskexport) in the same "target" site?

Is there stuff that mask does that won't run if I run just the export and not mask?

Or did I get it all wrong? :-)

Fehler "Wert ist nicht erlaubt"

TYPO3 8
mask 3.0.1
mask_export 0.9.1

Nach dem Exportieren installiere ich die Extension.

Ich möchte ein neues Element erstellen und bekomme den Fehler wie oben.
Analog #106

Ich habe herausgefunden woran das liegt:

in TCA\Overrides\tt_content.php
wurde dieser code hier generiert:

<?php
$GLOBALS['TCA']['tt_content']['columns']['CType']['config']['items'][] = array(
    'LLL:EXT:teste/Resources/Private/Language/locallang_db.xlf:tt_content.CType.div._teste_',
    '--div--',
);
$tempTypes = array (
);
$GLOBALS['TCA']['tt_content']['types'] += $tempTypes;
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile(
    'teste',
    'Configuration/TypoScript/',
    'teste'
);

Der ist jedoch nicht vollständig.

Wenn ich mir den vollständigen Code aus dem Backend (Reiter Code Export) hole, funktioniert es.

Warum wird der Code nicht richtig generiert?

the export ignores Layouts files and exports only Templates

I created a Mask element that uses both Templates/ and Layouts/ ;
The Templates/test.html file is something like that:

<f:layout name="Default" />
<f:section name="content">
....
</f:section>

Layouts/Default.html is:

<f:render section="content" />

When exporting the element, I see that just the file

EXT:mytestext/Resources/Private/Templates/TtContent/test.html is created, obviously without the
<f:section name="content"> part.

TypoScript:

tt_content.mytestext_test= FLUIDTEMPLATE
tt_content.mytestext_test {
    file = EXT:mytestext/Resources/Private/Templates/TtContent/test.html
....

Exclude disallowed CTypes from inline children

In the mask configuration of content fields you can define which content elements types are allowed. The export allows to add all types of content elements in the backend but only the defined ones are rendered in frontend. As this is confusing for editors, the export extension should provide a dataprovider to remove disallowed CTypes in backend context as well.

How to access nested file-element in backend preview?

Hi there,

I'm building a backend preview with mask_export atm. Everything works fine for me but I really don't get this thing working:

I have some containers (for builing multicolumn layouts) with the possibility to add some other content elements. With fields like input, select, link and others, everything works fine. But I have also an element which uses the file-field. How can I use the processed data from this field inside a container (content field)? For testing purposes I have attached my mask.json (weird, that github won't let me upload a json-file, so I've zipped it).

My aim is to render the columns and inside them the selected images. If more files (e.g. the backend preview templates and partials) are needed, let me know.

Thanks in advance for your help

mask.json.zip

Exception in page view with nested elements

Given a container element with an inline (IRRE) field for content elements. An administrator adds a new record and some inline children of different types. An editor with insufficient user access to a CType of one inline child sees an exception currently.

Error with TYPO3 8.7

Hello,

the following error occurred with the current TYPO3 Version 8.7:

Oops, an error occurred! Argument 2 passed to CPSIT\MaskExport\Aggregate\ContentRenderingAggregate::addDataProcessing() must be of the type array, null given, called in typo3conf/ext/mask_export/Classes/Aggregate/ContentRenderingAggregate.php on line 141

Can u find and fix that problem ?

Thanks !

P.S. Great Extension.

How to limit allowed CTypes in content field?

Hi there,

I have some content elements using the "content" field. Now, when I want to add some content, the list of possible nested content elements is quite too long and even shows those elements (like default TYPO3 elements) which are disabled by backend layout. I also don't want the editor to be able to nest the containers themselves. When choosing the allowed CTypes inside mask, the export seems to have a little bug: The container still lists all content elements. Also it sets the default selected content element to the first selected one (this behaviour is quite fine). But it seems to limit the allowed content types to this very first allowed CType. every other CType wont get rendered in FE.

Am I missing something?

If mor information should be provided, please let me know.

Thanks in advance for sour help

locallang_db.xlf missing

In the generated extension, the file "locallang_db.xlf" seems to be missing. References to labels are in the generated TCA.
Only the file "locallang_db_new_content_el.xlf" with title and description for the new content elenents is there.

localisation: translated elements: original element is shown in fe

when translating a content element created with a mask_export element, in the first language not the translated element is shown in fe, but the original element.

The element has only one repeatable element with three elements included.

in the backend everything seems to be ok.

if i reproduce this with the original mask extension it works.

version 0.4.2

Empty column configuration in tt_content.php

Given:

I have a custom element re-using available fields only.

Expected:

I don't expect any $tempColumns initialization as there isn't any new field to initialze.

Actual:

Superfluous code is generated:

$tempColumns = array (
);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('tt_content', $tempColumns);

[BUG] Missing subdirectory in backend preview path

in TYPO3-mask_export/Classes/Aggregate/BackendPreviewAggregate.php on line 140 there is missing Content/

but would be nice to have this userdefined aswell, but for now adding Content/should work fine.

Type: Value is not allowed

After exporting a few mask elements by mask_export to an extension and clearing all caches:

Add new content element: All elements are visible.
After selecting an element: The Optionfield "Type" is giving me an "Value is not allowed"

How can i make my elements useable?

image

ExtensionManagementUtility::addStaticFile in TCA/Overrides/tt_content.php

mask_export writes something like this to Configuration/TCA/Overrides/tt_content.php:

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile(
    'myext',
    'Configuration/TypoScript/',
    'myext'
);

IMO this belongs into Configuration/TCA/Overrides/sys_template.php, because that's the table which is changed by ExtensionManagementUtility::addStaticFile().

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.