Questions & Answers

SOLVED
CNoetzel
Elite Observer

Tote Links zur Generierungszeit ermitteln

Jump to solution

Hallo werte FirstSpirit-Community,

ich stehe derzeit vor dem folgenden Problem. Seiten sollten fรผr einen bestimmten Zeitraum online gestellt (generiert) werden und nach diesem Zeitraum wieder verschwinden (nicht mehr generiert werden).

Hierfรผr habe ich in der Seitenvorlage entsprechende Eingabeelemente erstellt (pt_validFrom=Startdatum sowie pt_validTo=Enddatum) und prรผfe im HTML-Ausgabe Kanal der Seite ob zum Zeitpunkt der Generierung (#global.now) die Seite generiert werden sollte oder nicht. Wenn das Startdatum noch nicht erreicht, oder aber das Enddatum bereits รผberschritten wurde, wird die Generierung der Seite mit  $CMS_SET(#global.stopGenerate, true)$ abgebrochen.

$CMS_IF((!pt_validFrom.isEmpty && (pt_validFrom > #global.now)) || (!pt_validTo.isEmpty && (#global.now > pt_validTo)))$

    $CMS_SET(#global.stopGenerate, true)$

$CMS_END_IF$

So weit, so gut! Die Seiten die nicht generiert werden sollen, landen erwartungsgemรครŸ nicht in der Ordner-Struktur des Staging.

Nun ist es aber so, dass es noch - sei es รผber die Navigation oder รผber eine Verweisvorlage hinzugefรผgte - Links geben kann, die aufgrund fehlender generierter HTML-Seiten ins nichts (Error: 404) fรผhren. Der CMS-Parameter "suppressEmptyFolders" der Navigations-Funktion scheint nur bei Menรผebenen zu greifen, in denen keine Seitenreferenz hinterlegt ist, nicht aber bei dem generierten output wo die Zielordner leer sind Smiley Sad.

Daher meine Frage: Habe ich die Mรถglichkeit zur Generierungszeit zu รผberprรผfen, ob die Zieldatei auf die ein Link verweist, existiert? Ich habe ja Zugriff auf das #nav Systemobjekt. Dann kรถnnte ich die entsprechende Verweisvorlage fรผr interne Links anpassen und auch in der Navigations-Funktion entsprechende Vorkehrungen treffen.

Oder ist mein Vorgehen vรถllig absurd und ich sollte die Problemstellungen auf eine andere Art und Weise lรถsen?

Fรผr Rรผckmeldungen und Codebeispiele bin ich sehr dankbar.

GrรผรŸe

Carsten

0 Kudos
1 Solution

Accepted Solutions

Vielen Dank, dieser Hinweis hat mich auf die richtige Fรคhrte gebacht!

#nav.node.getPage.getFormData.get(#global.project.masterLanguage, "pt_validFrom")

Damit lรคsst sich auf die Formular-Daten zugreifen und ich komme an die Information zur Gรผltigkeit einer Seite heran. Smiley Happy

View solution in original post

0 Kudos
4 Replies
Peter_Jodeleit
Crownpeak employee

Daher meine Frage: Habe ich die Mรถglichkeit zur Generierungszeit zu รผberprรผfen, ob die Zieldatei auf die ein Link verweist, existiert?

Dann wรคre man ja in der Generierung abhรคngig von der Reihenfolge, in der die Elemente generiert werden. Sinnvoller wรคre es, die Prรผfung auf den Gรผltigkeitszeitraum auch in der Navigations-Funktion durchzufรผhren.

Peter
0 Kudos

Dann wรคre man ja in der Generierung abhรคngig von der Reihenfolge, in der die Elemente generiert werden.

Ah, sowas habe ich befรผrchtet.

Habe ich denn die Mรถglichkeit รผber das #nav Objekt bzw. รผber eine TargetReference (welche mir die FS_REFERENCE-Eingabekomponente liefert) auf die Werte von "pt_validFrom" bzw. "pt_validTo" zuzugreifen?

Ich wรผrde dann in der Navigationsfunktion, sowas verwenden.

<CMS_ARRAY_ELEMENT>

     $CMS_IF(PRรœFUNG_MIT_ZUGRIFF_AUF_pt_validFrom_UND_pt_validTo)$

          <!-- keinen Link erzeugen, da Seite nicht gรผltig -->

     $CMS_ELSE$

          <![CDATA[<a class="unselected" href="$CMS_REF(#nav.ref)$">$CMS_VALUE(#nav.label.convert2)$</a><br />]]>

     $CMS_END_IF$

</CMS_ARRAY_ELEMENT>

Bei mir hakt es im Moment noch am Zugriff auf die in der Seitenvorlage definierten Werte fรผr "pt_validFrom" und "pt_validTo" innerhalb der Navigationsfunktion.

0 Kudos

#nav.node liefert den Knoten in der Struktur-Verwaltung (Typ PageRef). Ab da sollte die API-Doc weiterhelfen..

Peter

Vielen Dank, dieser Hinweis hat mich auf die richtige Fรคhrte gebacht!

#nav.node.getPage.getFormData.get(#global.project.masterLanguage, "pt_validFrom")

Damit lรคsst sich auf die Formular-Daten zugreifen und ich komme an die Information zur Gรผltigkeit einer Seite heran. Smiley Happy

0 Kudos

Type a product name