Version 4 > User Guides > Content Management Guide

Content Management Guide

This guide provides an overview of content management in the Version 4 system, to help you understand how your content is organized and maintained.

Content Objects

All content is organized into units called "content objects", that can be configured, edited, moved around, and deleted. Every thing that ends up as a distinct file will have its own content object (for example, a page, an image, or a PDF). Some types of content will be broken down further into smaller content objects; for example, a page might be broken down into a body, a sidebar, and a footer that can each be configured and edited separately.

Basic Content Types

Every content object has a type, which defines how that content functions within the website. The basic content types are mostly concerned with content that is passively viewed by the end user. These include things like:

  • Content - this is the simplest type of content, which might correspond to a simple piece of text that can be read, a file that can be downloaded, or an image that can be viewed.
  • Library - these are places to store and organize miscellaneous files like images or documents.
  • Page - these are the main navigation points on your website, which contain information about a particular subject, and which can be reached through links in your menus.
  • Section - these are are the main areas of your website, which each have their own menus, and possibly distinct designs.
  • Template - these are your web designs, which define how pages are laid out and styled.

Special Content Types

Special content types present themselves in specially formatted ways, and often have extra interactive features. These include:

  • Articles, Blogs, and Books - organize your reading materials into more complicated formats and structures than simple pages allow for.
  • Comments and Forums - users can add their feedback to the website.
  • Forms and Quizzes - build sign-up forms, surveys, questionnaires, and other forms to collect input from your visitors.
  • Calendars, Events, and Fees - display calendars and events, and allow people to register for them.
  • Membership Types and Profiles - allow users to maintain their own profiles on the website.
  • Courses and Lessons - organize your e-learning content into curricula.

... and others. Generally speaking, special content works the same as basic content, but has additional features unique to each content type. But once you know know basic content management procedures for one type of content, it will be similar for other types as well.

General Content Management Features

There is a common set of features shared by all content objects, no matter what their type.

Titles, Labels, and Names

Every piece of content goes by three different names:

  • Title - this is used in headers and webpage document titles
  • Label - this is used for links and menus. It is often the same as the title, but sometimes is shortened because long titles do not work well in menus and buttons.
  • Name - this is used to build a friendly URL. It should consist of URL-friendly characters only, like letters, numbers, underscores, and dashes. Many CMS tools will try to automatically create a name for you, based on your title. Because titles are often quite long, these automatic names might be unwieldy, so you can customize them.

Access Controls

To control who is allowed to view a content object, set its access permission accordingly. Public content can be viewed by anyone, and is also published statically for fast and secure viewing. Higher levels of access require the the user to be logged in to an account with that level of access in order to see the content. "User" level access allows anyone who is logged in to see the content. "Member" level access also requires that you have an up-to-date membership. "Executive" level access is restricted to website administrators.

If a user views a piece of content with a higher level of access than they currently have, they will be blocked from viewing it. If the content is a page or other navigation destination that gets formatted in a page-like way, the user will be presented with a login form instead, so that they boost their access if they have an account that is allowed to view the content.

If you want to disable a page completely, use the workflow tools to change its status to canceled. You can re-publish the page later to bring it back.

You can also hide content using the "Hide From" settings in the content configuration. Hiding pages does not really control access to pages, however, it simply stops driving traffic to those pages through your site navigation and search tools. Anyone with a link or the content URL can still visit those pages with no restrictions.

Workflow and Publishing

Workflow is the process of developing content and taking it live. For example, a piece of content may begin as a draft, go through multiple revisions, then get approved and published, and then get revised again later, before eventually being archived or even removed from the website when no longer relevant.

The different workflow states are:

  1. published: content that the public can view and interact with
  2. archived: old content that is still viewable, but otherwise cannot be interacted with
  3. queued: content that will be automatically published by the queuing system
  4. approved: content that can be published manually when the administrator chooses
  5. draft: content that is not ready to be published
  6. submitted: content that has been received for publication, but has not been reviewed or approved yet
  7. expired: content that used to be published, but is no longer
  8. canceled: content that has been removed or disabled
  9. rejected: content that has been declined for inclusion on the website, or is junk

Lower-numbered states are more "live", and higher-numbered states are less "live".

