What needs to be done in a TYPO3 extension to send emails? (1)
Answer
The standard PHP function mail() must be used
The system extension swiftmailer needs to be installed and activated
The GeneralUtility class provides a static function email() that should be used to send emails
An instance of \TYPO3\CMS\Core\Mail\MailMessage needs to be created
Backend user records need to be retrieved from the database, because emails can only be sent to registered backend users for privacy reasons
Question 2
Question
What is required to use the global Category API in a custom extension? (2)
Answer
The method ExtensionManagementUtility::makeCategorizable() can be used
A relation to class \TYPO3\CMS\Extbase\Domain\Model\Category is required
A database field named categories must exist
A mapping to the category table needs to be added as TypoScript
A FlexForm with the field <categories> must be created
Question 3
Question
Which statements about the MetaTag API are correct? (3)
Answer
The TYPO3 core features an Open Graph MetaTagManager by default (system extension
“SEO”)
Developers can only overwrite existing meta tags, but can not create custom tags by using the MetaTag API
Developers can not remove meta tags by using the MetaTagManager
When using the MetaTag API, meta tags can be set in TypoScript or in PHP (for example in a frontend plugin)
Custom MetaTagManager should implement the \TYPO3\CMS\Core\MetaTag\MetaTagManagerInterface
The system extension metatags must be installed to use the MetaTag API
Question 4
Question
How do you configure the Doctrine DBAL Query Builder to also return hidden records? (1)
Answer
This is not possible: TYPO3 never returns deleted or hidden records
By setting the TypoScript option setup.tx_querybuilder.include.hidden = 1
By using the method removeByType() of the RestrictionBuilder
By using the method includeHiddenRecords() of the RestrictionBuilder
Question 5
Question
Which value must be set in the database to make a dataset available in all languages? (1)
Answer
language = 0
language = -1
sys_language_uid = 0
sys_language_uid = -1
t3_origuid = 0
Question 6
Question
How do you determine the UID of a logged-in frontend user? (1)
Answer
By executing the function $this->userContext->getUid() that is available in Extbase controllers by default
By accessing the User Aspect of the Context API
By accessing the global variable $GLOBALS['BE_USER']
The only way is to query the database directly
Question 7
Question
What does the following API call do in the TYPO3 backend? (2)
use \TYPO3\CMS\Core\Utility\GeneralUtility;
use \TYPO3\CMS\Core\Messaging\FlashMessage;
...
$message = GeneralUtility::makeInstance(
FlashMessage::class,
'Lorem ipsum dolor sit amet.',
'Excepteur sint occaecat cupidatat',
FlashMessage::WARNING
);
Answer
It generates a warning as a Flash Message
It produces a PHP exception if the instance runs in the development context
It generates a Flash Message with the headline “Lorem ipsum dolor sit amet.”
It generates a Flash Message with the body text “Lorem ipsum dolor sit amet.”
It generates a message, if the user has Adobe Flash installed
The message is stored in the session until shown to the user
Question 8
Question
Which statements about TYPO3’s Flash Messages Renderer are correct? (3)
Answer
The CLI context uses the BootstrapRenderer by default
The backend uses the BootstrapRenderer by default
The frontend context has no default class (developers have to implement their own renderer class)
The FlashMessageRendererResolver detects the context to use the correct output format for Flash Messages
Developers can implement their own renderer class as required
The Flash Message Renderer has been marked deprecated in TYPO3 v9 and will be removed in v10