mona_ketterer
I'm new here

Seite unter anderer, pflegbarer URL verlinken als generierter Dateiname?

Jump to solution

Hallo,

ich möchte gerne Seiten unter einer anderen URL verlinken als unter dem generierten Dateinamen - dazu habe ich eine grobe Idee zur Umsetzung, würde aber gern mal in der Community horchen, ob das so plausibel klingt oder es da vielleicht elegantere Ansätze gibt Smiley Happy

Die verwendete Version ist FS5.0 R3

Ziel:

Seite A wird unter dem von der URLFactory generierten Dateinamen /de/beispiel.html erzeugt und geschrieben und liegt nach Generierung im Stagingsystem unter eben diesem Namen im Dateisystem.

Alle Links und Referenzen, die FS auf diese Seite generiert, gehen aber auf /komplett/anderer/pfad/und.endung, diese URL soll vom entsprechend berechtigten Redakteur pro Seite eingegeben werden können.

Wo der Redakteur diese Eingabe macht, wird dies als URL verwendet, dort wo nicht, wird die URL standardmäßig durch die URLFactory generiert.

(Hintergrund: Bei ausgewählten Seiten soll auf dem Zielsystem eine spezielle Serverkonfiguration greifen, die von der URL abhängig ist, und entsprechend aufgebaut sein soll.)

Soweit ich das hier in der Community nachverfolgt habe, war die Erzeugung eines jeweils voneinander unabhängigen Dateinamens und URL in FS4 mit einem eigenen URLCreator noch möglich, in FS5 mit der URLFactory gibt es nur noch die Methode getUrl, nicht mehr getFilename() (den entsprechenden Featurerequest habe ich schon gesehen und dafür gestimmt Smiley Happy)

Ich habe mit FS4 nicht gearbeitet, aber habe es so verstanden dass ich auch in FS5 noch den URLCreator verwenden kann, so könnte man also zumindest diesen Punkt noch umsetzen.

Ich würde also wie folgt vorgehen:

- Metadaten für Seiten/Struktur erweitern um ein neues Feld "verlinkte URL" (besserer Name fällt mir gerade nicht ein...), so dass Redakteur die Möglichkeit hat, darüber die URL zu pflegen - muss natürlich entsprechend validiert werden

- URLCreator schreiben, dort aus den Metadaten auslesen, ob eine eigene "verlinkte URL" definiert ist, wenn ja diese für getURL zurückgeben, wenn nein, die Standardfunktionalität verwenden und den Default-URLCreator entscheiden lassen, welche URL generiert wird

Würde das prinzipiell funktionieren?

Was mir bei dem Ansatz nicht wirklich gefällt ist die Verwendung des URLCreator aus einer alten FS-Version, von dem ich nicht sicher bin, wie lange es noch funktioniert.

Verliere ich damit außerdem die Möglichkeiten der AdvancedURLFactory - ich kann mit einer eigenen URLFactory ja die AdvancedFactory beerben und damit deren Standardfunktionalität selektiv überschreiben, aber mit einem URLCreator aus FS4, kann ich damit noch für den "Default"-Fall, also wenn keine eigene "verlinkte URL" definiert ist, irgendwie auf die Standardfunktionalität der AdvancedURLFactory zugreifen? Da die API der beiden nicht wirklich zueinanderpasst würde ich fast vermuten nein - oder?

Gibt es mit"reinen" FS5 Mitteln eventuell andere, vielleicht sogar einfachere Möglichkeiten, so eine Anforderung umzusetzen? Evtl. über die SEO-URLs oder externe URLs?

Vielen Danke schonmal im Voraus und viele Grüße

Mona Ketterer

0 Kudos
1 Solution

Accepted Solutions
mona_ketterer
I'm new here

Hallo,

wir haben ein wenig mit den getFilename() Methoden experimentiert, das hat dann aber doch nicht ganz so gepasst wie wir uns das vorgestellt haben und die Anforderungen hatten sich auch nochmal geändert, so dass wir es nun doch anders gelöst haben

Ursprünglich sollte ja für eine Seite, die in der Struktur z. B. unter /de/beispiel aufgehängt ist wie folgt verarbeitet werden:

generierte Datei: /de/beispiel.html

Verlinkungen gehen auf: /anderer/pfad/und.endung

Nun haben wir folgendes Ergebnis:

generierte Datei 1: /anderer/pfad/und.endung

generierte Datei 2: /de/beispiel.html

Verlinkungen gehen auf: /anderer/pfad/und.endung

