Navigation in CMS means using the PAPI to access the structure and content within the repository. Fundamentally, three elements are used to create navigation: postings, channels, and administrative features. At this point, you're probably familiar with all three. However, it's important that you understand each within the context of navigation. Once we have a basic understanding of these elements, we'll take the discussion a little further by introducing specific navigation examples. Unlike with some Microsoft products, you can't simply install CMS and have a useful tool. CMS provides the framework, but it's up to you to use the framework to build your site.
Within a traditional Web site, the most simple navigation type is to HTML pages. In CMS, Web pages are represented by the Posting object, and therefore simple navigation is always going to lead a content consumer to a posting. A posting is the object that physically holds and/or displays content within your site. As a result, when a content consumer traverses your site, they're really looking for postings.
Consider the types of templates we discussed in Chapter 12. We discussed four: detail, composite, format, and summary. Of the four discussed, it's likely that direct navigation will involve postings created with the detail, summary, and composite template types, since they either hold or display content. The format template will be used in conjunction with the creation of "alternate" forms of the same content; you can find out more about this kind of navigation in Chapter 36. Figure 14-1 shows an example posting navigation scheme and a detail posting in the BOTS Consulting site.
Figure 14-1. A detail posting showing navigation to other postings in the About Us channel
If you look on the left side of the page, you'll notice that the postings for the current channel are listed. Each posting that's added to the In the Press channel will automatically show up in the left navigation. In this way, content contributors can happily add content, and the IT staff tasked with supporting the site doesn't have to worry about editing HTML. One key element to navigation, however, is that nothing shows up that the current user isn't allowed to see. In other words, CMS manages access to all objects within the repository, and only the objects that the current user has access to will appear in navigation. In the same way, CMS prevents content that hasn't been approved from showing up on the live site.
In a traditional Web site, HTML files are stored in file directories. Navigation in these traditional Web sites can point to directories, which contain a collection of files; when a user clicks a link to a directory, they are redirected to a page within that directory and shown the directory contents or are given an error. CMS has a concept similar to a file directory, which it calls channels.
When you are creating navigation, channels will usually form the core of your navigation. Because channels hold all of the content in your site, you'll often see channels show up in the main or global navigation. When a user creates a new posting, it's stored in a channel. If a user clicks a link to a channel, CMS tries to redirect the user to a posting. If no posting exists, CMS has a mechanism called a rendering script that takes over. In the BOTS Consulting example, if a content consumer clicks the About Us link in the main navigation, they're really navigating to the About Us channel. In the About Us channel, the content consumer will find a listing of the other channels in About Us as well as postings that are stored there. This summary listing is simply a posting created using the Press Release Summary template. In Figure 14-2 you can see this navigation behavior in the BOTS site.
Figure 14-2. The About Us section of the BOTS Consulting Web site
Now, if no posting existed in that channel, what would CMS do? As we mentioned earlier, if a posting doesn't exist, CMS will display the channel rendering script. The default rendering script is shown in Figure 14-3. If the WoodgroveNet Bank sample site is installed, content consumers will see something like Figure 14-4. Notice that this rendering script is radically different from the default one provided by Microsoft. You can write your own rendering script for your site and then configure your channels to react in a specific way by changing certain channel properties. For more information on configuring channels, refer to Chapter 16.
Figure 14-3. The default cover page for CMS
Figure 14-4. The WoodgroveNet sample rendering script
The last type of element that a content contributor can navigate to is administrative functions. The reason we stipulate content contributor instead of a more general audience is that, for the most part, only content contributors will see administrative navigation. Essentially, administrative navigation includes those links that allow the user to affect the site in some way or links that are only shown in Edit mode. The best example of administrative navigation is the edit console. However, the edit console isn't the only administrative navigation that could exist. Beyond the edit console, you could have custom administrative navigation in your site. For example, you could potentially create task-based publishing within the Web Author. Task-based publishing is something that's closely associated with the Authoring Connector for Word. However, it's possible to create the same sort of task-based publishing within the Web Author. In this case, only roles that allow content creation should see the link(s). In Figure 14-5, two types of administrative navigation are shown: task-based publishing and the edit console. The edit console flows into the site just under the left navigation, and the task-based publishing link shows up under the user ID of the current content contributor: in this case, cmsadmin.
Figure 14-5. Administrative navigation in the In the Press section of the BOTS site
As we examine dynamic navigation more deeply, keep all three of these navigation elements in the back of your mind.