Search the FirstSpirit Knowledge Base
Hallo,
In unserem Projekt benötigen wir auf den Seiten URLs die so aussieht: index.php?page=%page-id%
Das Problem ist das die Struktur auf dem Filesystem aber so aussehen soll: /pages/%lang%/%page-id%.html
Gibt es die Möglichkeit die zwei Prozesse voneinander zu trennen?
Viele Grüße!
Waldi
Hallo Tim,
Das ganze hat leider nicht ganz funktioniert. Erst nach den setzen von UseRegistry auf no wurden meine Funktionen die ich implementiert hab aufgerufen.
module.xml:
..
<public>
<name>EngsUrlCreator</name>
<class>de.espirit.firstspirit.generate.UrlCreatorSpecification</class>
<configuration>
<LegacyClass>de.***.***.EngsUrlCreator</LegacyClass>
<UseRegistry>no</UseRegistry>
</configuration>
</public>
..
Ich habe die Klasse UrlCreator implementiert:
public class MyUrlCreator implements UrlCreator
und benutze folgende Funktionen:
Viele Grüße!
Waldi
Ja, prinzipiell ist das möglich. Mit welcher FirstSpirit-Version soll das umgesetzt werden?
Hallo,
Die Version ist 5.1.106.61855
Du musst ein Modul implementieren, Einstiegspunkt in die API: http://www.e-spirit.com/odfs51/dev/de/espirit/firstspirit/generate/UrlCreator.html
Danke!
Habe jetzt eine Classe erstellt die von DefaultUrlCreator erbt und eine UrlFactory.
In der module.xml hab ich nun:
<!DOCTYPE module SYSTEM "lib/module.dtd">
<module>
<name>UrlCreator</name>
<version>@VERSION@</version>
<vendor>...</vendor>
<components>
<public>
<name>UrlCreator</name>
<class>de.espirit.firstspirit.ps.UrlCreator</class>
<configuration>
<UrlFactory>de.espirit.firstspirit.ps.UrlFactory</UrlFactory>
<useWelcomeFileNames>no</useWelcomeFileNames>
<removeDeleted>yes</removeDeleted>
</configuration>
</public>
</components>
<resources>
<resource>lib/@FILENAME@.jar</resource>
</resources>
</module>
Leider kann ich die Klasse jetzt aber nicht in der Liste auswählen:
Woran liegt das? Muss ich das ganze jetzt an einer anderen Stelle einstellen?
Danke!
Bitte nicht als "de.espirit.firstspirit" als Paket benutzen. Das "eine Classe erstellt die von DefaultUrlCreator erbt" ist auch keine gute Idee, bitte nur als delegate benutzen (DefaultUrlCreator ist _keine_ API).
Der Deskriptor muss so aussehen:
...
<public>
<name>your name</name>
<class>de.espirit.firstspirit.generate.UrlCreatorSpecificationImpl</class>
<configuration>
<LegacyClass>your class name</LegacyClass>
</configuration>
</public>
...
[EDIT]
Kurzer Hinweis zur Erläuterung: Die neue Schnittstelle für "Dateiname != URL" ist noch nicht freigegeben, daher hier der Weg über "LegacyClass".
Hallo Waldemar,
benötigst Du noch weitere Hilfe oder haben Dir Peters Antworten bereits geholfen? In diesem Fall wäre es super, wenn Du die "richtige Antwort" entsprechend markierst, damit auch andere Community-Teilnehmer diese auf den ersten Blick finden. Solltest Du zwischenzeitlich eine eigene Lösung gefunden haben, wäre es nett, wenn Du diese hier bereitstellst.
Viele Grüße
Tim
Hallo Tim,
Das ganze hat leider nicht ganz funktioniert. Erst nach den setzen von UseRegistry auf no wurden meine Funktionen die ich implementiert hab aufgerufen.
module.xml:
..
<public>
<name>EngsUrlCreator</name>
<class>de.espirit.firstspirit.generate.UrlCreatorSpecification</class>
<configuration>
<LegacyClass>de.***.***.EngsUrlCreator</LegacyClass>
<UseRegistry>no</UseRegistry>
</configuration>
</public>
..
Ich habe die Klasse UrlCreator implementiert:
public class MyUrlCreator implements UrlCreator
und benutze folgende Funktionen:
Viele Grüße!
Waldi