- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Seite in Navigation ausblenden, wenn nicht generiert
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
- Labels:
-
Developers
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Daniel,
wie wird denn aktuell festgelegt bzw. gesteuert, welcher der jeweiligen Ordner generiert wird?
Viele Grรผรe
Michael
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
รber zwei unterschiedliche Deploymentauftrรคge.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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

