Categories provide a very flexible way to structure content. Categories have a hierarchical structure. The number of levels in any given tree is unlimited.
Categories can be assigned to anything in AxCMS.net - Pages, Documents, Structure Elements, Content, Users, Tasks, etc. If a category is assigned to an object then the object is classified into that category. An object can be classified into multiple categories simultaneously.
Categories are similar to tags. However, unlike tags a category tree is defined and you cannot just type in any category name. You must select from the tree (or add a new node to the tree, if your permissions allow).
In the AxCMS.net category tree the first level is pre-defined. The 3 root nodes are:
- User (or custom) Categories (ID=1)
- Navigation (ID=6)
- System categories (ID=2)
Fig. 1 Category Tree
System categories are installed automatically with AxCMS.net and are used by AxCMS.net internally. They are not shown in the GUI at all.
Navigation is available for the editor under Edit / Navigation. The first level in the navigation is reserved for Sites. The next level is usually used for navigation groups (a page can have multiple independend navigation groups, e.g. top menu and a small navigation in footer). The third level and higher are for the normal navigation nodes.
User categories (or custom categories) - are any categories defined by a user. In the context of a particular application, some categories can be required or may have a special meaning. These categories are available under Edit / Categories.
Although internally navigation are categories, the assignment of navigation and of the categories is separated in the GUI.
Fig. 2 Navigation- and Category-assignments
There are many different usage szenarios for categories.
- In AxCMS.net GUI every object can be classified and every list of the objects can be filtered by category (usually under "extended search"). It makes it simple to search for a particular object.
- Security concept of AxCMS.net (in particular - rights) is build with categories
- Navigation is defined with categories (see above)
- Categories is the first choice for building the lists (for a list: take all objects from a given category)
- and many others. Understanding and using categories is the key to the power of AxCMS.net
Unlike categories, relations create direct links between objects. There are many reasons why you might want to create relationships between objects. For example, you might want to relate pages in different languages for the same topic, or relate an image (Document) being used as a Thumbnail to a Page, or relate a Document which should be sent as an Attachment to a Newsletter, or you may just want to associate pages to provide "related information" links.
To accomodate these different relation semantics there are different relation types. Relation types can be created by the developer in a project context. Each relation type is used for a specific purpose. Each object can have multiple relations of different types at the same time.
Relations are defined as either straight relations or circle relations. (For mathematicians: both straight and circle relations are symmetric; circle relations are transitive, but straight relations are not.) Let's take 2 related objects: A and B. If the relation is straight and you add a relation between B and C, then you have 2 relations: A to B and B to C. If the relation is circular, and you add relation B to C, then a bigger cluster is built of A, B and C in which each 2 elements are related to each other, AB, AC and BC.
Fig. 3 Comparsion of relation types: Circle Relations vs. Straight Relations