Questions & Answers

SOLVED
rkurz
Elite Observer

Wird eine URL bei stopGenerate vergeben?

Jump to solution

Hallo zusammen,

es geht um FS 5.0.510.

Wir nutzen eine URLFactory auf Basis der AdvancedUrlFactory.

Bei zwei Seitenreferenzen mit Content-Projektion mit der gleichen Abfrage steuern wir mittels bestimmter Kriterien, ob eine Seite generiert werden soll oder nicht (stopGenerate).

Daher kommt es vor, dass Seiten die gleiche URL bekommen - was in unserem Fall so sein soll!

Es scheint also so, dass die URL bei einen stopGenerate trotzdem vergeben wird - ist das richtig so?

Wenn ja, was kรถnnen wir tun, um die URL freizugeben?

Die Persistenz kรถnnen wir nicht abschalten, da wir SEO-/Kurz-URLs nutzen.

Danke fรผr Eure Antworten!

1 Solution

Accepted Solutions
j_mueller
Elite Observer

Hi Ralph,

also die URL wird ja bereits vergeben und gespeichert, wenn das Element (bzw. die Seite in Verbindung mit der ContentId) von woanders nur referenziert ist. Dazu spielt es keine Rolle, ob die Seite spรคter generiert wird oder per stopGenerate eben nicht generiert wird.

Wir hatten da mal ein รคhnliches Problem: https://community.e-spirit.com/message/17392#17392

Die URLs kann man รผber Rechtsklick -> Extras -> Gespeicherte URLs zurรผcksetzen.

Ich glaube aber ohne persistenz kรถnnte alles funktionieren, wie vorher auch. Die URLs werden davon ja an sich nicht beeinflusst (es sei denn Elemente heiรŸen gleich). Man verliert halt durch die fehlende Persistenz die Mรถglichkeit seiten umzubenennen und dennoch die alten URLs zu behalten.

Schรถne GrรผรŸe

Julius

View solution in original post

0 Kudos
8 Replies
j_mueller
Elite Observer

Hi Ralph,

also die URL wird ja bereits vergeben und gespeichert, wenn das Element (bzw. die Seite in Verbindung mit der ContentId) von woanders nur referenziert ist. Dazu spielt es keine Rolle, ob die Seite spรคter generiert wird oder per stopGenerate eben nicht generiert wird.

Wir hatten da mal ein รคhnliches Problem: https://community.e-spirit.com/message/17392#17392

Die URLs kann man รผber Rechtsklick -> Extras -> Gespeicherte URLs zurรผcksetzen.

Ich glaube aber ohne persistenz kรถnnte alles funktionieren, wie vorher auch. Die URLs werden davon ja an sich nicht beeinflusst (es sei denn Elemente heiรŸen gleich). Man verliert halt durch die fehlende Persistenz die Mรถglichkeit seiten umzubenennen und dennoch die alten URLs zu behalten.

Schรถne GrรผรŸe

Julius

0 Kudos

Hi Julius,

danke fรผr Deine Antwort.

ja, so scheint es sich leider zu bestรคtigen, dass die URL "weg" ist. Danke fรผr den Link.

Wir hรคtten halt gerne zum Generierungszeitpunkt, dass die URL nicht vergeben bzw. "รผberschrieben" werden kann, daher bringt uns das nachtrรคgliche Resetten nichts.

GruรŸ

Ralph

0 Kudos

Hi Ralph,

ich fasse nochmal zusammen, damit ich euer Problem richtig verstehe:

Zwei Content-Projektionsseiten mit unterschiedlichen Abfragen. Aus den bereits gefilterten Entities soll jedoch nur ein Teil der Seiten generiert werden. Da nun zumindest fรผr einen Teil der Entities von beiden Seiten URLs generiert werden, kann es passieren, dass einige Seiten also automatisch ein Suffix erhalten, z.B. so:

/name-of-entity.html (stopGenerate)

/name-of-entity-2.html (kein stopGenerate)

Ist das richtig?

Vielleicht gibt es noch ein paar andere Lรถsungsansรคtze.

