posted on 1:17 PM, October 1, 2009
ExSite documentation and code makes regular use of the terms that are defined below.
- A user's access level determines the general level of access they
have to the ExSite system. It is normally a number from 0 to 3:
- unknown, a member of the general public
- a normal member
- a manager or editor, who has limited ability to perform updates to certain sections and plug-ins.
- a system administrator, who has unlimited access to the system
- public (anyone may view the page)
- members-only (must be a member of the section to view the page)
- administrators (must be an administrator of the section to view the page)
- An administrator is a user who has permission to update/manage a
section. There are two types of administrator:
- manager (site administrator) - a person with limited (level 2) access to only certain sections
- system administrator - a person with unlimited (level 3) access to all sections
- editor - can update editorial content, and add new pages
- designer - can update design content, and add new templates
- administrator - can publish and delete pages
- Administrator Key
- An administrator key is a token that gives a particular administrator access to a particular section.
- Alternate (page)
- A alternate page is a different version of a normal
web page. Reasons why you might want to maintain
different versions of the same page are:
- display the same content in different languages
- display the same content for different viewing devices/contexts (eg. low-bandwidth versions, mobile versions, vision-impaired versions)
- The "body" is the main element of a page, into which the primary content is inserted. The body is typically the element that editors have control over. The page may include other editorial elements (eg. sidebars, footers), and some pages may not include a body element at all. However, body elements are so common that some special functions are provided for body management.
- CMS (content management system)
- The CMS is the ExSite framework for handling display of web pages in a browser. It encompasses the management of sections, pages, content, and revisions, as well as interfacing arbitrary customized plug-ins to these.
- Compound Content Object
- A compound content object is a special type of content object that combines several other content objects in a composite that is assembled using a miniature template.
- Configuration (file)
- Configuration files define system-wide settings that are used throughout ExSite. The main configuration file is called exsite.conf, and each plug-in can provide its own configuration file to add to this. All configuration data is read into the global %config hash where it is available to all modules and plug-ins in the system.
- Configuration (object)
- Most objects can be configured in different ways. For instance, pages can be configured to be public or members-only, or to be static or dynamic. Each object may make its configuration screens available in certain circumstances, allowing the administrator to change the basic object behaviours and meta-data.
- A container object is one that hold other objects. For instance, a section is a container that holds pages. A page is a container that holds content. A content object is a container that holds revisions.
- Content (object)
- A "content object" is a named piece of content that can be handled as a single unit. The content object can reference a file (eg. an image, stylesheet, etc.) or a block of text (HTML, plain text, CSS). When a page is being constructed, ExSite begins with a content object named 'page'; this content object will contain tags that in turn reference other content objects that are loaded and inserted into the page. This process continues until no more content objects are referenced, at which point the page is dispatched to its destination. Individual content objects can be defined as being editorial content or design content, depending on which type of administrator should be allowed to change it.
- Control Panel
- A plug-in has the option of providing an administrator control panel for managing the internals of the plug-in (eg. adding and removing special data from the plug-in). If a control panel is available, the plug-in will display its icon on the administrator web-top. This may be clicked on to launch the control panel.
- DCD (dynamic content driver)
- The API for interfacing a plug-in to the
rest of ExSite is called a Dynamic Content Driver. It is very much a
driver in the traditional OS programming sense, as it provides a few
entry points to handle input (reads), output (writes), and other
control operations (ioctls). ExSite interacts with the plug-in
entirely through these basic DCD methods; the plug-in is free to
implement its internals using any other method that these basic API
methods interface to, such as:
- other private methods in the plug-in
- external programs, using IPC or client-server methods
- other languages, using perlxs or Inline methods
- A (graphic) designer is an administrator who has permission to update design (eg. template) content.
- A dynamic object is one that is generated at the same time it was requested for viewing. Typically this involves fetching content straight from the database, and formatting it for display in a web browser. While this gives the most up-to-date presentation of content, it is also resource-intensive, and may not be appropriate. If not, use static presentation instead.
- The WYSIWYG HTML editor, used for user-friendly content updates
- An administrator who has permission to update the editorial content in pages (as opposed to a designer).
- Inheritance is a technique for sharing content between sections and templates. Templates can inherit content from other templates; that means they will draw missing content from the inherited template, allowing the new template to define only those features that are unique to itself. Sections can also inherit library content from parent sections, so that any content that is not found by searching the local section can be found in the parent section(s).
- A library is a special type of page that simply groups a bunch of related content objects together, with no rules for displaying the content. Libraries are used as an administrative convenience, as it makes it easier to find miscellaneous content objects (eg. logos or documents) if they are grouped by type or purpose. Although libraries have no built-in display mechanism, there are numerous plug-ins that can display libraries in a variety of formats, including as document downloads, slide shows, galleries, and more.
- Some plug-ins are restricted, meaning that sections are not automatically granted permission to use them. The section must have a license in order to start up the plug-in. Licenses are handled similarly to services.
- A member is a person who has permission to log in to members-only pages in a section. They typically have access level 1, and have no administrator privileges..
- Meta Data
- HTML meta data (titles, descriptions, keywords) can be defined in
the page configuration screens. Meta-data can
be inserted into a template using tags like this:
<!--$meta-->where meta can be replaced with title, description, keywords, etc.
- A plug-in, so called because it takes the form of a perl module.
- A menu is a set of links for convenient navigation of a web site. They are typically either hard-coded into the template, or generated automatically using a special menu plug-in.
- Native Section
- A native section publishes within (ie. in a subfolder of) its parent section. If the native section has no parent, then it publishes in the default document root of the web site. Because the URL of the native section is determined by the parent section, a native section only specifies its folder name as a publication location.
- An 'object' is just an abstract word meaning any discrete 'thing' that the CMS works with. Objects include sections, pages, content, revisions, and plug-ins
- Overloading is a concept related to inheritance, in which content that is provided by an inherited template or library is overloaded (over-ridden) by a local content object of the same name. From the point of view of the current page or template, the overloaded content is defined multiple times. Exsite chooses the one that is "most local" to the current page.
- In the most general sense, a page is a container that holds content.
- Typically it is a viewable destination
in a section, which may be published to a
normal static HTML document, or viewed dynamically. A static page is typically
referenced using a traditional HTML document URL, eg.:
- In a more general sense, pages may also be libraries or templates, which are special cases of the generic page object, in that they also contain content.
- The 'page' content object is a standard content object that is required to compose a page for viewing. When a page must be constructed (for either publishing to a static file or for dynamic viewing), the starting point is always a 'page' content object, which is typically located in the page's template.
- Typically it is a viewable destination in a section, which may be published to a normal static HTML document, or viewed dynamically. A static page is typically referenced using a traditional HTML document URL, eg.:
- A plug-in is a special module that can be added to ExSite to provide customized functionality. A plug-in is technically a source of content for a web site. ExSite will invoke the plug-in, ask for its content, and then display this content in an appropriate manner. A plug-in can provide two views:
- Pre-compiled (template)
- A pre-compiled template has gone through partial construction as a page. The various templated content objects are identified and converted to appropriate HTML, and the final result is published to an intermediate "page". When real pages must be generated dynamically, ExSite starts from the precompiled template, if possible, because it is faster than rebuilding the whole template from scratch.
- A preview shows what an object (typically a page, content object, or revision) looks like. Previews are shown dynamically. Because content objects and revisions are shown in isolation (without a stylesheet), only a page preview will provide an accurate preview of what the public will see. An editable preview will include some extra markup to allow you see what content you can edit, and will include some links to make those edits.
- A promotion occurs when you decide that an older revision is preferred over the newest revision. The older revision is copied, and becomes the newest revision.
- Many objects can be published (written to regular disk files) for better web serving performance. This effectively makes the content static, but also much faster. Publishing is also synonymous with approving content for public view, and the act of publishing is what takes a working revision 'live'. For this reason, publishing is also meaningful even for content that does not actually get written out to disk files. The opposite of publishing is un-publishing.
- A revision is a particular instance of a content object. A given content object can contain numerous revisions. New revisions are added every time the content object is updated/edited. Old revisions are not deleted, except by explicit action. There is no limit to the number of revisions that can be kept on file. Two of the revisions are of special importance. The current (or 'active') revision is the most recently published revision of the content, and the one that is currently approved for public view. The newest revision is the most recently added revision, and the one that will be approved for public view the next time the content is published. (These two revisions will often be the same.) The administrator can recover old revisions using rollbacks and promotions.
- A rollback occurs when you decide that the newest revision is inappropriate, and you want to revert to the previous revision on file. The newest revision is discarded, and the previous revision becomes the newest revision.
- A section is a group of pages that have a
common administrative policy (ie. the same group of editors and
administrators). Sections are published to a common set of folders,
and are represented in the static URL as a folder name, eg.
http://website.com/SectionNameSections can be siblings, eg.:
http://website.com/AnotherSectionOr, they can be children of each other, eg.:
http://website.com/SectionName/AnotherSectionThe base section of a website has a blank name, and is referenced using the website's base name. Large web sites may be comprised of multiple sections, which correspond to departments, languages, functions, etc. Small sites will tend to consist of a single section, and in this case 'web site' and 'section' are often used synonymously.
- A service is just a plug-in with some special
- all self-referential links to the plug-in are handled by a particular page (the 'service page'). This allows for more sophisticated content handling.
- the plug-in can provide content to ExSite's search subsystem, for customized indexing of plug-in content
- A session is a set of data values that are preserved across requests for a given web site visitor. It is used to provide some type of state for the visit. By default session data persists for 24 hours under continuous use, or 1 hour of idle time. At this point, the session data is cleared and the "visit" is terminated. The session data is available to developers in the global variable %session.
- The global variable %share is used for sharing data across
all components of ExSite. Among other things, it is used for sharing:
- global objects such as the current page and database handle
- POST data and other input
- messages between plug-ins, or between the CMS and plug-ins
- A site is a group of one or more sections with a common subject. However, ExSite doesn't know or care about the subject matter of a given section, so this distinction is not important in a technical sense. For this reason, and because simple sites tend to consist of a single section, the terms 'site' and 'section' are often used synonymously.
- Stand-alone Section
- A stand-alone section publishes to its own private folders, and not within its parent section (if any). Because there is no context to determine the section's location, the stand-alone section must define the complete path to its publication folder, and also provide the URL to its home page.
- A static object is simply one that has been published to a normal file. Static objects are easy and fast to serve to the web, and are compatible with all web serving environments. However, they do not change until re-published, so they may not be appropriate in some cases. If not, dynamic objects should be used instead.
- The store is a persistent data storage utility that is used to store reuseable data in an efficient manner. It is used for saving session data, database caches, configuration settings, and other data that is costly or even impossible to re-fetch. The store can be accessed in raw form using the global variable %store. By default it is disabled, and must be explicitly activated to gain the benefits of using it.
- A tag is a special piece of text placed into some HTML that makes
reference to some other object in the CMS. The
CMS processes the tag to convert it into a form that the user's
browser will understand and display. For example, a reference to a content object will typically be converted to
either some HTML to display the content, or a URL to fetch the
content, depending on the type of tag. Tags resemble normal HTML, but
have a special format that the CMS can recognize and substitute with
some replacement HTML. Examples:
- Template (page)
- A template is a special kind of page that provides a formatted framework for content to be inserted into for viewing. Templates are a convenient way to group all of the reuseable content objects (eg. images, stylesheets, menus, etc.) that must be shared by different pages. A section may define any number of templates for its pages to use. Templates can also be shared with other sections.
- Template (section)
- A section template is a special type of section that predefines a set of pages and their contents. When a new section is created, you can use a section template to automatically populate the section with a whole set of pages and content.
- Un-publishing removes published files from disk, which will force display of an object back to dynamic. Note that this is different from deleting an object, which also removes it from the database.
- A version is an alternative presentation of the same information. A version is labeled with a version name, so that all objects of a particular version can be selected together. Typically this feature is used to provide for managed foreign-language translations, so that the CMS can know that object X is a translation of object Y, and not an entirely different piece of information.
- Web Application
- A web application is a program that can be run through a web site. From ExSite's perspective, it is synonymous with a plug-in.
- The "web-top" is analogous to the computer desktop, and consists of a bunch of web application icons, which may be clicked to launch their control panels.