Page History
Wiki Markup |
---|
{rate}
{status:inprogress| |
...
4.5 |
...
}Implementation tracked in [MAGNOLIA-3895@jira]. |
Status |
---|
Rationale
...
{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 |
...
Detection
AggregationState
has achannel
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
Caching
- the channel is part of the cache key
Rendering
- the default RenderableVariationResolver uses the current channel name
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
Content Delivery
- urls to
/website/*
map to the physical workspacewebsite
/*
maps to the virtual workspacemagnolia
- 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
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
AdminCentral
- open /website/* url
- make it configurable
Alternative: request parameter
...
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 |
Overview
Content Tools