Frames mit Ordnerhierarchien realisieren

Das im Abschnitt Tabellenlayouts definieren beschriebene Layout lässt sich anstatt mit einer Tabelle auch mit Frames realisieren:

Im Basislayout (mastertemplate) im Basisordner wird zunächst das Frameset definiert:

<html>
<head>
  <title>
    <npsobj name="title" insertvalue="var"/>
  </title>
</head>

<frameset marginheight="0" framespacing="0" border="0" scrolling="no" 
          frameborder="0" rows="50, *">
 <frame src="/FRAMES/Inhalte/kopf.html" name="oben">
  <frameset cols="100,450" framespacing="0" border="0" scrolling="no"
            frameborder="0" marginwidth="0">
     <frame src="/FRAMES/Inhalte/index.html" name="links">
     <frame src="/FRAMES/Inhalte/start.html" name="rechts">
  </frameset>
</frameset>
<noframes>
  <p>Ihr Browser unterst&uuml;tzt keine Frames.</p>
</noframes>
</html>

Das Dokument /FRAMES/Inhalte/kopf enthält die Navigationsleiste für den oberen Frame, das Dokument /FRAMES/Inhalte/start wird als Startseite für den rechten Frame definiert.

Der Hauptinhalt des Ordners /FRAMES/Inhalte wird im linken Navigationsframe angezeigt. Hier kann beispielsweise eine automatisch generierte Inhaltsübersicht eingefügt werden. Dabei muss berücksichtigt werden, dass die Links in der Inhaltsübersicht und die manuell gesetzten Links mit den entsprechenden Targets versehen werden müssen:

<npsobj list="toclist">
  <npsobj target="rechts" name="self" insertvalue="anchor">
    <npsobj name="title" insertvalue="var"/>
  </npsobj>
</npsobj>

Die Layoutdatei /FRAMES/Inhalte/mastertemplate enthält die Layoutdefinition für die Hauptinhalte der im Inhaltsframe angezeigten Dateien:

<html>
  <head>
    <title>
      <npsobj name="title" insertvalue="var"/>
    </title>
  </head>

  <body>
    <npsobj name="body" insertvalue="var"/>
  </body>
</html>

Alle weiteren Dateien werden ebenfalls mit Hilfe dieser Layoutdatei exportiert, sodass ihr jeweiliger Haupttext im gleichen Inhaltsframe angezeigt wird, wenn im entsprechenden Link kein anderes Target definiert wurde.

Bitte beachten Sie bei der Konzeption eines solchen Framelayouts mit dem Content Management Server, dass die Framesets nicht innerhalb eines HTML-Bodys definiert werden dürfen, also keinesfalls in einem Dokument oder einem Ordner und auch nicht in einer Layoutdatei, die in einem Dokument oder einem Ordner referenziert wird. Dies würde dazu führen, dass die Frameset-Definition auch auf die Seiten des Content Navigators angewendet wird.

Wenn Sie mehrere Framesets verwenden, können Sie sie einzeln in den Basislayouts der jeweiligen Unterordner ablegen. Alternativ können mehrere Framesets in einem globalen Basislayout definiert sein, wobei jedes dieser Framesets von einer vergleichenden Abfrage auf einen Feldwert umschlossen wird. Dies ermöglicht den Redakteuren, ein Frameset zu ihrem Dokument festzulegen, indem sie das Feld mit dem entsprechenden Wert belegen.

Wenn Sie das Aussehen der Website mit der Vorschau des Content Management Servers überprüfen, muss wenigstens einmal im Vorschaufenster das komplette Frameset geladen worden sein, weil die Vorschau bei einer untergeordneten Datei nur den Haupttext der Datei ohne die umgebenden Frames anzeigt.