Questions & Answers

SOLVED
daniel_philippi
Occasional Collector

Seite in Navigation ausblenden, wenn nicht generiert

Jump to solution

Hallo zusammen.

Wie kann ich in einer Navigationsfunktion prรผfen, ob eine Seite im Auftrag generiert wird oder nicht und dann einen Link schreiben oder eben nicht.

Hintergrund ist, dass ein Ordner mit zwei Unterordnern publiziert werden soll. Jedoch auf zwei getrennte Webspaces und in jeden Webspace nur einer der Unterordner. In der Navigation soll aber nur der Unterordner verlinkt sein, der auch publiziert wird. Der andere liefert ja einen 404 Fehler zurรผck.

GruรŸ,

Daniel

0 Kudos
1 Solution

Accepted Solutions

Hallo Daniel,

das Nutzen von Strukturvariablen ist hier schon der รผbliche Weg - zumindest wenn ich es richtig verstehe, dass ihr die entsprechende Variable nutzt um den Root-Knoten fรผr die Navigation festzulegen:

<CMS_VALUE_PARAM name="root" value="ss_navRoot" />

Die Idee mit dem #nav.isGenerated mag auf den ersten Blick "einfach" erscheinen, hรคtte aber meiner Meinung nach einige Fallstricke und versteckte Komplexitรคt. Zum einen bezieht sich die Navigation ja auf Menรผebenen (=Ordner), generiert werden aber Seitenreferenzen. AuรŸerdem werden Teilgenerierungen รผberwiegend eher zur Generierung von Teilen einer Website genutzt. Dann mรผsste theoretisch auch noch berรผcksichtigt werden, ob die Generierung einzelner Seiten per $CMS_SET(#global.stopGenerate, true)$ unterbunden wird. Gerade letzteres wรคre gar nicht mรถglich, weil diese Information ja erst wรคhrend der Generierung der jeweiligen Seite verfรผgbar ist - da wurden die anderen Seiten aber schon erzeugt...

Viele GrรผรŸe

Michael

View solution in original post

0 Kudos
6 Replies
mbergmann
Crownpeak employee

Hallo Daniel,

wie wird denn aktuell festgelegt bzw. gesteuert, welcher der jeweiligen Ordner generiert wird?

Viele GrรผรŸe

Michael

0 Kudos

รœber zwei unterschiedliche Deploymentauftrรคge.

0 Kudos

Hallo Daniel,

wie wird das denn in diesen Auftrรคgen genau gesteuert? "Ganz klassisch" durch die Angabe der Startknoten oder habt ihr da ein "stopGenerate"-Konstrukt im Template, evtl. รผber Generierungsvariablen?

Geht es hier wirklich nur um zwei spezielle Ordner oder braucht ihr das an mehreren Stellen? Vielleicht wรคre hier ein Screenshot aus der Strukturverwaltung hilfreich um das beurteilen zu kรถnnen.

Eine Idee wรคre z.B. vor der Generierung ein Skript laufen zu lassen was jeweils das "Im Navigationsmenรผ anzeigen" passend umschaltet. Man kann natรผrlich auch eine (wohl nicht ganz triviale) Abfrage in der Nav-Funktion selbst machen - mรผsste dabei aber wohl einiges berรผcksichtigen.

Viele GrรผรŸe

Michael

0 Kudos

Beispiel:

In der Struktur sind 2 Ordner auf oberster Ebene. Darin enthalten sind weitere Ordner und Seiten, quasi 2 Teilbรคume.

Diese sollen nun unabhรคngig voneinander auf zwei verschiedene Webspace deployed werden. Dabei soll aber die Navigation des Einen nicht in der Navigation des Anderen auftauchen.

Fรผr das Deployment gibt es dann zwei separate Aufrรคge, die als Startknoten den jeweilgen Ordner nutzen.

Was wir nun gemacht haben ist, dass wir den Startordner zusรคtzlich in einer Strukturvariablen speichern und in der Navigationsfunktion abfragen. Hier wรคre es aber einfacher gewesen, nur die Seiten in der Navigation anzuzeigen, die auch generiert werden, alle anderen nicht. So etwas wie #nav.isGenerated.

GruรŸ,

Daniel

0 Kudos

Hallo Daniel,

das Nutzen von Strukturvariablen ist hier schon der รผbliche Weg - zumindest wenn ich es richtig verstehe, dass ihr die entsprechende Variable nutzt um den Root-Knoten fรผr die Navigation festzulegen:

<CMS_VALUE_PARAM name="root" value="ss_navRoot" />

Die Idee mit dem #nav.isGenerated mag auf den ersten Blick "einfach" erscheinen, hรคtte aber meiner Meinung nach einige Fallstricke und versteckte Komplexitรคt. Zum einen bezieht sich die Navigation ja auf Menรผebenen (=Ordner), generiert werden aber Seitenreferenzen. AuรŸerdem werden Teilgenerierungen รผberwiegend eher zur Generierung von Teilen einer Website genutzt. Dann mรผsste theoretisch auch noch berรผcksichtigt werden, ob die Generierung einzelner Seiten per $CMS_SET(#global.stopGenerate, true)$ unterbunden wird. Gerade letzteres wรคre gar nicht mรถglich, weil diese Information ja erst wรคhrend der Generierung der jeweiligen Seite verfรผgbar ist - da wurden die anderen Seiten aber schon erzeugt...

Viele GrรผรŸe

Michael

0 Kudos
NMc
Crownpeak employee
Crownpeak employee

Hallo Daniel,

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

Nico

0 Kudos

Type a product name