This post give's an overview of the configuration associated with Explore Mode (formerly the Experience Explorer) in Sitecore 8. It's the first in an ongoing series taking a deep dive into this feature. For more general information, read my introductory post.
Post Last updated for Sitecore 8.0 (rev. 141212)
The configuration for Explore mode is supplied (as far as I can tell) from 2 files, Sitecore.ExperienceExplorer.config and Sitecore.ExperienceExplorer.Speak.Requests.config.
ExperienceModePipeline.Enabled
This is a global setting for for enabling/disabling Explore Mode. You can use to this to ensure that Sitecore does not needlessly run processors related to this feature in content delivery environments. By default, Explore Mode is enabled.
One command, experienceexplorer:expview is defined for Explore Mode, which is fired when you click the "Explore" button in the Experience Editor. It the reloads the current page in Explore Mode if the following criteria are met:
Sitecore.ExperienceExplorer.config adds a xaml file watcher to the path "/sitecore/shell/override". I have to say I'm a little confused about this one. There's nothing about the file types or path in the configuration that is specific to Explore Mode. My guess is that it has a more generic purpose and somehow ended up in this file mistakenly. If you know better, let me know.
The Sitecore.ExperienceExplorer.Speak.Requests.config include file contains 2 declarations of Speak request processors used within Explore mode.
ExperienceExplorer.ExplorerMode.CanExplore
This request processor supplies a boolean value to indicate whether or not the current request is eligible to use explore mode. To return true, it has the following requirements.
ExperienceExplorer.ExplorerMode.Explore
The request processor activates Explore Mode and converts the current request's URL in to one that can be used while in that mode. The steps involved in activation are:
This details within this post will be more fleshed out as my own understanding of the system improves.
Post Last updated for Sitecore 8.0 (rev. 141212)
The configuration for Explore mode is supplied (as far as I can tell) from 2 files, Sitecore.ExperienceExplorer.config and Sitecore.ExperienceExplorer.Speak.Requests.config.
Settings
ExperienceModePipeline.Enabled
This is a global setting for for enabling/disabling Explore Mode. You can use to this to ensure that Sitecore does not needlessly run processors related to this feature in content delivery environments. By default, Explore Mode is enabled.
ExperienceExplorer.GeoTestingIp
This setting specifies an IP address to use when testing Maxmind connectivity.
This setting specifies an IP address to use when testing Maxmind connectivity.
ExperienceExplorer.ModelPopulationThreshold
This setting specifies number of milliseconds that Sitecore will allow before logging a "Long running operation" warning when populating a model.
Query String Settings
As part of the experience editor, Explore mode makes heavy use of query string parameters, and the keys used for these parameters can be specified via configuration settings. Right now, I'm struggling to think of a reason why I would ever need to change the defaults, but I'm all for configurability!
Explore mode has to put a lot of effort in to circumventing the normal course of a request. So as you might expect, it inject its own processors in to a number of different pipelines. (Note, I've documented some of these already, and will complete the rest as this blog series progresses).
httpRequestBegin
httpRequestEnd
renderLayout
getContentEditorWarnings
getItemPersonalizationVisibility
processItem
commitSession
startTracking
getPageEditorNotifications
This setting specifies number of milliseconds that Sitecore will allow before logging a "Long running operation" warning when populating a model.
Query String Settings
As part of the experience editor, Explore mode makes heavy use of query string parameters, and the keys used for these parameters can be specified via configuration settings. Right now, I'm struggling to think of a reason why I would ever need to change the defaults, but I'm all for configurability!
- ExperienceExplorer.AddOnQueryStringKey - Default value is "sc_expview",
- ExperienceExplorer.ContextDeviceIdQueryStringKey - Default value is "sc_exp_deviceid"
- ExperienceExplorer.ContextItemIdQueryStringKey - Default value is "sc_exp_itemid".
- ExperienceExplorer.PresetQueryStringKey - Default value is "sc_preset".
- ExperienceExplorer.PreviewDateQueryStringKey - Default value is "sc_preview".
- ExperienceExplorer.VisitorIdQueryStringKey - Default value is "sc_visitorid".
Pipelines
Explore mode has to put a lot of effort in to circumventing the normal course of a request. So as you might expect, it inject its own processors in to a number of different pipelines. (Note, I've documented some of these already, and will complete the rest as this blog series progresses).
- EnableExperienceModePipeline
- PresetResolverPipeline
- DevicePipeline
- PreviewResolverPipeline
- ContextItemPipeline
- ExecuteRequest
httpRequestEnd
- LoginVirtualUser
- RetrieveRenderingsPipeline
renderLayout
- InjectExperienceExplorerControlPipeline
getContentEditorWarnings
- GetMultiVariantWarnings
getItemPersonalizationVisibility
- ResolveExplorerPresetsRoot
processItem
- InteractionValuePipeline
- ProfilesPipeline
commitSession
- PreventSessionCommitPipeline
startTracking
getPageEditorNotifications
- GetExperienceExplorerNotification
Commands
One command, experienceexplorer:expview is defined for Explore Mode, which is fired when you click the "Explore" button in the Experience Editor. It the reloads the current page in Explore Mode if the following criteria are met:
- The ExperienceModePipeline.Enabled configuration setting must be set to true;
- The context definition must not specifiy the enableExperienceExplorer property as false (if the property isn't present, it's assumed value is true).
Watchers
Sitecore.ExperienceExplorer.config adds a xaml file watcher to the path "/sitecore/shell/override". I have to say I'm a little confused about this one. There's nothing about the file types or path in the configuration that is specific to Explore Mode. My guess is that it has a more generic purpose and somehow ended up in this file mistakenly. If you know better, let me know.
Speak Request Processors
The Sitecore.ExperienceExplorer.Speak.Requests.config include file contains 2 declarations of Speak request processors used within Explore mode.
This request processor supplies a boolean value to indicate whether or not the current request is eligible to use explore mode. To return true, it has the following requirements.
- The user must be an administrator.
- The user must be a member of the role "sitecore\\Experience Explorer".
- Explore mode must be enabled for the site.
- The Explore Mode pipeline must be enabled.
ExperienceExplorer.ExplorerMode.Explore
The request processor activates Explore Mode and converts the current request's URL in to one that can be used while in that mode. The steps involved in activation are:
- Apply the current user to the Experience Explorer model (ModuleManager.SetRealUser).
- Activate the experience editor's Preview mode (WebEditCommand.ActivatePreview).
- Set a flag indicating that the Explore button was clicked (ModuleManager.IsExpButtonClicked).
- Append the following querystring paramters to the URL: "sc_expview=1", "sc_mode=normal", "sc_usesitestartpath=true"
This details within this post will be more fleshed out as my own understanding of the system improves.
Comments
Post a Comment