[Frage] addFlashMessage im Validator?

  • fuzz fuzz
    Jedi-Meister
    0 x
    291 Beiträge
    5 Hilfreiche Beiträge
    15. 07. 2015, 10:44

    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:

    1. public function isValid($value) {
    2. $fm = new Tx_Extbase_MVC_Controller_FlashMessages;
    3. $fm->enqueue('Die Fehlermeldung für den Nutzer');
    4. /* ... */

    Kann mir jemand sagen wie ich das wieder zum laufen bekomme?

    Vielen Dank!

    TypoScript kann alles, auch kochen! ...Man muss nur wissen wie ;-)

    Take a look at my TYPO3 Extensions in the Repository:
    content_designer, k23_imagecrop, nn_address and more...


  • 1
  • harald1972 harald197...
    Sternenflotten-Admiral
    0 x
    198 Beiträge
    13 Hilfreiche Beiträge
    16. 07. 2015, 15:40

    Hallo,

    ich glaub, das geht hiermit...

    1. public function isValid($value) {
    2. if (...){
    3. $this->addError('Die Fehlermeldung für den Nutzer', $errorcode);
    4. }
    5. }

    Diese Fehlermeldungen werden dann in der <f:form.errors> abgearbeitet.

  • fuzz fuzz
    Jedi-Meister
    0 x
    291 Beiträge
    5 Hilfreiche Beiträge
    05. 08. 2015, 14:08

    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:

    1. <f:form.validationResults>
    2. <f:debug>{validationResults}</f:debug>
    3. </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

    TypoScript kann alles, auch kochen! ...Man muss nur wissen wie ;-)

    Take a look at my TYPO3 Extensions in the Repository:
    content_designer, k23_imagecrop, nn_address and more...

  • daniz78 daniz78
    Sternenflotten-Admiral
    0 x
    226 Beiträge
    0 Hilfreiche Beiträge
    05. 08. 2015, 20:20

    Es gibt mindestens 2 Wege innerhalb einer Klasse die [b]Tx_Extbase_MVC_Controller_ActionController[/b] erweitert Fehlermeldungen zu übergeben:

    1. $this->controllerContext->getFlashMessageQueue()->enqueue(
    2. $this->objectManager->get(
    3. 'TYPO3\\CMS\\Core\\Messaging\\FlashMessage',
    4. 'Fehlermeldung',
    5. 'Fehler',
    6. \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR,
    7. TRUE
    8. )
    9. );
    siehe: https://forge.typo3.org/issues/52472

    oder

    1. $this->addFlashMessage(
    2. $messageBody,
    3. $messageTitle = '',
    4. $severity = \TYPO3\CMS\Core\Messaging\AbstractMessage::ERROR,
    5. $storeInSession = TRUE
    6. );

    siehe: https://docs.typo3.org/typo3cms/CoreApiReference/ApiOverview/FlashMessages/Index.html
    >> is deprecated since 6.1

    oder:

    1. $this->flashMessages->add('Fehlermeldung');

    oder

    1. $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!

    Webentwicklung aus Leidenschaft
    https://www.daniz.de

    IT´s not a trick // IT´s passion

  • 1