Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0
Wiki Markup
{rate}
{status:inprogress|4.5}Implementation tracked in [MAGNOLIA-3895@jira]. {status}
h3. Rationale

* the same content should be delivered differently (different HTML, format, ...)
** a channel can be: a device, location, medium
* content can be excluded or made exclusive to one channel

h3. Detection

* {{AggregationState}} has a {{channel}} property (a string)
* the _multi channel_ filter sets this value by using a {{ChannelResolver}}\*\* the STKChannelResolver uses the configured channels (see configuration)
* default value is Channel.ALL
* a {{channel}} parameter can be passed to oversteer the mechanism

*Device*
* device detection filter only detects the device
** setups DeviceCapability (set as a context attribute, use IoC to get the object)
* this information is used by the {{ChannelResolver}} invoked by the multi channel filter

h3. Caching

* the channel is part of the cache key

h3. Rendering

* the default RenderableVariationResolver uses the current channel name

h3. Content Structure

* content can be marked for specific channels (multiple channels)
* in the STK we provide a tab used by all the page properties dialogs
** channels are read from site.channels
** the some tab can be used by components if needed
* the channels are stored in the multivalue property {{channels}}
* if no such channel property exists the content is available in all channels

h3. Content Delivery

* urls to {{/website/\*}} map to the physical workspace {{website}}
* {{/\*}} maps to the virtual workspace {{magnolia}}
* the virtual workspace
** uses the channel property of the aggregation state and the content to exclude/include content
** mainly a content filter
* implemented by a filtering session wrapper
* the virtual workspace is registered on startup

h3. Configuration

* the channels are configured in site/channelConfigurations (ordered map)
* each channel has a _resolver_ (an interface)
* used by the global ChannelResolver
* first match wins

h3. AdminCentral

* open /website/\* url
* make it configurable

*Alternative: request parameter*
* pass the channel request parameter {{mgnlChannel=\[ALL|mobile|tablet|etc.\]}} in the URL
* should we do that for the site name
* use the new named and pimped selectors