Navigation manager also doesn't allow you to add external links or
documents to the navigating, but there is a solution for all three!
The trick is that you need to create special content classes for
"Navigation Item" pages. These pages aren't meant to be published or
seen. Their job is to supply a headline and link to the Navigation
Manager.
So to link to existing pages in navigation you would create a content
class "Existing Page Navigation Item" and make it a master page. This
content class needs to have a headline (to hold the menu text), an
anchor (to point to the existing page in your project) and a standard
field. The standard field acts as a flag, indicating to your
navigation manager code that this isn't a normal page and should be
treated differently. This standard field should always have some
default value like "anchor".
Create instances of these pages in the navigation manager (assign
headlines) and then afterwords go into SmartTree and set the anchors
to reference the correct pages.
The tricky part is getting Navigation Manager to render them our
correctly. In your navigation template, where you are normally
outputting your links, you need to put an if/else block. The logic
would be like
if stf_flag == anchor {
<a href="anchor_element.value">page.headline</a>
} else {
<a href="page.url">page.headline</a>
}
Essentially if the page you are looping over has the flag set to
anchor, output the url of the anchor instead of the url of the page.
You can create similar content classes and pages for documents and
external links (using media and standard field elements respectively)
and then update your if/else block to test for them too.
Good luck,
- Eric
The Unofficial RedDot CMS Blog laid out a very similar solution in
their article: http://www.reddotcmsblog.com/growing-your-navigation-beyond-the-basic-tree.
Best,
- Eric