Summary
This chapter has shown how the CMS framework can provide all the basic mechanisms for menu handling. The information is stored in a database table, and its management by an administrator can be achieved without needing to know how the final menu will look.
There is an important separation between the menu logic and the various extensions to the CMS that provide the actual content. Generalized menu handling in the framework does not know how to construct links to suit particular components, so hands that process off to the component. This design achieves both functionality and flexibility.
Final creation of a menu implements the other important separation by keeping the generation of XHTML to the last possible moment so that it can be easily changed without affecting the more general menu logic.
In the next chapter, we move to an entirely different topic, the handling of different languages within a single website, and the various ramifications involved in that.