Zum Inhalt springen

Extbase Real-URL

Erstellt am 23. Mai 2016 · 3 Antworten · letzte Antwort am 7. Juli 2016

Tags: Extbase, Frage

hannenz ·

Hallo zusammen.
Ich habe eine Extension mit Extbase geschrieben, die eine Detailansicht beinhaltet. Dafür sollen nun sprechende URLs zum Einsatz kommen.
Kann mir einer vielleicht einen Tipp geben, in welche Richtung ich schauen muß, eine Google-Suche blieb erfolglos und auch meine beiden Bücher (P. Lobacher, und Rau/Kurfürst/Helmich) zum Thema Extbase-Entwicklung schweigen sich hier aus.

Vielen Dank schon mal.

Edit: Ich bin auf TYPO3 7.6.4

hannenz ·

Vielen Dank. Den Link kannte ich schon, bringt mich aber auch nicht wirklich weiter leider. (Witzig finde ich aber die URL in diesem Zusammenhang - alles andere als »sprechend« ;-) )

Dann mal etwas konkreter:
Meine Extension heisst (blöderweise) tt_news (ich weiß, das ist keine gute Idee, da es schon eine mehr oder weniger offizielle »tt_news« gibt, aber so ist es jetzt nun einemal).

Die Extension hat ein Model "Post" und entsprechend einen "PostController". Ansonsten nix exotisches / Besonderes.

In der Datei typo3conf/realurl_conf.php steht:

$TYPO3_CONF_VARS['EXTCONF']['realurl']['_DEFAULT'] = array(
        ...
	'postVarSets' => array(
		'_DEFAULT' => array(
    		'tt_news' => array(
		      array(
		        'GETvar' => 'tx_ttnews_ttnewsfe[controller]',
		        'valueMap' => array(
		          'aktuelles' => 'Post' # Die erstellten Controller
		        ),
		        'noMatch' => 'bypass',
		      ),
		      array(
		        'GETvar' => 'tx_ttnews_ttnewsfe[action]',
		        'valueMap' => array(
		          'detail' => 'show', # Die erstellten Actions
		        ),
		        'noMatch' => 'bypass',
		      ),
		      array(
		        'GETvar' => 'tx_ttnews_ttnewsfe[Post]',
		        'lookUpTable' => array(
		          'table' => 'tx_ttnews_domain_model_post',
		          'id_field' => 'uid',
		          'alias_field' => 'title',
		          'addWhereClause' => ' AND NOT deleted',
		          'useUniqueCache' => 1,
		          'useUniqueCache_conf' => array( 
		            'strtolower' => 1,
		            'spaceCharacter' => '-' 
		          ) 
		        ),
		      ), 
		    ),	
            ...

(Die komplette realurl_conf.php habe ich angehängt EDIT: Datei-Upload scheint nicht zu funktionieren..??!?)

Real-URL (1.13.4)ist folgendermaßen konfiguriert:

Path to configuration file: typo3conf/realurl_conf.php
Enable automatic configuration: Enabled
Automatic configuration file format: PHP Source
Enable devLog: Disabled
Store URL for cHash cache: Disabled

In der Listenansicht steht folgender Link im Fluid-Template:

<f:link.action pageUid="146" action="show" arguments="{post : post}" class="read-more">

Passieren tut einfach gar nix, die Links sind immer in der Form

http://example.com/aktuelles/news/post-detail/?tx_ttnews_ttnewsfe%5Bpost%5D=17&tx_ttnews_ttnewsfe%5Baction%5D=show&tx_ttnews_ttnewsfe%5Bcontroller%5D=Post&cHash=0ebfeec5678091fd918b61f23a21c048

Auf der restlichen Wesbite ist Real-URL eingerichtet und funktioniert auch auf den "normalen" Seiten.

Auf der Seite /aktuelles/news ist das FE-Plugin meiner tt_news Extension.

Orientiert habe ich mich hauptsächlich an dieser Seite: http://coding.musikinsnetz.de/typo3-extbase-fluid/frontend-plugins/speaking-urls-for-your-plugins

Was könnte noch von Belang sein?

Vielen Dank schon mal...

webfacer ·

Hi,

hast du schon hierzu eine Lösung. Habe das selbe Problem, dass ich eine Extension erstellt habe. In meinem Fall heißt die Extension einfach "Demo".

Was nun zwar klappt ist das die indexAction greift (leider auf jeder einzelnen Seite). Jedoch die URL falsch generiert wird wenn vom TYP Extension. Bei Pages Klappt es die von Backend aus generiert worden sind.

Nun zum Problem wenn ich per <a href="<f:uri.action action="detail" />">test</a> erstellt er mir zwar den richtigen Link, jedoch greift es nicht bei RealURL sodass ich diesen link hier erzeugt bekomme :
?tx_demo_demo%5Baction%5D=detail&tx_demo_demo%5Bcontroller%5D=Demo&cHash=4d7eb332223d245d43dda5129af573ee
Der Link ist zwar richtig aber nicht von RealURL formatiert wie es sich gehört.
Wie oben beschrieben sollte es eine RealURL sein die jedoch nicht umformatiert wird. Vielleicht hast du ja bereits eine Lösung und kannst mir weiterhelfen, wie ich diese richtig konfiguriere.

Ich nutze TYPO3 v7.6.9 würde gern die neue Konfiguration dafür herziehen. Bitte um hilfe.

Und noch eine frage zu RealURL. Wie sage ich, dass die die indexAction vom DemoController erst dann greifen soll wenn auch die url "www.example.com/demo" aufgerufen wird? Derzeit wird das routing vom DemoController nicht wircklich wie ein MVC-Pattern Controller behandelt, sonder wirkülich durch die Bank aufgerufen xD