Kรถnnt ihr die Abfrage so erweitern, dass wirklich nur die Datensรคtze zur Generierung herangezogen werden, die auch tatsรคchlich generiert werden sollen?

Alternativ wรผrde ich die URLs per Skript wรคhrend der Generierung zurรผcksetzen. Ihr kรถnntet also im Generierungsauftrag ein Skript einbinden, was das vor Generierung der Seite erledigt. Oder evtl. auch in der Datenbankvorlage etwas in der Art einbauen:

$CMS_IF(#cs.isFirstContentRow)$

    $CMS_RENDER(script:"reset_stored_urls", node:#global.node)$

$CMS_END_IF$

Ein Snippet, wie das per Skript funktioniert gibt es hier: https://community.e-spirit.com/message/15933

Eine weitere Option wรคre einen eigenen URL-Creator zu implementieren. Das ist natรผrlich mehr Arbeit, aber man bleibt auch flexibler. Wir haben diesen Weg gewรคhlt, als es noch keine SEO-URLs in FirstSpirit gab.

Schรถne GrรผรŸe

Julius

0 Kudos

Hallo Julius,

ohne es wirklich getestet zu haben: Die URL erst wรคhrend der Generierung des Objektes selber zu lรถschen wird ggf. problematisch sein, da die URL ja auch schon bei der Generierung anderer Seiten, die auf diese verweisen erzeugt wird wie Du selbst schreibst.

Besser wรคre es, ein der Generierung vorgelagertes Skript zu verwenden um diesen Fall zu behandeln - wenn man die entsprechenden Kriterien schon vorher auswerten kann. Man kann die storedUrl ja auch per API setzen.

Vielleicht wรคre aber die Verwendung von Dokumentengruppen eine Alternative, in die man dann alle entsprechenden Detailseiten legt und dann nicht mit einem stopGenerate sondern mit einem groรŸen $CMS_IF$ zu arbeiten?

Viele GrรผรŸe

Michael

Hallo Julius, Hallo Herr Bergmann,

vielen Dank fรผr die Ideen und Anregungen.

@Julius: Ja, wir kรถnnen ganz genau festlegen, anhand einer Abfrage, welche Entities/Seiten generiert werden sollen und welche nicht - sodass keine URL doppelt vorkommt.

Einen URL-Creator haben wir implementiert (auf Basis des Advanced URL-Creators). Jedoch weiรŸ ich gerade nicht, was uns der in dieser Situation bringen soll, ohne dass wir viel Logik an vielen Stellen verbauen mรผssten.

@Herr Bergmann: Danke fรผr die Anregung mit der Dokumentengruppe. Wir schauen uns das mal an.

Viele GrรผรŸe

Ralph Kurz

0 Kudos

Hallo,

stimmt, im Template selbst, sollte man die URLs wohl nicht resetten. Das mit dem Setzen der URL klingt interessant, das war mir so auch noch nicht bekannt.

@Ralph: Dann klingt das mit der Abfrage eigentlich am Sinnvollsten - oder ich verstehe den Ansatz mit der Dokumentgruppe noch nicht. Darรผber kann man ja 'nur' den 'richtigen' Link zu den Seiten generieren. Wenn die URLs aber wie du sagst so oder so identisch sind, gibt es ja praktisch keinen Unterschied.

AuรŸerdem muss ja die Seite selbst generiert werden, was unabhรคngig von der Dokumentengruppe ist und auch wieder das gleiche Problem erzeugt.

...oder ich fasse da jetzt was falsch auf. :smileyconfused:

Aber im Endeffekt auch nicht so schlimm, solange ihr es richtig versteht.

Schรถne GrรผรŸe

Julius

pavone
I'm new here

Hallo Ralph,

benรถtigst Du noch weitere Hilfe oder haben Dir die gegebenen 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

0 Kudos

Hallo Tim

die Frage, ob eine URL vergeben wird, ist beantwortet und habe sie entsprechend markiert.

Eine Lรถsung habe ich noch nicht nachbauen kรถnnen.

Danke fรผr die Antworten an Julius und Herrn Bergmann!

0 Kudos

Type a product name