-- NOTE --
To expedite processing based on the special handling feature of the various content elements, the unused localization slot within the PK has been commandeered for the special handling flag. Localization will no longer be active as part of an encoded PK.
The expectation is that the localization id in every encoded key has always been the integer value one. Therefore, the special handling flag value of one means that no special handling is required.
The handling flag of two means that the corresponding resource element is OWNER Aware. The provisional OWNER group will be active for any item that is marked OWNER Aware (and for any of its child elements as well)
NavPath
Every entity on an Ittrium site is located via a mechanism called the navigation path. The path is visible in the URL as you browse through the site. The following example illustrates a parameter you might see in the address field of your browser for a typical Ittrium page.
?path=A1x66x1y1x7cbx1y1x4e66x1x7dy1x844x1x7dy5x845x5x1
The navigation path determines what is displayed on a given page. There are several variants, but in the main, the navpath is a series of category identifiers, with a target entity at the end.
The sample navigation path above identifies the:
- 1, 5 - base type of the entity where:
1 = category, 4 = web link, 5 = content, 8 = blob - 4e66, 844 - unique id of a parent category
- 845 - unique id of the target entity
- 7d, 5 - SUB type of the entity (like a Page)
- 1 - special handling flag where:
1 = normal, 2 = OWNER Aware
Decoding the NavPath
You can break the navpath apart to understand the individual pieces. The leading character identifies the kind of encoding being used. The currently supported encoders are:
- 'A' encoder - based on absolute numbers
- 'B' encoder - based on an XPath style notation that matches titles
- 'C' encoder - matches session parameters and system wide alias names
- 'D' encoder -limited 'A' with single leaf node (no 'y' or 'z')
For the A encoder:
- Steps in the category path are separated by 'y' and 'z'
- Individual entity specifications have their components separated by 'x'
- All numbers are hex encoded
- Different base types use different sequence of subcomponents
The example above represents the entities:
- 1 / 66 / 1 - root category (66)
- 1 / 7cb / 1 - first level category (7cb)
- 1 / 4e66 / 1 / 7d - page (4e66) within a category
- 1 / 844 / 1 / 7d - sub page (844) within a page
- 5 / 845 / 5 / 1 - HTML page (845)
For the B encoder:
- Steps in the path are separated by slashes /
- First entry can be a root or a relative indicator like '.'
- Each subcomponent is the title of an entity
You will typically see something like:
B./SomeItemA/AnotherItemB
where:
-
The leading '.' means start from the current path (other options are '..' which is the parent of the current, and '...' which is the root of the site)
-
Some number of compressed title names separated by '/'. These names have all whitespace and special characters stripped from them, but then match the text in the title.
For the 'D' encoder:
- There is a single A encoded specification selecting a leaf node
The parent path used for internal processing is build by locating the leaf and walking back up its parent tree.
Category Root Key
Information items reside within one or more parent categories. Categories reside within one or more parent categories. Where do the categories at the top of the tree live? These categories have no parent, and are instead located via a key string known as a root key. Any category (whether it has a parent or not) can be assigned a root key. This allows the category to be found by the key string, regardless of its parents.
NOTE that the root key is independent of the category's title. Titles are readily changed, but a root key should remain fixed. This key can be used by various components in the system to locate a target category. View controls and the reroot servlet can use a root key to find a category.
By default, the category with the key of 'site' acts as the home root category for the site. The root category acts as the target of the home page, determines where searches start, and is the seed element for all navigation paths. However, any category with a root key can act as the site root. The root category can be changed via the reroot servlet. The default can also be changed via bootstrap configuration parameters or subsite processing.
Alias
There are times when a path to a particular entity is used repetitively throughout the system. Rather than duplicate the path in many places, such a path can be associated with a string name, called an alias.
Aliases reside in the theme so that they can be easily maintained. It also means that a simple alias name can be recoded if the target element moves from category to category, or if a different target altogether is needed.