Hallo,
ich habe eine non-namespaced Extension die ich für 6.2+ tauglich machen muss. Dort gibt es einen Validator, welcher FlashMessages hinzufügt damit diese dem Nutzer ausgegeben werden. Aufgrund der Änderungen der API geht das aber nicht mehr und ich weiß nicht was ich tun muss damit es wieder geht.
aktuell ist es in etwa so:
public function isValid($value) {
$fm = new Tx_Extbase_MVC_Controller_FlashMessages;
$fm->enqueue('Die Fehlermeldung für den Nutzer');
/* ... */
Kann mir jemand sagen wie ich das wieder zum laufen bekomme?
Vielen Dank!
Hallo,
ich glaub, das geht hiermit...
public function isValid($value) {
if (...){
$this->addError('Die Fehlermeldung für den Nutzer', $errorcode);
}
}
Diese Fehlermeldungen werden dann in der <f:form.errors> abgearbeitet.
Hi,
danke für den Hinweis. Habe es ausprobiert, aber es wird mir nichts ausgegeben. Habe daraufhin mal geschaut wie man die ValidationErrors ausgibt und folgendes probiert:
<f:form.validationResults>
<f:debug>{validationResults}</f:debug>
</f:form.validationResults>
Aber die Unterobjekte (wie errors) ist leer.
Gibt es noch einen anderen Weg oder vielleicht doch in einem Validator eine FlashMessage hinzuzufügen wie es "früher" ging? (siehe oben)
Danke schon mal
Es gibt mindestens 2 Wege innerhalb einer Klasse die Tx_Extbase_MVC_Controller_ActionController erweitert Fehlermeldungen zu übergeben:
$this->controllerContext->getFlashMessageQueue()->enqueue(
$this->objectManager->get(
'TYPO3\\CMS\\Core\\Messaging\\FlashMessage',
'Fehlermeldung',
'Fehler',
\TYPO3\CMS\Core\Messaging\FlashMessage::ERROR,
TRUE
)
);
siehe: https://forge.typo3.org/issues/52472
oder
$this->addFlashMessage(
$messageBody,
$messageTitle = '',
$severity = \TYPO3\CMS\Core\Messaging\AbstractMessage::ERROR,
$storeInSession = TRUE
);
siehe: https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/FlashMessages/Index.html
>> is deprecated since 6.1
oder:
$this->flashMessages->add('Fehlermeldung');
oder
$this->flashMessageContainer->add('Fehlermeldung')
Wie man sieht hat das TYPO3 Core Team es dem Entwickler mal wieder einfach gemacht, nicht.
Welche Methode nun die aktuelle/richtige/beste ist kann ich leider nicht sagen.
Die letzte funktioniert bei mir aber immer noch in TYPO3 6.2.12
P.S.: Eine Extension von non_namespaced zu namespaced zu ändern ist aber gar nicht so schwer!