[Typo3-UG Oesterreich] Realurl sysfolder ausblenden

Jakob Kristoferitsch e0326697 at student.tuwien.ac.at
Tue Aug 30 00:22:46 CEST 2005


Wolfgang Klinger <wolfgang at stufenlos.net> wrote:

> Jakob Kristoferitsch schrieb folgendes am 29.08.2005:
>> Gibt es eine Möglichkeit Realurl dazu zu bringen Sysfolder nicht
anzuzeigen?
>> Ich hab's schon mit excludePageIds versucht, das exkludiert aber nur die
>> Ordner selbst, nicht die Untereinträge.

> Das wollte ich schon länger mal machen, kann nicht so schwer sein, aber
> bis jetzt hatte ich noch keine Zeit... 

Jaja, wenn man immer die Zeit hätte die Dinge zu tun die man gerade tun möchte
;-).
 
> Du nimmst dir class.tx_realurl_advanced.php als Beispiel und
> implementierst deine eigenen Methoden
>    - IDtoPagePath
>    - pagePathtoID
> und läßt dabei div. Ordner einfach aus...

Danke für die Hinweise, hab' mir das Leben aber einfacher gemacht, siehe ein
paar Zeilen weiter unten

> ev. demnächst...
oder etwas schneller:
Introducing tx_realurl_jk (vollständiges file auf
http://stud4.tuwien.ac.at/~e0326697/tx_realurl_jk.zip bitte testen!)
Verwendung: Die Datei in den RealUrl ordner kopieren und in der localconf.php
bei:
'pagePath' => array(
		'type' => 'user',
		'userFunc' =>
'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',

statt class.tx_realurl_advanced class.tx_realurl_jk einfügen (2 mal).

Wie funktionierts:
Wenn eine Url erzeugt wird, wird überprüft ob in der Rootline ein Element ist
das nicht hinein soll (also entweder einen doktype oder eine pid hat der/die
exkludiert werden soll) wird es (in der Funktion removeFromRootline() ) aus
der Rootline entfernt. Die Rootline wird danach wieder "gefixt" (pid des
Kindes = pid des entfernten Elements, Array Indexes werden umkopiert). Der
Aufruf von removeFromRootline() erfolgt in IDtoPagePathSegments().

Beim dekodieren einer URL wird in searchTitle_searchPid() ein Datenbankaufruf
entfernt und stattdessen getRowsForPidSearch() aufgerufen. Das führt den
Datenbankaufruf durch und kopiert das ergebniss in $rows[] das dann
zurückgegeben wird. Währenddessen sucht es auch nach doktypes/pids die
entfernt wurden. Findet es einen kopiert es alle Kinder dieses Elements
ebenfalls in $rows[].

Das ist eine "works for me" Lösung. Ich habe sie bis jetzt nur in der
Standardkonfiguration bei einer relative einfachen Seite getestet. Es sollte
aber eigentlich überall funktionieren wo es realurl auch tut. Probleme könnte
es geben wenn ein exkludierter Eintrag einen Untereintrag hat der gleich
heißt. In diesem Fall könnte es helfen 'excludeIfLast' auf true zu setzen (Das
ist dafür zuständig das die letzten Einträge auf keinen Fall entfernt werden).

lg,
Jakob





More information about the TYPO3-at mailing list