When creating new content, set its workflow state to published if you intend to post it immediately; otherwise use draft if you need to keep working on it for a while.

When removing old content, set its workflow state to archived if you want the old links to still work (for example, so that search engine hits won't give a 404 error), or to canceled if you want the old links to break.

Save as Draft

If you have a page (or other content) that is already published, but you need to make some edits that you don't want to go live immediately, use the "Save as Draft" button when saving your revisions. The overall page will remain published in its previous form, but your new changes will be treated as a draft and will not be published until you save a non-draft version.

Publishing

All content updates must be published before the public will see them. Publishing accomplishes two things:

  • it confirms that the latest revisions are publicly viewable
  • if the content can be shown to all viewers in a static view, it will be written out to static web documents (flat HTML files), which are must faster than dynamic page views

When using advanced CMS tools, you have a few publishing options:

  • fast publishing: this publishes only those items that appear to have been updated since the last publish, and skips anything that already appears to be published
  • forced publishing: this re-publishes everything, even if it looks like it was already done
  • item, contents, and container: this publishes everything that touches the affected content, in case there are sub-items, menu links, or indexes that also need to be republished on nearby pages
  • this item only: this publishes only the selected item

If making changes all over a website, or changes that affect menus and site maps, you might find it hard to guess which pages have all been affected by your changes. In that case, it's usually easier to just re-publish the whole site. It takes longer, but is thorough.

Un-publishing

Un-publishing is the reverse of publishing; it removes any static files associated with the content. That will cause any links to those static URLs to return a 404 error. The CMS will try to automatically un-publish content when it thinks it is appropriate to do so, but you can also do it manually if you need to clear out old versions of content.

Note that un-publishing removes content under its current name. It is best to un-publish content before you rename it, to ensure that old copies are properly removed. If you discover that a piece of content is still available in static form under its old name, you can name it back to the old name, unpublish it, then return it back to its current name.

Static vs Dynamic Views

Every piece of content can be viewed in a static or dynamic form. Static views are simple flat files that are delivered directly to the viewer when requested. They are fast, efficient, safe, and have cleaner URLs, but they display the content as it was the last time it was published. Dynamic views are regenerated each time they are viewed. They allow for customization, personalization, access controls, and up-to-the-second live views of the content, but are slower. Dynamic views can be recognized by the "cgi" elements of the URL, for example:

Static view URL:
https://support.exware.com/v4/features-benefits
Dynamic view URL:
https://support.exware.com/cgi/ex.cgi/page/v4/features-benefits

You can explicitly set which type of view you prefer for any piece of content, using the Publish Rule configuration setting. However, you don't have to set it; the system will be smart enough to automatically select a publish rule that is appropriate for the content. You only need to set the publish rule if the automatic choice doesn't suit your needs.

In addition to static and dynamic, there are a few pseudo-dynamic options: hourly, daily, and weekly. These settings are functionally equivalent to static, but they automatically re-publish on the given interval to refresh themselves with the latest view of the content. This gives you some of the freshness of dynamic views, while keeping the speed and security of static views.

CMS Permissions

To grant permissions to view content, set the access level of the content appropriately. Use the "public" setting if everyone should be able to see the content. Set it to a higher level to require an authorized user to login before viewing the content. Anyone who tries to view the content without sufficient access permissions will be shown a login form instead.

Normally you will set the access permissions on the whole page (or other page-like website destination with its own URL, such as an article). Unauthorized viewers will see a permission denied error and/or login prompt if they try to view the content.

You can also set access permissions on sub-elements of a page, such as an image, a sidebar, or a box or other visual container. In this case, the sub-element will either be shown if the viewer is permitted to see it, or hidden (with no error message) if not. This works on both static and dynamic pages; in the latter case, the restricted content is fetched dynamically by javascript.

Editing Permissions

Permissions to change content (adding new content, revising existing content, moving content around, approving content, or deleting content) are controlled using content keys. A content key assigns a role to a user for a piece of content; for example Max can be assigned as the editor of a page; that allows Max to revise the content on that page. The roles are:

  • editor - can revise the page-specific content that viewers are there to read
  • designer - can revise the layouts, templates, and stylesheets that determine what the content looks like
  • administrator - can add, delete, and publish website changes
  • reviewer - can approve or reject content submissions
  • owner - can manage some types of content that originate from end-users, such as comments and profiles

Granting permission to change a particular piece of content also implicitly grants permission to change content inside it. For example, permission to edit a page is also permission to edit any sub-pages. For this reason, keys are commonly granted to entire sections, as that will encompass all content in that section. For example, a general "webmaster" type access key will typically grant editor, designer, and administrator roles on an entire section.

To remove permissions in an area, you can issue a key that revokes access in that content (and all of the contained content).

Navigation

All content is organized into a "tree". Each piece of content has to be positioned somewhere in this tree. This is done by specifying its "parent" content. The topmost content object (which represents the website home page) is the only one that does not need to specify a parent--it is at the "root" of the tree.

The CMS uses this tree to automatically figure out site maps, menus, sub-menus, cookie-crumbs, and other navigational sets of links.

Navtypes

Each content type has a "navtype", which defines how it should be treated for navigational purposes. The different navtypes are:

  • page: these are the primary navigation destinations on the website, and will be listed in menus and site maps. Content objects that will be treated like pages include pages, sections, blogs, books, calendars, forums, and catalogs.
  • item: these are secondary navigation destinations, and will be shown in indexes or listings under their particular page. Content objects that will be treated like items include articles, events, fees, products, comments, and profiles.
  • none: these are not navigation destinations, and will not be included in any automatically generated navigation links. To link to one of these items, you must add the link manually in some other piece of content.

Site Maps

The Site Map is a list of all page-like content objects in a section, and is usually organized as a nested list, so that you can see the entire tree of pages, like this: 

  • Home Page
    • Top page 1
      • Page 1.1
      • Page 1.2
    • Top page 2
      • Page 2.1
        • Page 2.1.2
      • Page 2.2
      • Page 2.3

...etc

This allows you see your entire website at a glance, and jump to any page in one click. The "menu level" is shown by the degree of indentation, and corresponds to how many "parent" content objects you have to go back through to get to the top. The topmost content object is a section, which presents itself as a "home page".

You can configure pages to be hidden from the site map under the "Hide From" settings in the page configuration.

Use the Menus plug-in to manage your site map using simple drag-and-drop placement of your pages.

Sort Keys

Numerous content objects can live under a single parent. For example, in the above site map example, 1.1 and 1.2 both live under the parent 1, and comprise page 1's submenu. If you do not specify any particular order for these items, they will come out in the same order they were added to the CMS. To override the order, you must define sort keys for the content, which will be used to sort the items alphabetically. Note that because the sort is alphabetical, not numeric, "10" comes before "2" which comes before "ABC" which comes before "XYZ". If you want to sort alphabetically, use the content title as a sort key, but: 

  • convert it to upper case
  • remove unimportant leading words like "The" that you don't want it to sort on

For example, The Catcher in the Rye should have a sort key like "CATCHER IN THE RYE" if you don't want it sorted under "T". In cases where you are sorting people by name, you might want the sort key to go by last name. So "Mary Jones" would have a sort key like "JONES MARY" (note that "JONES, MARY" also works).

If you want to sort numerically, pad your numeric sort keys with leading zeroes, like this: 0001, 0002, 100, etc., so that they sort alphabetically. You do not have to put them in an exact numeric sequence; leaving gaps in your numbers makes it easier to manually insert other items into the gaps later. For example, if you use sort keys 0100, 0200, and 0300, then later on you can insert something into 2nd place using a sort key of 0150.

Many CMS apps include a sort tool that allows you to drag-and-drop your content into your preferred order. The Menus plug-in lets you do this for your pages, for example. The sort tool then re-writes all the sort keys for that content into the order you specified, using the pseudo-numeric method.

Note that some CMS apps have their own custom sorting rules that ignore sort keys. For example,  event calendars are always sorted by the event date, and blogs are sorted by the posting date, no matter what sort key you specify.

Menus

A menu is a list of links to all the pages with the same parent, and is automatically inferred from the site map. For example, pages 1.1 and 1.2 in the above site map example comprise a sub-menu under page 1.  Pages 1 and 2 are part of the top menu for the web site. Here is another way to look at this:

Website
Top Page 1Top Page 2 
Page 1.1 Page 2.1    > (submenu)Page 2.1.2
Page 1.2 Page 2.2  
  Page 2.3  

You could also hav sub-sub-menus under those sub-pages, and so on, to any depth.

You can configure pages to be hidden from menus under the "Hide From" settings in the page configuration. This is distinct from the hide from sitemap setting, so pages can be visible in the menu or the sitemap, or neither, or both.

Use a menu plug-in to format your menus in a useful and stylish way. Some of the available plugins include:

  • SimpleMenu - display menus as as a simple list of links, typically either the top menu, or a submenu that is contextually appropriate for the page you are on.
  • BSmenu - display Bootstrap-style drop-down menus and navbars.
  • CMenu - displays multi-level cascading menus using drop-downs and fly-outs.
  • SMenu - displays responsive mobile-friendly drop-down menus using the Slicknav jquery plugin.
  • VMenu - displays multi-level menus that can be expanded and shrunk as needed.

Bread-crumbs

Since every content object except for the topmost has a parent, every piece of content in the system has a path, or bread-crumb, that takes you back to the topmost item. For example:

Website > Grandparent Item > Parent Item > Item > Sub-item > Sub-sub-item

Hidden Content

Use the "Hide From" settings in the content configuration to hide content for navigation purposes. The options are:

  • menu (content will not be included in menus)
  • sitemap (content will not be included in site maps)
  • indexes (content will not be included in indexes and listings)
  • search (content will not be included in your own website's search index; to hide content from 3rd party search indexes like Google, use the hide from robots setting, next)
  • robots (content will include instructions for robots to skip this item; this is how you instruct Google's web crawlers not to index a page)

Note that hiding content does not protect or secure your content in any way. Anybody with the link can still reach your content

If it has already been indexed by 3rd party search engines, changing the setting to hide from robots will not automatically remove it from those search engines. It will take time for those robots to come around and re-index the page before they will see the new setting.

Content Management Apps

There are numerous plugin apps for managing your content. They each provide user interfaces that are designed for certain types of website maintenance. Because they are all interacting with the low-level CMS, they are all performing similar types of operations on your content. Which ones will be more useful will depend on the specifics of your content management requirements.

Basic Page Management using My Website

The My Website plugin app provides a simple interface to managing your pages that is suitable for day-to-day website edits. All of your pages are presented in a sitemap-style view, and you can click into any one of them to preview, edit, or reconfigure it.

When your edits are complete, pages can be republished individually, or all in one go by publishing the whole site.

Shortcuts are provided to the Photo Albums plugin for image management, Documents for downloads management, and Menus for re-arranging your site map.

Basic Image Management using Photo Albums

The Photo Albums plug-in gives you an image-centric user interface for managing your libraries. You can select any of your libraries to work with, and all of the images within will be displayed in a thumbnail gallery. Select any thumbnail to work on that image, or upload new images as needed.

Basic Downloads Management using Documents

The Documents plug-in gives you an document-centric user interface for managing your libraries. You can select any of your libraries to work with, and all of the files within will be listed. Select any file to work on it, or upload new ones as needed.

Menu Management using Menus

The Menus plug-in displays all of your page-like content in a sitemap. You can drag items around to re-arrange your site map. Click the save button to save the new arrangement. You will need to republish the site for these changes to become visible to the public.

Advanced Content Management using System Browser

The System Browser plug-in is a comprehensive content management tool, which provides the full scope of the CMS's features to any selected content object. It may not be as user-friendly as the simpler tools above, but it will make advanced features available, which the above tools overlook in the name of simplicity. For example, you may need to use System Browser to access the following advanced CMS features:

  • revision management
  • metadata management
  • pricing, tagging
  • scheduling, queuing
  • searching, linking
  • social media tools
  • low-level HTML or CSS coding

Specialized Content Management with Other Plug-in Modules

Some special content types will have their own plug-in applications that are specially-designed to maintain them. My Website and System Browser may offer short cuts to these applications if you select those content objects. You can also go straight to those applications from your administrator screens. Examples include:

  • Blogs - for managing blogs, news feeds, and articles
  • Calendars - for managing event calendars and events
  • Forms - for managing forms and surveys
  • Catalogs - for managing products and sales
  • Forums - for managing discussions and comments
  • Locations - for managing directories of stores, poractices, or other locations
  • Templates - for managing your web design layouts