Implement Frames with Folder Hierarchies

The layout described in the section Define Table Layouts can also be realized with frames instead of with a table:

The frameset is first defined in the base layout (normally mastertemplate) in the base folder:

<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/content/head.html" name="top">
  <frameset cols="100,450" framespacing="0" border="0"
            scrolling="no" frameborder="0" marginwidth="0">
     <frame src="/FRAMES/content/index.html" name="left">
     <frame src="/FRAMES/content/start.html" name="right">
  </frameset>
</frameset>
<noframe>
  <p>Your browser does not support frames.</p>
</noframes>
</html>

The document /FRAMES/content/head contains the navigation bar for the upper frame, the document /FRAMES/content/start is defined as the start page for the right-hand frame.

The main content of the folder /FRAMES/content is displayed in the left-hand navigation frame. Here, for example, you can insert an automatically generated table of contents. In doing so you must consider that the links in the table of contents and the manually placed links must be provided with the appropriate targets:

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

The layout /FRAMES/content/mastertemplate contains the layout definition for the bodies of the files displayed in the content frame:

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

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

All further files are similarly exported using this layout so that their respective bodies will be displayed in the same content frame if no other target is defined in the respective link.

Please note during conception of this type of frame layout with CMS Fiona, that framesets may not be defined within an HTML body, thus under no circumstances in a document or a folder and also not in a layout referenced in a folder or document. This would lead to the frameset definition also being used in the Content Navigator.

If you use several framesets you can place them individually in the base layouts of the respective subfolder. Alternatively several framesets can be defined in a global base layout whereby each of these framesets can be enclosed by a comparison query of a field value. This allows the editorial staff to set a frameset for their document by assigning an appropriate value to the field.

When you check the appearance of the website with the preview, the complete frameset must be loaded at least once into the preview window, since the preview for a subfile only displays the main content of the file without the enclosing frames.