I want to show how to configure and set up custom content elements using mask and mask_export. You will learn about best practice in storing your configuration and templates in an own extension. You get an overview of all the feature the mask_export extension offers and what is the best way to customize even the export content.
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
CCE (Custom Content Elements) -Best Practice
1. 0T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
CCE (Custom Content Elements) - Best Practice
2. 1T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
Me, myself and I
„Who is that girl?“
» Nicole Cordes
» working at CPS-IT GmbH in Berlin
» community activity since 2011
» Core and Security Team member
» contributing to multiple public extensions
» Slack: @IchHabRecht
» Twitter: @IchHabRecht
» Mail: nitypo3@cordes.co
3. 2T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
What are CCE’s?
4. 3T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
What are custom content elements?
Slider
5. 4T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
What are custom content elements?
Dashboard
6. 5T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
What are custom content elements?
Tiles
7. 6T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
What are custom content elements?
Accordion
8. 7T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
In the old days
9. 8T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
In the old days
templavoila / FCE
10. 9T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
In the old days
kickstarter
11. 10T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
In the old days
extension_builder
12. 11T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
In the old days
Even more
» Dynamic Content Elements (DCE)
» Fluid Content Engine (fluidcontent)
» manually
13. 12T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
In the old days
Drawbacks
» no fun
» hassle with external dependencies
» error-prone
» (insert your experience here)
14. 13T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
Today
15. 14T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
Today
mask
16. 15T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
Today
Installation
» by using Extension Manager or `composer require mask/mask`
» define your template directories in Extension Manager configuration
» ensure existing folders
17. 16T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
Today
Usage
» add a new content element
18. 17T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
Today
Usage
» design your content element
19. 18T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
Today
Usage
» go to the backend and use your content element
20. 19T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
Today
Drawbacks
» only partly cached (TCA since 3.0.0)
» static information are generated on each request
» limited due to Extbase usage
» currently the development stopped
21. 20T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
Tomorrow
22. 21T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
Tomorrow
mask_export
23. 22T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
Tomorrow
Installation
» by using the Extension Manager or `composer require cpsit/mask-export`
» nothing more to do as mask_exports integrates itself in the mask backend module
24. 23T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
Tomorrow
Usage
» provide an extension name for the exported extension
» save it, so it gets stored in your backend user information
» either download a zip file or install (NEW!) the extension locally
25. 24T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
Tomorrow
Usage
» what you get is an independent extension that you can use in any other system
26. 25T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
Tomorrow
Usage
» add the extension’s static template to your includes
27. 26T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
Tomorrow
Usage
» go to the backend and use your content element
28. 27T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
… pretty cool …
29. 28T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
… but what if …
30. 29T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
… in the middle of a project …
31. 30T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
… the client needs …
32. 31T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
… a new content element?
33. 32T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
Tomorrow
Workflow
34. 33T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
Tomorrow
Workflow
» prerequisite:
» use the export as content elements container extension
» add the export extension as dependency to your e.g. sitepackage
35. 34T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
Tomorrow
Workflow
Add your own Fluid templates:
» copy generated Fluid templates to your sitepackage
» use constants to adjust the template, partials and layout paths of the export extension
typo3conf/ext/cce_sitepackage/Configuration/TypoScript/constants.ts
plugin.tx_cceexport.view.partialRootPath = EXT:cce_sitepackage/Resources/Private/Partials/Content/
plugin.tx_cceexport.view.layoutRootPath = EXT:cce_sitepackage/Resources/Private/Layouts/Content/
plugin.tx_cceexport.view.templateRootPath = EXT:cce_sitepackage/Resources/Private/Templates/Content/
» change the templates according to your needs
36. 35T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
Tomorrow
Workflow
Extend TCA information of your content elements:
» extend and/or change the TCA of your content elements
» add wizards
» use display conditions
» add eval functions
» …
37. 36T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
You can even translate
locallang files!
38. 37T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
Tomorrow
Workflow
Add translations of the locallang.xlf files:
» add translation in your sitepackage extension
» register translated xlf files as override files
typo3conf/ext/cce_sitepackage/ext_localconf.php
$GLOBALS['TYPO3_CONF_VARS']['SYS']['locallangXMLOverride']['de']
['EXT:cce_export/Resources/Private/Language/locallang_db.xlf']['cce_sitepackage'] =
'EXT:cce_sitepackage/Resources/Private/Language/de.locallang_db.xlf';
$GLOBALS['TYPO3_CONF_VARS']['SYS']['locallangXMLOverride']['de']
['EXT:cce_export/Resources/Private/Language/locallang_db_new_content_el.xlf']['cce_sitepackage'] =
'EXT:cce_sitepackage/Resources/Private/Language/de.locallang_db_new_content_el.xlf';
39. 38T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
In a couple of days
aka the future
40. 39T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
The future
content_repository
41. 40T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
The future
Installation
» pull request for mask “Reusable components (split mask.json)”
» https://github.com/Gernott/mask/pull/40
» you can define a folder for several json files instead of the mask.json
» the patch splits the content elements of your mask.json into several single json files
» you can easily store json files in a kind of content repository
» copy needed content elements into the mask folder
42. 41T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
Anything else?
43. 42T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
The future
Taking care
» clean up mask’s code basis
» remove dependency to Extbase Controller (use more core features)
» cache information on build time
» fix known bugs
Everyone is welcome to join the mask team and help out!
44. 43T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
Q & A
45. 44T3DD17 Malmö, Nicole Cordes, CCE (Custom Content Elements) - Best Practice, CPS-IT Mehr Wert im Netz
44
Thanks
for your attention!