Default checkbox
The checkbox with renderType check is typically a single checkbox or a group of checkboxes.
Its state can be inverted via invert.
Examples
All examples listed here can be found in the extension styleguide.
Example: Simple checkbox with label
A single checkbox with a label
TCA:
EXT:my_extension/Configuration/TCA/Overrides/241-tx_myextension_talk-recording_allowed.php
<?php
use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
defined('TYPO3') or die();
ExtensionManagementUtility::addTCAcolumns('tx_myextension_talk', [
'recording_allowed' => [
'label' => 'my_extension.db:talk.recording_allowed',
'config' => [
'type' => 'check',
'items' => [
['label' => 'my_extension.db:talk.recording_allowed.item'],
],
'behaviour' => [
'allowLanguageSynchronization' => true,
],
],
],
]);
ExtensionManagementUtility::addToAllTCAtypes(
'tx_myextension_talk',
'recording_allowed',
'talk,keynote',
'after:recording',
);
If the checkbox is checked, the value for the field will be 1, if unchecked, it will be 0.
EXT:my_extension/Configuration/FlexForms/ConferenceList.xml
<T3DataStructure>
<sheets>
<sDEF>
<ROOT>
<sheetTitle>my_extension.db:plugin.conferencelist.sheet.general</sheetTitle>
<type>array</type>
<el>
<settings.mode>
<label>my_extension.db:plugin.conferencelist.mode</label>
<onChange>reload</onChange>
<config>
<type>select</type>
<renderType>selectSingle</renderType>
<items>
<numIndex index="0">
<label>my_extension.db:plugin.conferencelist.mode.upcoming</label>
<value>upcoming</value>
</numIndex>
<numIndex index="1">
<label>my_extension.db:plugin.conferencelist.mode.past</label>
<value>past</value>
</numIndex>
<numIndex index="2">
<label>my_extension.db:plugin.conferencelist.mode.selected</label>
<value>selected</value>
</numIndex>
</items>
</config>
</settings.mode>
<settings.conferences>
<label>my_extension.db:plugin.conferencelist.conferences</label>
<displayCond>FIELD:settings.mode:=:selected</displayCond>
<config>
<type>group</type>
<allowed>tx_myextension_conference</allowed>
</config>
</settings.conferences>
<settings.categories>
<label>my_extension.db:plugin.conferencelist.categories</label>
<config>
<type>category</type>
</config>
</settings.categories>
<settings.display>
<label>my_extension.db:plugin.conferencelist.display</label>
<config>
<type>check</type>
<items>
<numIndex index="0">
<label>my_extension.db:plugin.conferencelist.display.logo</label>
</numIndex>
<numIndex index="1">
<label>my_extension.db:plugin.conferencelist.display.location</label>
</numIndex>
<numIndex index="2">
<label>my_extension.db:plugin.conferencelist.display.speakers</label>
</numIndex>
<numIndex index="3">
<label>my_extension.db:plugin.conferencelist.display.date</label>
</numIndex>
</items>
<cols>3</cols>
<default>15</default>
</config>
</settings.display>
<settings.limit>
<label>my_extension.db:plugin.conferencelist.limit</label>
<displayCond>
<or>
<value1>FIELD:settings.mode:=:upcoming</value1>
<value2>FIELD:settings.mode:=:past</value2>
</or>
</displayCond>
<config>
<type>number</type>
<default>10</default>
</config>
</settings.limit>
<settings.country>
<label>my_extension.db:plugin.conferencelist.country</label>
<config>
<type>country</type>
<labelField>localizedName</labelField>
<size>4</size>
<prioritizedCountries>
<numIndex index="0">CH</numIndex>
<numIndex index="1">DE</numIndex>
<numIndex index="2">AT</numIndex>
</prioritizedCountries>
</config>
</settings.country>
<settings.timezone>
<label>my_extension.db:plugin.conferencelist.timezone</label>
<config>
<type>select</type>
<renderType>selectSingle</renderType>
<items>
<numIndex index="0">
<label></label>
<value></value>
</numIndex>
</items>
<itemsProcessors>
<numIndex index="100">
<class>MyVendor\MyExtension\Backend\ItemsProcessor\TimezoneItemsProcessor</class>
<parameters>
<regions>Europe</regions>
</parameters>
</numIndex>
</itemsProcessors>
</config>
</settings.timezone>
</el>
</ROOT>
</sDEF>
<sHighlights>
<ROOT>
<sheetTitle>my_extension.db:plugin.conferencelist.sheet.highlights</sheetTitle>
<sheetDescription>my_extension.db:plugin.conferencelist.sheet.highlights.description</sheetDescription>
<type>array</type>
<el>
<settings.introduction>
<label>my_extension.db:plugin.conferencelist.introduction</label>
<config>
<type>text</type>
<enableRichtext>1</enableRichtext>
</config>
</settings.introduction>
<settings.highlights>
<title>my_extension.db:plugin.conferencelist.highlights</title>
<type>array</type>
<section>1</section>
<el>
<highlight>
<title>my_extension.db:plugin.conferencelist.highlight</title>
<type>array</type>
<el>
<title>
<label>my_extension.db:plugin.conferencelist.highlight.title</label>
<config>
<type>input</type>
</config>
</title>
<link>
<label>my_extension.db:plugin.conferencelist.highlight.link</label>
<config>
<type>link</type>
</config>
</link>
</el>
</highlight>
</el>
</settings.highlights>
</el>
</ROOT>
</sHighlights>
</sheets>
</T3DataStructure>
Example: Four checkboxes in three columns
Four checkboxes in three columns
TCA:
EXT:my_extension/Configuration/TCA/Overrides/136-tx_myextension_conference-amenities.php
<?php
use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
defined('TYPO3') or die();
ExtensionManagementUtility::addTCAcolumns('tx_myextension_conference', [
'amenities' => [
'label' => 'my_extension.db:conference.amenities',
'config' => [
'type' => 'check',
'items' => [
['label' => 'my_extension.db:conference.amenities.catering'],
['label' => 'my_extension.db:conference.amenities.childcare'],
['label' => 'my_extension.db:conference.amenities.live_stream'],
['label' => 'my_extension.db:conference.amenities.wheelchair_access'],
],
'cols' => 3,
],
],
]);
ExtensionManagementUtility::addToAllTCAtypes(
'tx_myextension_conference',
'amenities',
'',
'after:ticketing_secret',
);
If all checkboxes are checked, the value for the field will be 15 (
1 ).
Example: Checkboxes with inline floating
The weekdays of a location, Monday to Friday checked by default
EXT:my_extension/Configuration/TCA/Overrides/430-tx_myextension_location-open_days.php
<?php
use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
defined('TYPO3') or die();
ExtensionManagementUtility::addTCAcolumns('tx_myextension_location', [
'open_days' => [
'label' => 'my_extension.db:location.open_days',
'config' => [
'type' => 'check',
'items' => [
['label' => 'my_extension.db:location.open_days.monday'],
['label' => 'my_extension.db:location.open_days.tuesday'],
['label' => 'my_extension.db:location.open_days.wednesday'],
['label' => 'my_extension.db:location.open_days.thursday'],
['label' => 'my_extension.db:location.open_days.friday'],
['label' => 'my_extension.db:location.open_days.saturday'],
['label' => 'my_extension.db:location.open_days.sunday'],
],
'cols' => 'inline',
// Monday to Friday: the first five bits
'default' => 31,
],
],
]);
ExtensionManagementUtility::addToAllTCAtypes(
'tx_myextension_location',
'open_days',
'',
'after:capacity',
);
This will display as many checkbox items as will fit in one row. Without inline, each checkbox would be displayed in a separate row.