[TYPO3-english] Templavoila is outdated ?

Jigal van Hemert jigal.van.hemert at typo3.org
Sat Mar 12 17:22:49 CET 2016


Hi,

On 11/03/2016 17:10, TSniper wrote:
> Thank you for those informations, what do you recommand for custom fces
> (Text+images+custom buttons) ?

As long as there are no areas which can contain other content elements 
you can easily make your own custom content elements. There are 
solutions that are technically a lot better, but this way you can 
migrate FCEs with limited effort.

Some people won't like this method because the data is still stored in 
flexforms, but it's the easiest solution to use the existing data and 
still have the FCEs in the backend

- copy in tt_content the contenst of colum tx_templavoila_flex to 
pi_flexform ; this contains the data of the FCE; set the CType field to 
the name of the FCE (in this example: 'terslider')

- copy the flexform DS to a file and remove the structures that are 
specific for TemplaVoilà. This is the flexform that we'll register later 
for use in tt_content

- in an extension you can configure the content element for the BE in 
file Configuration/TCA/Overrides/tt_content.php like this example

$GLOBALS['TCA']['tt_content']['columns']['CType']['config']['items'][] = 
array(
 
'LLL:EXT:typo3coder/Resources/Private/Language/newContentElements.xlf:extra_terslider_title',
   'terslider',
   'EXT:typo3coder/Resources/Public/Backend/Images/terslider_small.png'
);

No we've added a CType item for a CE 'terslider'.

// flexform for pi_flexform field
$GLOBALS['TCA']['tt_content']['columns']['pi_flexform']['config']['ds'][',terslider'] 
=
   'FILE:EXT:typo3coder/Configuration/FlexForms/flexform_terslider.xml';

This line registered the flexform file from the previous step for the 
CType 'terslider'.

$GLOBALS['TCA']['tt_content']['types']['terslider'] = array(
   'showitem' => 
'--palette--;LLL:EXT:cms/locallang_ttc.xlf:palette.general;general,
					section_frame;LLL:EXT:cms/locallang_ttc.xlf:section_frame_formlabel,
					pi_flexform; ;,
				--div--;LLL:EXT:cms/locallang_ttc.xlf:tabs.access,
				 
--palette--;LLL:EXT:cms/locallang_ttc.xlf:palette.visibility;visibility,
					--palette--;LLL:EXT:cms/locallang_ttc.xlf:palette.access;access,
				--div--;LLL:EXT:cms/locallang_ttc.xlf:tabs.extended'
);

This is the hardest part, we determine which fields and tabs must be 
visible in the BE for this content element: the general tab, access 
field and the (empty) extended tab. Luckily there is a ton of 
inspiration in all the content elements from the core itself.

- In this example I'll still use CSS Styled Content, mainly because it's 
less work for an upgrade project. Otherwise you need to migrate the 
changes in rendering for use in Fluid Styled Content.
So, we can 'easily' define the rendering in TypoScript:

tt_content.terslider = FLUIDTEMPLATE
tt_content.terslider {
     template = FILE
     template.file = 
EXT:typo3coder/Resources/Private/Templates/ContentELements/Terslider.html
     layoutRootPath = EXT:typo3coder/Resources/Private/Templates/Layout/
     variables {
     }
}

- The next thing we need to do is to make sure that the content element 
shows up in the New Content Element wizard:

mod {
   wizards.newContentElement.wizardItems.extra {
     header = 
LLL:EXT:typo3coder/Resources/Private/Language/newContentElements.xlf:extra
     elements {
       terslider {
         iconIdentifier = conent-element-terslider
         title = 
LLL:EXT:typo3coder/Resources/Private/Language/newContentElements.xlf:extra_terslider_title
         description = 
LLL:EXT:typo3coder/Resources/Private/Language/newContentElements.xlf:extra_terslider_description
         tt_content_defValues {
           CType = terslider
         }
       }
     }
     show = *
   }
}

- The last thing is to make a fluid template for the rendering. You can 
copy a lot from the old TV mapping. To access the fields in the flexform 
you need a flexform viewhelper; an example of such a viewhelper is in 
the extension described in the next paragraph.

You can find all this in the extension "sitepackage" (available in TER). 
In the documentation of that extension a lot of the configuration is 
explained. A version specific for TYPO3 7 LTS is in the making.

> What can i do for custom extensions, the upgrade process tell me to
> uninstall them all before i can go to the next step ? these extensions
> are all pi base. Can you tell me how to migrate them with their content ?

Pi_base extensions still work, but need some changes. The class names 
need to be migrated and some includes have to be removed, but this is 
generally quite easy to do. The marker based templates can still be used 
and all the data for these extensions can still be used.

It's quite a bit of work altogether, but once you get the hang of it 
you'll get faster :-)

-- 
Jigal van Hemert
TYPO3 CMS Active Contributor

TYPO3 .... inspiring people to share!
Get involved: typo3.org


More information about the TYPO3-english mailing list