Ready for implementation
I can easily select a page template from the list of templates. For a better overview, similar templates are grouped together using categories. If I don't want to browse, I can choose the template by consulting the list of templates I recently used or by choosing a page template from my favorites. Especially the favorites help me a lot, if I'm responsible for part of a site.
Finally, if I don't want to browse at all, I can also search for a particular template. If I'm an experienced user, that might be the my preferred way to find a template right after using the favorites. If I enter text, I simply get a list of templates with matching title or description. I can also use camel-case expression search, which comes in handy if I know the template name: if I e.g. type "smfi", my list will likely only contain the "*S*ite *M*ap *f*or *I*ntranet pages" page template.
Four ways to find the template I need
The story mentions four different ways to find a page template I need. This may sound like many, but choosing a page template must be easy and fast even on large sites with dozens of templates. The four ways described actually cover all the different use cases I might find myself in:
- If I'm quickest when I'm presented an ordered set of entries, I browse the list of page templates by navigating the hierarchy of template categories
- If I have to add a number of pages of the same type, I simply use the automatically compiled list of recently used page templates
- If I'm responsible for specific sections of our site, I'm probably quickest when I add my often used templates to my favorites and use these from then on
- If I've been told to use a particular template, I just enter its name or abbreviation into the search bar instead of trying to find it in our impressive hierarchy of template categories
Description of desired behavior
Magnolia 5 introduces configurable template categories to group the available page templates. Note that a page template may be placed in more than one template category - categories act like tags.
In a first step, template categories may be one level deep only, but eventually, the template category hierarchy may be multiple levels deep. Template categories are a necessity to support large sites with closely to one hundred or so page templates. Selecting a page template from a linear list has become slow, tedious and error-prone for editors of such sites.
Nevertheless, selecting a page template must remain easy and fast, and it must work for sites with no template categories as well as for sites with multi-level category hierarchies.
Only supported page templates visible
A parent page may restrict the set of page templates allowed for any of its sub pages. In such a case, the list of template categories is additionally filtered to only show the categories with matching templates. In addition, an informational message informs the user why not all templates are available to choose from.
Browsing the list
If no template categories are defined, an alphabetically sorted, flat list of all available page templates is shown. This list will also be shown on existing Magnolia instances that have been upgraded to version 5 - such instances have no configured template categories.
If template categories are defined, the first two levels (or maybe three, even three levels - this has to be tested) of categories are immediately visible and may be chosen as filter. All additional levels are only shown in the list of templates to group entries, but can't be used to select page templates.
The immediate visibility of the first couple of levels guarantees a good, quick overview without requiring too many selections and clicks. It also visualizes the categories structure, thus making finding a particular sub category easier. All deeper levels are only used to group the list of templates after a user has selected a particular template category. In practice, up to five or six levels can possibly be visualized using this method.
Additional info on a page template
Selecting a specific page template shows additional information including its name and a description in a text box. It also shows an icon indicating if a template has been marked as favorite or not. Clicking this icon adds or removes it from the list of favorites.
Note that the template category or categories a template belongs to are not displayed, as a page may belong to several categories, which may or may not belong to the same subtree, and thus a list of categories would confuse more than help. An alternate solution solution could only show template category names on leaf level and skip all intermediate categories, or it could show category names of the first level only.
Referring to recently used page templates
The last n templates used are remembered and made available in the list of recently used page templates. This list is automatically created and can't be manually changed or rearranged.
A good number for n might be 5, as the list will be sorted by last usage and a list of more than 5 entries will require too much time to scan for a particular template name and thus would render this method useless.
Consult my favorites
Every page template description also shows an icon indicating if a page template has been marked as favorite or not. Simply clicking the icon adds or removes it from the list of favorites.
The list of favorites groups its entries according to the first two levels of template categories defined, then sorts them alphabetically. The list is intended to be small, quickly readable and thus does not show all category levels its templates belong to - note that still means that a favorite may show up more than once due to multiple assigned categories.
Search for a page template
Entering text in the search bar displays a list of page templates containing this text in either their name or their description. All matches are emphasized in bold type in all titles, and in a particular description as well if a user selects an entry.
In addition, search also supports camel-case expressions with at least two characters. This is a very quick way for experienced or trained users to find a particular template without writing most of its name. Again, the match is explained by printing the matching leading characters in bold type. Examples of camel-case expression and possible matches are:
- "AP" matches *A*rticle *p*age
- "fpwt" matches *F*ront *p*age *w*ith *T*easers
- "A" doesn't match anything yet, since it only consists of one character
- "BAP" might actually match *B*est of *a*ll *p*ages, if the match making engine is capable of ignoring simple words like "of", "from", etc.
Note that a search always conducts both title/description matching as well as camel-case expression searches. It is highly desirable that the filtering of all page templates is conducted immediately without requiring the user to hit a key to start the search.