Hallo Peter,
du arbeitest streng genommen in der Navigationsfunktion gar nicht "mit der Dokumentengruppe" sondern lässt sie einfach auf den „Einzelseiten“ laufen, sorgst aber dafür dass der durch die Navigationsfunktion generierte Code dann auf die Dokumentengruppe zugeschnitten ist. D.h. du nutzt sie eigentlich nur zum Iterieren über die Ebenen. Die Navigationsfunktion weiß quasi gar nichts von der Dokumentengruppe.
Wenn Du die Dokumentengruppe so definiert hast, dass sie nur einen Ordner - und dadurch den entspr. Teilbaum - enthält (würde in Deinem Fall glaube ich Sinn machen), wäre das Konstrukt ungefähr so:
Du baust Dir eine separate Navigationsfunktion - z.B. fr_nav_docgroup - die Du nur aufrufst, wenn Du in einer Dokumentengruppe bist.
$CMS_VALUE(if(#global.docgroup, fr_nav_docgroup))$
In dieser Navigationsfunktion benutzt Du für die hrefs kein CMS_REF sondern schreibst Anchor-Links mit "etwas identifizierbarem", z.B. die numerische ID der Seitenreferenz:
<CMS_ARRAY_PARAM name="unselectedHTML">
<CMS_ARRAY_ELEMENT index="0..4"><![CDATA[
<a ... href="#sub_$CMS_VALUE(#nav.ref.id)$">$CMS_VALUE(#nav.label.convert2)$</a>
]]></CMS_ARRAY_ELEMENT>
</CMS_ARRAY_PARAM>
Außerdem sorgst Du dafür, dass die Navigationsfunktion den ersten Ordner der Dokumentengruppe als Rootknoten benutzt:
<CMS_VALUE_PARAM name="root" value="#docGroup.root.childs.first.node" />
In den entsprechenden Seitentemplates baust du eine Abfrage ein ob Du in einer Dokumentengruppe bist, wenn ja lässt du den „oberen“ und „unteren“ Bereich im HTML weg (das würde dann in die Start- und Endvorlage der Dokumentengruppe gehören - d.h. separate Seitentemplates) und schreibst zu Beginn der "Seite" - das wieder im normalen Seitentemplate - den Anker rein z.B. mit
$CMS_IF(#global.docgroup)$
<a name="sub_$CMS_VALUE(#docNode.node.id)$"></a>
$CMS_END_IF$
Letztlich muss das was du in das <a name=...> schreibst, zu dem "passen" was auch die Navigationsfunktion erzeugt.
Wahrscheinlich solltest Du auch dafür sorgen, dass bei der Zusammenstellung der Dokumentengruppe immer zuerst die jeweiligen Seitenreferenzen (bzw. deren Inhalt) generiert wird bevor in die Ordner hineingelaufen wird. Das geht durch das Setzen von #docGroup.pageFirst im Start-Template (in den Seitentemplates der "eigentlichen" Seiten funktioniert es nicht):
$CMS_SET(#docGroup.pageFirst,true)$
Viele Grüße
Michael