Re: [TYPO3-german] Gibt es in ExtBase keine Mglichkeit die Exception abzufangen? Exception while property mapping

2018-01-10 Diskussionsfäden Birgit
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

2018-01-10 Diskussionsfäden 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

2018-01-10 Diskussionsfäden 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

Re: [TYPO3-german] Gibt es in ExtBase keine Mglichkeit die Exception abzufangen? Exception while property mapping

2018-01-10 Diskussionsfäden Birgit
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

2018-01-10 Diskussionsfäden 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

Re: [TYPO3-german] Gibt es in ExtBase keine Mglichkeit die Exception abzufangen? Exception while property mapping

2018-01-10 Diskussionsfäden Birgit
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

2018-01-10 Diskussionsfäden Hagen Gebauer

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

2015-12-26 Diskussionsfäden Alexander Averbuch

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

2015-12-24 Diskussionsfäden Philipp Gampe
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

2015-12-23 Diskussionsfäden 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

Re: [TYPO3-german] Gibt es in ExtBase keine Mglichkeit die Exception abzufangen? Exception while property mapping

2015-12-23 Diskussionsfäden Nicole Cordes
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

2015-12-23 Diskussionsfäden Alexander Averbuch
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

2015-12-23 Diskussionsfäden Alexander Averbuch

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