Re: [TYPO3-german] Gibt es in ExtBase keine Mglichkeit die Exception abzufangen? Exception while property mapping
es müsst sogar ziemlich einfach gehen: https://api.typo3.org/typo3cms/current/html/class_t_y_p_o3_1_1_c_m_s_1_1_extbase_1_1_mvc_1_1_controller_1_1_abstract_controller.html#aa8e60e2182c9ffeca4111b9f0927b007 redirectToUri ( $uri, $delay = 0, $statusCode = 303 ) viele Grüße Birgit > Am 10.01.2018 um 17:53 schrieb Birgit: > > Habe ich nicht ausprobiert, kannst du aber hier nachsehen: > > https://api.typo3.org/typo3cms/8/html/class_t_y_p_o3_1_1_c_m_s_1_1_extbase_1_1_mvc_1_1_web_1_1_response.html > https://github.com/TYPO3/TYPO3.CMS/blob/master/typo3/sysext/extbase/Classes/Mvc/Web/Response.php > https://api.typo3.org/typo3cms/8/html/extbase_2_classes_2_mvc_2_web_2_response_8php_source.html#l00268 > > setStatus ( > $code, > $message = null > ) > > viele Grüße > Birgit > > >> Am 10.01.2018 um 17:38 schrieb Hagen Gebauer : >> >> Hallo Birgit, >> >> dankesehr! Hier wird letztlich auf das Default-404-Handling der Site >> zurückgegriffen, richtig? Gibt es aber in meiner Variante eine Möglichkeit >> einen 404-Status zu senden? Damit ich dennoch eine benutzerfreundliche >> Extension-spezifische 404-Seite anzeigen lassen kann? Die folgende Idee >> funktioniert nicht, obwohl man an dieser Stelle in einer Controller-Action >> offenbar mit $this->response->setHeader() und ->sendHeaders() auch >> HTTP-Header senden/überschreiben kann: >> >> public function showAction(\Your\Model\Name $model = null) >> { >> if (!is_null($model)) { >> $this->view->assign('model', $model); >> } else { >> $this->response->setStatus(404); >> } >> } >> >> Es wird die Fehlermeldung angezeigt, aber mit «HTTP/1.1 200 OK» anstatt "404 >> Not Found" >> >> LG: Hagen. >> ___ >> TYPO3-german mailing list >> TYPO3-german@lists.typo3.org >> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german > ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
Re: [TYPO3-german] Gibt es in ExtBase keine Mglichkeit die Exception abzufangen? Exception while property mapping
Habe ich nicht ausprobiert, kannst du aber hier nachsehen: https://api.typo3.org/typo3cms/8/html/class_t_y_p_o3_1_1_c_m_s_1_1_extbase_1_1_mvc_1_1_web_1_1_response.html https://github.com/TYPO3/TYPO3.CMS/blob/master/typo3/sysext/extbase/Classes/Mvc/Web/Response.php https://api.typo3.org/typo3cms/8/html/extbase_2_classes_2_mvc_2_web_2_response_8php_source.html#l00268 setStatus ( $code, $message = null ) viele Grüße Birgit > Am 10.01.2018 um 17:38 schrieb Hagen Gebauer: > > Hallo Birgit, > > dankesehr! Hier wird letztlich auf das Default-404-Handling der Site > zurückgegriffen, richtig? Gibt es aber in meiner Variante eine Möglichkeit > einen 404-Status zu senden? Damit ich dennoch eine benutzerfreundliche > Extension-spezifische 404-Seite anzeigen lassen kann? Die folgende Idee > funktioniert nicht, obwohl man an dieser Stelle in einer Controller-Action > offenbar mit $this->response->setHeader() und ->sendHeaders() auch > HTTP-Header senden/überschreiben kann: > > public function showAction(\Your\Model\Name $model = null) > { > if (!is_null($model)) { > $this->view->assign('model', $model); > } else { > $this->response->setStatus(404); > } > } > > Es wird die Fehlermeldung angezeigt, aber mit «HTTP/1.1 200 OK» anstatt "404 > Not Found" > > LG: Hagen. > ___ > TYPO3-german mailing list > TYPO3-german@lists.typo3.org > http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
Re: [TYPO3-german] Gibt es in ExtBase keine Mglichkeit die Exception abzufangen? Exception while property mapping
Hallo Birgit, dankesehr! Hier wird letztlich auf das Default-404-Handling der Site zurückgegriffen, richtig? Gibt es aber in meiner Variante eine Möglichkeit einen 404-Status zu senden? Damit ich dennoch eine benutzerfreundliche Extension-spezifische 404-Seite anzeigen lassen kann? Die folgende Idee funktioniert nicht, obwohl man an dieser Stelle in einer Controller-Action offenbar mit $this->response->setHeader() und ->sendHeaders() auch HTTP-Header senden/überschreiben kann: public function showAction(\Your\Model\Name $model = null) { if (!is_null($model)) { $this->view->assign('model', $model); } else { $this->response->setStatus(404); } } Es wird die Fehlermeldung angezeigt, aber mit «HTTP/1.1 200 OK» anstatt "404 Not Found" LG: Hagen. ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
Re: [TYPO3-german] Gibt es in ExtBase keine Mglichkeit die Exception abzufangen? Exception while property mapping
ok, komfortabel ist das in der News Extension gelöst, Such mal im NewsController nach: if (is_null($news) && isset($this->settings['detail']['errorHandling'])) { $errorContent = $this->handleNoNewsFoundError($this->settings['detail']['errorHandling']); if ($errorContent) { return $errorContent; } } viele Grüße Birgit > Am 10.01.2018 um 13:48 schrieb Hagen Gebauer: > > Hallo Birgit, > > besten Dank! Das mit dem Template ist natürlich richtig. Das andere nicht > ganz, denn die Besucher der Website haben ein «Oops, an error occured» > gesehen, wenn ein Record aus meiner Extension gelöscht oder versteckt wurde. > Das passiert dank der condition in der Controller-Action nicht mehr. > > Dennoch war ich etwas voreilig, denn der Haken an meinem Vorschlag ist, dass > kein 404-Header gesendet wird damit bleiben Suchmaschineneinträge zu einem > gelöschten Record natürlich bestehen. > > LG: Hagen. > ___ > TYPO3-german mailing list > TYPO3-german@lists.typo3.org > http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
Re: [TYPO3-german] Gibt es in ExtBase keine Mglichkeit die Exception abzufangen? Exception while property mapping
Hallo Birgit, besten Dank! Das mit dem Template ist natürlich richtig. Das andere nicht ganz, denn die Besucher der Website haben ein «Oops, an error occured» gesehen, wenn ein Record aus meiner Extension gelöscht oder versteckt wurde. Das passiert dank der condition in der Controller-Action nicht mehr. Dennoch war ich etwas voreilig, denn der Haken an meinem Vorschlag ist, dass kein 404-Header gesendet wird damit bleiben Suchmaschineneinträge zu einem gelöschten Record natürlich bestehen. LG: Hagen. ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
Re: [TYPO3-german] Gibt es in ExtBase keine Mglichkeit die Exception abzufangen? Exception while property mapping
Hallo Hagen, das Konstrukt im Controller funktioniert so nicht und du brauchst es gar nicht. Das reicht normalerweise: > Model existiert Model existiert nicht Ansonsten kannst du eigene Bedingungen über $this->settings im Controller setzen. $this->settings['meine_bedingung‘] = 1; > > > leider nix gefunden > > > ... reguläres Template ... > > > ___ > TYPO3-german mailing list > TYPO3-german@lists.typo3.org > http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
Re: [TYPO3-german] Gibt es in ExtBase keine Mglichkeit die Exception abzufangen? Exception while property mapping
Der Thread ist zwar über zwei Jahre alt, aber ich habe eine sehr einfach Lösung gefunden, die vielleicht auch anderen hilft. Es sind nur wenige Zeilen in der showAction() des Controllers und eine Vordefinition des übergebenen Objektes mit «null»: public function showAction(\Your\Model\Name $model = null) { if (is_null($model)) { $this->view->assign('model', ['notFound'=> 1]); } else { $this->view->assign('model', $model); } } Dazu eine einfache condition im Show.html template: leider nix gefunden ... reguläres Template ... ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
Re: [TYPO3-german] Gibt es in ExtBase keine Mglichkeit die Exception abzufangen? Exception while property mapping
vielen Dank für eure Antworten. So funktioniert es. ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
Re: [TYPO3-german] Gibt es in ExtBase keine Mglichkeit die Exception abzufangen? Exception while property mapping
Hi Alexander Averbuch, Alexander Averbuch wrote: > wo genau im Controller soll ich das machen? Die Exception wird geworfen, > bevor die Action show aufgerufen wird. Versuche es mal mit: /** * @param RequestInterface $request * @param ResponseInterface $response * @throws \Exception */ public function processRequest(RequestInterface $request, ResponseInterface $response) { try { parent::processRequest($request, $response); } catch (\Exception $exception) { $this->handleKnownExceptionsElseThrowAgain($exception); } } https://github.com/TYPO3-extensions/news/blob/master/Classes/Controller/NewsBaseController.php#L48 Viele Grüße -- Philipp Gampe – PGP-Key 0AD96065 – TYPO3 UG Bonn/Köln Certified Integrator – Active contributor TYPO3 CMS TYPO3 inspiring people to share! ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
Re: [TYPO3-german] Gibt es in ExtBase keine Mglichkeit die Exception abzufangen? Exception while property mapping
Die 404-Seite ist angelegt und konfiguriert. Und die Exception wird in der Datei typo3/sysext/extbase/Classes/Property/TypeConverter/PersistentObjectConverter.php in der Methode fetchObjectFromPersistence geworfen. protected function fetchObjectFromPersistence($identity, $targetType) { if (ctype_digit((string)$identity)) { $object = $this->persistenceManager->getObjectByIdentifier($identity, $targetType); } else { throw new \TYPO3\CMS\Extbase\Property\Exception\InvalidSourceException('The identity property "' . $identity . '" is no UID.', 1297931020); } if ($object === NULL) { throw new \TYPO3\CMS\Extbase\Property\Exception\TargetNotFoundException('Object with identity "' . print_r($identity, TRUE) . '" not found.', 1297933823); } return $object; } und wieso den die 404-Seite? Ich möchte selbst die Exception abfangen. Es tut mir wirklich leid, aber je länger ich mich mit Extbase beschäftige, desto schlechteren Eindruck habe ich vom Framework. So ein Sch ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
Re: [TYPO3-german] Gibt es in ExtBase keine Mglichkeit die Exception abzufangen? Exception while property mapping
Hallo Alexander, warum fängst du die Exception nicht einfach in deinem Controller ab und gibst dort dann entsprechend die Fehlermeldung an dein Fluid template weiter?! Liebe Grüße, Nicole > Am 23.12.2015 um 10:48 schrieb Alexander Averbuch: > > Die 404-Seite ist angelegt und konfiguriert. Und die Exception wird in der > Datei > typo3/sysext/extbase/Classes/Property/TypeConverter/PersistentObjectConverter.php > in der Methode fetchObjectFromPersistence geworfen. > >protected function fetchObjectFromPersistence($identity, $targetType) { >if (ctype_digit((string)$identity)) { >$object = > $this->persistenceManager->getObjectByIdentifier($identity, $targetType); >} else { >throw new > \TYPO3\CMS\Extbase\Property\Exception\InvalidSourceException('The identity > property "' . $identity . '" is no UID.', 1297931020); >} > >if ($object === NULL) { >throw new > \TYPO3\CMS\Extbase\Property\Exception\TargetNotFoundException('Object with > identity "' . print_r($identity, TRUE) . '" not found.', 1297933823); >} > >return $object; >} > > und wieso den die 404-Seite? Ich möchte selbst die Exception abfangen. Es tut > mir wirklich leid, aber je länger ich mich mit Extbase beschäftige, desto > schlechteren Eindruck habe ich vom Framework. So ein Sch > ___ > TYPO3-german mailing list > TYPO3-german@lists.typo3.org > http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
Re: [TYPO3-german] Gibt es in ExtBase keine Mglichkeit die Exception abzufangen? Exception while property mapping
wo genau im Controller soll ich das machen? Die Exception wird geworfen, bevor die Action show aufgerufen wird. ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
Re: [TYPO3-german] Gibt es in ExtBase keine Mglichkeit die Exception abzufangen? Exception while property mapping
wie habt ihr das Problem gelöst? oder habt ihr es gar nicht??? ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german