Interchange Guides: the "Wellwell" Tutorial

Stefan Hornburg

This documentation is free; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

It is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Abstract

Wellwell is a functional frame for building new Interchange catalogs.

Its main difference from previous template catalogs (i.e. Foundation / Standard) is that it doesn't tend to be a demo, but rather an officially-supported frame designed specifically for new catalog deployments.

The purpose of this Guide is to explain the concepts and show basic working examples that should help you understand the WellWell design decisions. You will then be able to read, understand and modify WellWell code as needed.

Some of the Wellwell design goals are:

  • No stone left unturned if it can be improved

  • KISS instead of convoluted ITL code in the Standard demo and its predecessors

  • Replace all of [process] with ActionMaps

  • Supersede Interchange's routes and profiles with a complete form framework

  • Keep core of WellWell small, use plugins for extended functionality

  • Move out as much as code as possible into generic Perl modules which don't use Interchange variables and functions. This is intended to improve code reusability and code testing.

  • Deprecate bloated code and tags (i.e. [button], [image])

  • Usefulness and clarity out of the box

  • Modern HTML & CSS

  • Ease of customization

[Caution] Caution
We don't pay any heed to backward compatibility for Wellwell until it is announced as stable and mature enough.

Table of Contents

Pre-requisites
Introduction
Templating system
Components
Default components and attributes
Taxonomy
Users, Roles and Permissions
Per-page permissions in [compose] calls
Menu permissions
Forms
Form parts
Form templates
Form elements
Form attributes
Form hooks
Form theming
Form components
Plugins
Authoring plugins
Product images
Paging
Processing
Routes
Modules for Composition Framework
Features

DocBook! Interchange!