Umgesetzt haben wir das ganze über eine Kombination aus angepasster UrlFactory (diese liest in einem Metadatenfeld der Seite die gewünschte URL aus und verwendet dann eben diese statt Verzeichnis+displayName als URL).

Also z. B. "/anderer/pfad/und.endung" als Metadatenfeldwert => getUrl(...) liefert diesen Wert zurück so dass alle Verlinkungen so lauten und auch eine Datei mit diesem Pfad generiert wird.

Zusätzlich tragen wir "/de/beispiel.html" als Kurz-URL zu dieser Seite ein, die dann dazu führt dass unter "/de/beispiel.html" eben nochmal eine zusätzliche Datei generiert wird, aber dieser Name halt nicht verlinkt wird. Hat im Gegensatz zur Variante mit getFilename den Vorteil, dass die Verlinkungen auch auf Integrationssystemen funktioniert, die keine entsprechende Serverkonfiguration haben um zu wissen dass /anderer/pfad/und.endung eigentlich etwas ganz anderes ausliefern soll, da dann einfach die ebenfalls generierte /anderer/pfad/und.endung ausgeliefert wird.

Den Featurerequest um getFilename offiziell der FS 5 API hinzuzufügen möchte ich natürlich trotzdem nicht missen, nur in unserem Fall hat es am Ende eben doch nicht ganz gepasst.

Viele Grüße

Mona

View solution in original post

0 Kudos
4 Replies
Peter_Jodeleit
Crownpeak employee

Soweit ich das hier in der Community nachverfolgt habe, war die Erzeugung eines jeweils voneinander unabhängigen Dateinamens und URL in FS4 mit einem eigenen URLCreator noch möglich, in FS5 mit der URLFactory gibt es nur noch die Methode getUrl, nicht mehr getFilename() (den entsprechenden Featurerequest habe ich schon gesehen und dafür gestimmt Smiley Happy)

Der Link zum Featurerequest: UrlFactory neue Methoden getFilename

Peter
0 Kudos

Bei mir funktioniert der Link nicht richtig, deshalb hier nochmal der Link:

UrlFactory neue Methoden getFilename

0 Kudos

Hallo Mona,

erwartest du hier noch weitere Antworten oder konnten die gegebenen Antworten bereits weiterhelfen?

Solltest du zwischenzeitlich eine eigene Lösung gefunden haben, wäre es super, wenn du diese hier bereitstellst.

Viele Grüße

Michaela

0 Kudos
mona_ketterer
I'm new here

Hallo,

wir haben ein wenig mit den getFilename() Methoden experimentiert, das hat dann aber doch nicht ganz so gepasst wie wir uns das vorgestellt haben und die Anforderungen hatten sich auch nochmal geändert, so dass wir es nun doch anders gelöst haben

Ursprünglich sollte ja für eine Seite, die in der Struktur z. B. unter /de/beispiel aufgehängt ist wie folgt verarbeitet werden:

generierte Datei: /de/beispiel.html

Verlinkungen gehen auf: /anderer/pfad/und.endung

Nun haben wir folgendes Ergebnis:

generierte Datei 1: /anderer/pfad/und.endung

generierte Datei 2: /de/beispiel.html

Verlinkungen gehen auf: /anderer/pfad/und.endung

Umgesetzt haben wir das ganze über eine Kombination aus angepasster UrlFactory (diese liest in einem Metadatenfeld der Seite die gewünschte URL aus und verwendet dann eben diese statt Verzeichnis+displayName als URL).

Also z. B. "/anderer/pfad/und.endung" als Metadatenfeldwert => getUrl(...) liefert diesen Wert zurück so dass alle Verlinkungen so lauten und auch eine Datei mit diesem Pfad generiert wird.

Zusätzlich tragen wir "/de/beispiel.html" als Kurz-URL zu dieser Seite ein, die dann dazu führt dass unter "/de/beispiel.html" eben nochmal eine zusätzliche Datei generiert wird, aber dieser Name halt nicht verlinkt wird. Hat im Gegensatz zur Variante mit getFilename den Vorteil, dass die Verlinkungen auch auf Integrationssystemen funktioniert, die keine entsprechende Serverkonfiguration haben um zu wissen dass /anderer/pfad/und.endung eigentlich etwas ganz anderes ausliefern soll, da dann einfach die ebenfalls generierte /anderer/pfad/und.endung ausgeliefert wird.

Den Featurerequest um getFilename offiziell der FS 5 API hinzuzufügen möchte ich natürlich trotzdem nicht missen, nur in unserem Fall hat es am Ende eben doch nicht ganz gepasst.

Viele Grüße

Mona

0 Kudos