Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
Sitecore SIP 4.0 Architectural Changes in SIP 4.0 Rev: 23 May 2013
Sitecore® is a registered trademark. All other brand and product names are the property of their respective holders. The contents of this document are the property of Sitecore. Copyright © 2001-2013 Sitecore. All rights reserved.
Sitecore SIP 4.0
Architectural Changes in SIP 4.0 A developer's guide to the important changes that have been implemented in SIP 4.0
Sitecore SIP 4.0
Sitecore® is a registered trademark. All other brand and product names are the property of their respective holders. The contents of this document are the property of Sitecore. Copyright © 2001-2013 Sitecore. All rights reserved.
Page 2 of 24
Table of Contents
Chapter 1 Introduction .......................................................................................................................... 3 Chapter 2 Global Changes................................................................................................................... 4
2.1 SIP is no Longer an Out of the Box Intranet Solution ............................................................. 5 2.1.1 Features in SIP 4.0.............................................................................................................. 5 2.1.2 All SIP Features are Separated into Modules ..................................................................... 5 2.1.3 SIP 4.0 Contains No Front-end UI Elements ...................................................................... 6 2.1.4 Features Removed from SIP 4.0 ......................................................................................... 6
2.2 Architecture Changes for the Modular Approach .................................................................... 7 2.2.1 The Modules Work Independently ...................................................................................... 8 2.2.2 SIP 4.0 Works in Live Mode ................................................................................................ 8
Chapter 3 The SIP Modules ................................................................................................................. 9 3.1 Easy Upload Module ............................................................................................................. 10
3.1.1 Interaction with Other Modules ......................................................................................... 11 3.2 RSS Engine Module .............................................................................................................. 12
3.2.1 Interaction with Other Modules ......................................................................................... 13 3.3 Draft Mode Module ................................................................................................................ 14 3.4 User Profile Module ............................................................................................................... 16 3.5 DCF (Data Channel Framework) Module ............................................................................. 18 3.6 Search Module ...................................................................................................................... 20 3.7 Language Engine Module ..................................................................................................... 21
3.7.1 Interaction with Other Modules ......................................................................................... 23 3.8 Site Tools Module ................................................................................................................. 24
Architectural Changes in SIP 4.0
Sitecore® is a registered trademark. All other brand and product names are the property of their respective holders. The contents of this document are the property of Sitecore. Copyright © 2001-2013 Sitecore. All rights reserved.
Page 3 of 24
Chapter 1
Introduction
This document describes the key architectural changes that have been implemented in SIP 4.0.
In earlier versions of SIP it was very difficult to leverage functionality from the core CMS platform and to integrate with other modules in the Sitecore portfolio — DMS, Web Forms for Marketers, Email Campaign Manager, Multi-site Foundry, and so on. We have therefore decided to implement a new architecture.
SIP in now developed in a modular fashion. This means that the key pieces of functionality that together make up the Intranet product, can be deployed together or as individual modules and can be easily integrated with Sitecore CMS and other Sitecore products.
This document describes some of the core technical changes that have been implemented to facilitate this modular approach.
This document contains the following chapters:
Chapter 1 — Introduction This introduction to the manual.
Chapter 2 — Global Changes This chapter describes the important global changes that have been made in SIP 4.0.
Chapter 3 — The SIP Modules This chapter describes each module in the new SIP 4.0 architecture and lists the important changes that have been implemented in each module.
Sitecore SIP 4.0
Sitecore® is a registered trademark. All other brand and product names are the property of their respective holders. The contents of this document are the property of Sitecore. Copyright © 2001-2013 Sitecore. All rights reserved.
Page 4 of 24
Chapter 2
Global Changes
This chapter describes the important global changes that have been made in SIP 4.0.
This chapter contains the following sections:
SIP is no Longer an Out of the Box Intranet Solution
Architecture Changes for the Modular Approach
Architectural Changes in SIP 4.0
Sitecore® is a registered trademark. All other brand and product names are the property of their respective holders. The contents of this document are the property of Sitecore. Copyright © 2001-2013 Sitecore. All rights reserved.
Page 5 of 24
2.1 SIP is no Longer an Out of the Box Intranet Solution
Based on the enormous amount of feedback that we received from partners and developers, we have removed all the pre-configured visual elements and features that were restricting development with SIP.
As a result of this fundamental change, SIP is no longer an out of the box Intranet portal solution. SIP is now a flexible platform on which you can build Intranet solutions. We are leveraging best-practice CMS methodology and leaving all the front-end customization and implementation to the developers.
We have therefore removed the elements that constrained developers, such as, the web part features and the restrictive CSS page layout templates from the product.
However, to demonstrate how our current range of features works on an Intranet site, we have created a set of sample pages for SIP 4.0. These pages are available as a Sitecore package that you can download from the SDN.
Important We recommend that you do not use these sample pages in production environments. However, you can extend them to suit your requirements.
2.1.1 Features in SIP 4.0
The following core Intranet-specific functionality has been retained and improved:
Easy Editing — you can use the Page Editor to quickly create, edit, and save intranet content.
Easy Uploading — you can easily upload attachments to a page. This feature uses Silverlight.
Private Drafts — when you edit and save a content item it is saved as a private draft. Private drafts can only be viewed by you and other specific users that you have shared them with. The private drafts functionality is based on the CMS workflow system and can be extended accordingly.
Language Fallback Engine — you can specify a default corporate language for your Intranet solution as well as multiple local languages for different territories. This feature acts as a fallback mechanism — if the content is not available in the local language, it is displayed in the corporate language.
Intranet User Profiles — these are pre-defined data templates that store standard information about user profiles.
Data Channel Framework — you can segment information on the Intranet according to specific target groups. A target group can be any group of users, for example, corporate departments.
Search — the Intranet search feature uses the new Lucene.DLL that is included in CMS 6.6
to search within documents and related pages on your Intranet.
2.1.2 All SIP Features are Separated into Modules
All the SIP functionality is now contained in the following modules:
Draft Mode
Language Fallback Engine
Search
RSS
Sitecore SIP 4.0
Sitecore® is a registered trademark. All other brand and product names are the property of their respective holders. The contents of this document are the property of Sitecore. Copyright © 2001-2013 Sitecore. All rights reserved.
Page 6 of 24
DCF — Data Channel framework
User Profiles
Easy Upload — based on Silverlight
Site Tools
2.1.3 SIP 4.0 Contains No Front-end UI Elements
The only UI elements that SIP 4.0 contains are:
Localized placeholder — the Language Engine module.
Easy Upload module:
o Easy Upload control.
o Slideshow dialog.
DCF module:
o Target Groups page.
o User Target Groups control.
Draft Mode module — Draft Mode Info control.
These are renderings, placeholders, and dialog boxes that developers can integrate with their own templates.
2.1.4 Features Removed from SIP 4.0
The following features have been removed from SIP 4.0:
Activity Calendar
Phonebook
Interactive Organisation Charts
Employee Handbook
Discussion Forum
Blogs
Project Room
Message Board
Canteen Menu
Booking form
Image Slideshow
Quick Polls
Automatic sitemap
Architectural Changes in SIP 4.0
Sitecore® is a registered trademark. All other brand and product names are the property of their respective holders. The contents of this document are the property of Sitecore. Copyright © 2001-2013 Sitecore. All rights reserved.
Page 7 of 24
2.2 Architecture Changes for the Modular Approach
The following key changes have been made in SIP 4.0 to accommodate the new modular architecture.
Every Namespace has been changed to reflect the new modular structure
The various classes have been allocated to the appropriate modules and have therefore been given new namespaces to reflect the module that they belong to.
Each module has its own settings file
Each module has its own include file that you can use to add the necessary changes to the
web.config file.
The include files contain the settings that relate to the current module.
For example, the following modules contain a setting that specifies the target sites:
Module Setting
Language Engine Intranet.LanguageEngine.Sites
Draft Mode Intranet.DraftMode.Sites
When you use these settings, the features in the current module are only applied to the target sites that you specify.
There is no unified Intranet Settings file
Each individual module has its own settings item. The settings items are stored at:
/sitecore/System/Modules/Intranet/[Module Name]/Settings
Sitecore.Intranet.dll is not the only SIP assembly
Because all the SIP functionality has been split into modules, you should use the individual module libraries to perform SIP related functions.
The Intranet.Util class has been discontinued
The Intranet.Util class has been discontinued because every module would have to reference
this library. It would therefore be impossible to use the modules with other products without
referencing the Intranet.Utill.dll.
A number of modules have their own pipelines
To allow customers to change the behavior of SIP, we have created pipelines for a subset of the modules.
The following modules have their own pipelines:
Language Engine
Search
RSS
User profiles
Site Tools
For more information about each of the SIP modules, see the section The SIP Modules.
Sitecore SIP 4.0
Sitecore® is a registered trademark. All other brand and product names are the property of their respective holders. The contents of this document are the property of Sitecore. Copyright © 2001-2013 Sitecore. All rights reserved.
Page 8 of 24
Modules use the Sitecore.Configuration.Factory class to access each other
To allow individual modules to use the logic in the other modules, we use the
Sitecore.Configuration.Factory class. The Sitecore.Intranet assembly contains
abstractions and their default implementations. It registers these default implementations in the
Sitecore.Configuration.Factory class.
The individual modules contain implementations of the appropriate abstractions and register them in
Sitecore.Configuration.Factory class instead of the default implementations.
For more information about the Sitecore.Configuration.Factory class, see the blog
http://www.sitecore.net/Community/Technical-Blogs/John-West-Sitecore-Blog/Posts/2011/02/The-Sitecore-ASPNET-CMS-Configuration-Factory.aspx.
2.2.1 The Modules Work Independently
If you do not need certain modules and do not deploy them, the rest of the modules will still work together.
If you remove a number of modules from the solution, the remaining modules will still work together.
2.2.2 SIP 4.0 Works in Live Mode
SIP 4.0 has only been tested to work in live mode. In subsequent releases Sitecore will support implementing SIP 4.0 in a distributed environment — with multiple Core, Master, and Web databases spread across distributed Content Delivery and Content Management servers.
Architectural Changes in SIP 4.0
Sitecore® is a registered trademark. All other brand and product names are the property of their respective holders. The contents of this document are the property of Sitecore. Copyright © 2001-2013 Sitecore. All rights reserved.
Page 9 of 24
Chapter 3
The SIP Modules
This chapter lists the technical changes that have been made to each module in the new architecture.
This chapter contains the following section:
Easy Upload Module
RSS Engine Module
Draft Mode Module
User Profile Module
DCF (Data Channel Framework) Module
Search Module
Language Engine Module
Site Tools Module
Sitecore SIP 4.0
Sitecore® is a registered trademark. All other brand and product names are the property of their respective holders. The contents of this document are the property of Sitecore. Copyright © 2001-2013 Sitecore. All rights reserved.
Page 10 of 24
3.1 Easy Upload Module
The following changes have been made to the Easy Upload module:
Config Changes
The module settings have been moved to the following config files:
o App_config\Include\Intranet\Modules\Intranet.EasyUpload.config
o App_config\Include\Intranet\Modules\Intranet.Attachments.config
The Intranet.EasyUpload.ShowInBrowseMode setting has been added.
If this setting is set to true, the control is shown in both browse mode and in the Page Editor.
If this setting is set to false, the control is only shown in the Page Editor.
The <ignore contains="EasyUpload/UploadTarget.aspx"/> node has been added
to the shell rule node of the AntiCsrf configuration.
You must use the EasyUpload control to fix uploading files.
The <Attachments> node has been added.
This setting lets you use the features of the Easy Upload module within the other modules.
You must use the Sitecore.Configuration.Factory class to do this.
For more information about the Sitecore.Configuration.Factory class, see the blog
http://www.sitecore.net/Community/Technical-Blogs/John-West-Sitecore-Blog/Posts/2011/02/The-Sitecore-ASPNET-CMS-Configuration-Factory.aspx.
The media:upload command has been renamed as media:intranetupload.
Code Changes
All the classes have been moved to the following namespaces:
o Sitecore.Intranet.EasyUpload
o Sitecore.Intranet.Attachments
All the layouts have been deleted except FileDropAreaUpload.ascx.
FileDropAreaUpload.ascx has been renamed as EasyUpload.ascx.
The base class of the UploadTarget class has been changed from
Sitecore.Shell.Web.UI.SecurePage to System.Web.UI.Page.
This class allows everyone to upload files — not just users who are logged in.
The authentication mechanism has been changed.
If the user is not logged in, the files are uploaded by the sitecore\anonymous user.
The Attachments class has been added.
This class implements the IAttachments interface and provides a number of Easy Upload
module features that you can use in other modules.
The UploadTarget property has been added to the EasyUpload control.
This property specifies the destination that the files are uploaded to. If the UploadTarget
property is empty, the control tries to upload the files to the File Drop Area destination of the current item.
Architectural Changes in SIP 4.0
Sitecore® is a registered trademark. All other brand and product names are the property of their respective holders. The contents of this document are the property of Sitecore. Copyright © 2001-2013 Sitecore. All rights reserved.
Page 11 of 24
Item Changes
The Easy Upload Settings template has been added.
This template contains the parameters of the EasyUpload sublayout.
The master\sitecore\layout\Sublayouts\Tools\File Drop Area Upload
sublayout has been renamed as Easy Upload and moved to
master\sitecore\layout\Sublayouts\Intranet\Easy Upload.
3.1.1 Interaction with Other Modules
The Easy Upload module affects the behavior of the following modules:
Search — makes it possible to search through shared attachments.
Site Tools — makes it possible to edit shared attachments.
Sitecore SIP 4.0
Sitecore® is a registered trademark. All other brand and product names are the property of their respective holders. The contents of this document are the property of Sitecore. Copyright © 2001-2013 Sitecore. All rights reserved.
Page 12 of 24
3.2 RSS Engine Module
The following changes have been made to the RSS Engine module:
Config Changes
The SIP_RSS.config file has been renamed as
App_config\Include\Intranet\Modules\Intranet.RSS.config. All the module
settings have been moved to it.
The Intranet.FeedPrefix setting has been renamed as Intranet.RSS.FeedPrefix.
The PortalRSSFeeds.Enabled setting has been renamed as Intranet.RSS.Enabled.
The Intranet.RSS.Site setting has been added.
The Intranet.RSS.RemoveTagsIfFieldNotFound setting has been added.
This setting specifies the source database for the RSS Engine module.
The detectFeedRequest pipeline has been removed.
The SIP_Feeds pipelines group has been renamed as RSSEngine.
The <RSS> node has been added.
This setting lets you use the features of the RSS module within other modules. You must use
the Sitecore.Configuration.Factory class to do this.
The <rssSettings>, <rssDataService>, and <processorHelpersFactory> nodes
have been added to implement dependency injection within the RSS module.
param nodes have been added under the processor nodes to pass the necessary
parameters using dependency injection.
For more information about dependency injection see the blog http://www.sitecore.net/Community/Technical-Blogs/John-West-Sitecore-Blog/Posts/2011/02/Dependency-Injection-with-the-Sitecore-ASPNET-CMS.aspx.
Code Changes
All the classes have been moved to the Sitecore.Intranet.RSS namespace.
The Settings class has been added.
This class contains settings from both the configuration file and the configuration item.
The FeedSectionKeys class has been deleted.
The logic of the ExpandRSSBodyMarkers class has been changed. If there is no field for the
marker, it is removed from the body.
The IntranetPortalFeed class has been renamed as RSSEngineFeed.
The CurrentIntranetSite property has been moved from the IntranetUtil class to
the Settings class and renamed as Site.
The FeedHelper class has been renamed as RSS and the IsFeedRequest property has
been removed from it.
All the methods of the LocalizedXslHelper class have been removed except:
o bool RssFeedsEnabled(XPathNodeIterator iterator)
o string GetItemFeedURL(XPathNodeIterator iterator)
The IDataService interface has been added. It specifies methods to get updated items.
Architectural Changes in SIP 4.0
Sitecore® is a registered trademark. All other brand and product names are the property of their respective holders. The contents of this document are the property of Sitecore. Copyright © 2001-2013 Sitecore. All rights reserved.
Page 13 of 24
The DataService class implements the IDataService interface now. It has been moved
to the Sitecore.Intranet.RSS namespace.
The ItemEqualityComparer and SearchUtil utility classes have become internal.
Item Changes
The RSS Feed Entry Content template has been moved from
/sitecore/templates/Intranet/Configuration to
/sitecore/templates/Intranet/RSS.
This template has also been assigned a new ID.
The RSS Settings template has been created in
/sitecore/templates/Intranet/RSS.
This template is used to configure the settings in the RSS Engine module.
A Settings item has been created in /sitecore/system/Modules/Intranet/RSS.
The IntranetPortalFeed item has been renamed as RSSEngineFeed.
3.2.1 Interaction with Other Modules
The DCF module affects the behavior of the RSS module in the following way:
It adds an implementation of the IDataChannelFramework interface. This means that the
DCF filtration logic is applied to feeds.
Sitecore SIP 4.0
Sitecore® is a registered trademark. All other brand and product names are the property of their respective holders. The contents of this document are the property of Sitecore. Copyright © 2001-2013 Sitecore. All rights reserved.
Page 14 of 24
3.3 Draft Mode Module
The following changes have been made to the Draft Mode module:
Config Changes
The settings for the Draft Mode module are now contained in a separate configuration file —
App_config\Include\Intranet\Modules\Intranet.DraftMode.config.
The <extension namespace=http://www.sitecore.net/dm …> node has been
added to the xslExtensions.
This namespace extension defines the method that is used to check whether or not an item is a private draft and to get the URL link that is used to share the draft with other users.
A private draft is not accessible to other users who are not the owner of the item unless you have specifically shared it with them.
The Intranet.DraftWorkflows setting has been renamed as
Intranet.DraftMode.DraftWorkflows.
The Intranet.DraftMode.Sites setting has been added.
This setting specifies which websites the draft mode feature should be applied to.
The <DraftMode> and <DraftModeDiscardChanges> nodes have been added.
These settings let you use the features of the Draft Mode module within other modules. You
must use the Sitecore.Configuration.Factory class to do this.
The <draftModeSettings> and <draftModeShareLinkProvider> nodes have been
added to implement dependency injection within the Draft Mode module.
The param nodes have been added under some nodes to use dependency injection to pass
the necessary parameters.
For more information about dependency injection see the blog http://www.sitecore.net/Community/Technical-Blogs/John-West-Sitecore-Blog/Posts/2011/02/Dependency-Injection-with-the-Sitecore-ASPNET-CMS.aspx.
Code Changes
All the Draft Mode module classes have been moved to the
Sitecore.Intranet.DraftMode namespace.
The DraftModeXslHelper class has been added.
This class provides the xslt extension that works with the draft mode logic.
The following changes have been made to the DraftModeUtil class:
o The class implements the IDraftMode interface that specifies the core methods of the
Draft Mode module.
o The WorkflowInfo GetDraftInfo(Item item) method has been removed.
You can use the
Sitecore.Context.Database.DataManager.GetWorkflowInfo(item) method
instead.
o The IWorkflow GetWorkflow(string workflowID) method has been removed.
Architectural Changes in SIP 4.0
Sitecore® is a registered trademark. All other brand and product names are the property of their respective holders. The contents of this document are the property of Sitecore. Copyright © 2001-2013 Sitecore. All rights reserved.
Page 15 of 24
You can use the Sitecore.Context.Database.WorkflowProvider.GetWorkflow(workflowID)
method instead.
o The DraftWorkflowIDs property has been moved to the Settings class.
o The GetAllItemVersions methods have been removed.
o The overrides of the HasAnyPublishableVersion and IsVersionAccessible
methods have been deleted.
o The IsDraftWorkflow, IsDraftState, IsItemAccessedViaShareLink and
IsUserOwnerOfVersion methods have become protected.
The DiscardChanges class has been added.
All the methods related to the Discard Changes command have been move to this class.
The ShareLinkProvider class has been added.
All the methods related to Share Link have been moved to this class.
The IsFilterItemsEnabled() and IsDraftModeSite() methods have been moved
from the IntranetUtil class to the DraftModeItemProvider class.
The ItemUtil and DraftModeStringUtil classes have become internal.
The Settings class has been added.
Item Changes
The Use Draft Mode Workflow template has been added.
If you want to use draft mode with a content item, this template must be one of its base templates.
If you do not want to use draft mode with a content item, this template must not be one of its base templates.
Tools
In the Enable draft mode wizard, a Selects sites step has been added.
This step only appears if the Intranet.DraftMode.Sites setting contains more than one
site. The changes are applied to the sites that you select.
Sitecore SIP 4.0
Sitecore® is a registered trademark. All other brand and product names are the property of their respective holders. The contents of this document are the property of Sitecore. Copyright © 2001-2013 Sitecore. All rights reserved.
Page 16 of 24
3.4 User Profile Module
The following changes have been made to the User Profile module:
Config Changes
The App_config\Include\Intranet\Modules\Intranet.Profiles.config file has
been added.
The getSiteLanguageList node has been added to the pipelines.
This node adds the GetUserPreferredLanguage processor to the top of the
getSiteLanguageList pipeline that is specified in the Language Engine module.
The Intranet.UserProfileTreeDepth setting has been renamed as
Intranet.Profiles.UserProfilesTreeDepth.
The Intranet.Profiles.UserProfilesFolder setting has been added.
This setting specifies the folder in the content tree under that user profiles are stored in.
The UserProfile setting has been moved from the
App_Config\IntranetSettings.config file to the Intranet.Profiles.config file
and the setting has been renamed as Intranet.Profiles.UserProfileTemplate.
The <UserProfileProvider> node has been changed.
This setting lets you use the features of the User Profile module within other modules. You
must use the Sitecore.Configuration.Factory class to do this.
o The providers sub-node has been removed.
o The excludeDomains attribute of the UserProfileProvider node has been moved
to the Intranet.Profiles.ExcludeDomains setting.
o The createUserProfiles attribute of the UserProfileProvider node has been
removed.
o The param node has been added under the UserProfileProvider node to pass the
necessary parameters using dependency injection.
The <profilesSettings> node has been added to implement dependency injection within
the User Profile module.
For more information about dependency injection see the blog http://www.sitecore.net/Community/Technical-Blogs/John-West-Sitecore-Blog/Posts/2011/02/Dependency-Injection-with-the-Sitecore-ASPNET-CMS.aspx.
Code Changes
All the User Profile module classes have been moved to the
Sitecore.Intranet.Profiles namespace.
The GetUserPreferredLanguage class has been added.
This class is the processor of the getSiteLanguageList pipeline. It adds the user
preferred language to the list of languages.
The following changes have been made to UserProfileProvider class:
o The ExcludeDomains and CreateUserProfiles properties have been removed.
o The Initialize, GetProfile, and CreateUserProfile methods have been
removed.
Architectural Changes in SIP 4.0
Sitecore® is a registered trademark. All other brand and product names are the property of their respective holders. The contents of this document are the property of Sitecore. Copyright © 2001-2013 Sitecore. All rights reserved.
Page 17 of 24
o The bool CreateProfile(string userName) and IUserProfile
GetProfile(string userName) methods have been added.
o The UserProfileProvider class is no longer derived from
System.Configuration.Provider.ProviderBase.
The following properties and methods have been removed from the Profile class:
o CanteenItem
o ProfileItemID
o Favorites
o Name
o DisplayName
o HasInitials
o SetPreferredCanteen
The GetFavorites method has been added to the Profile class.
The Settings class has been added.
This class provides the settings from the configuration file.
Item Changes
The /sitecore/content/Intranet/User Profiles item has been added.
The user profile items are stored in this item.
The Intranet.User Profile template has been renamed as User Profile and it has
been moved to the /sitecore/templates/Intranet/User Profiles folder.
The Canteen field has been removed from the User Profile template.
The Intranet.UserProfile branch has been renamed as User Profile and it has
been moved to /sitecore/templates/Branches/Intranet/User Profiles.
Sitecore SIP 4.0
Sitecore® is a registered trademark. All other brand and product names are the property of their respective holders. The contents of this document are the property of Sitecore. Copyright © 2001-2013 Sitecore. All rights reserved.
Page 18 of 24
3.5 DCF (Data Channel Framework) Module
The following changes have been made to the DCF (Data Channel Framework) module:
Config Changes
The App_config\Include\Intranet\Modules\Intranet.DCF.config file has been
added.
The <DataChannelFramework> node has been added.
This setting lets you use the features of the DCF module within other modules. You must use
the Sitecore.Configuration.Factory class to do this.
o The param node has been added. This node uses dependency injection to pass the
necessary parameters.
The <DCFSettings> node has been added to implement dependency injection within the
DCF module.
Code Changes
All the DCF module classes have been moved to the Sitecore.Intranet.DCF
namespace.
The Sitecore.Intranet.Fields.IntranetTargetGroupsField class has been
removed.
The Sitecore.Modules.DataChannelFramework.WebControls.UserTargetGroupsTre
e class has been removed.
The SettingsItemId property has been added to the Constants class.
This property contains the ID of the item that contains the settings for the DCF module.
The IntranetSettings.DCFIsDisabled property has been removed.
The following methods have been added to the TargetGroupsManager class:
o GetItemSubscriptionsValue — takes an item and returns a pipe separated list of
the target group IDs that have been entered in the Target Groups field of the item
o SetItemSubscriptionsValue — takes an item and a pipe separated list of target
group IDs and enters the target group IDs in the Target Groups field of the item.
The DataChannelFramework class has been added.
This class implements the IDataChannelFramework interface and provides a number of
DCF module features that you can use in other modules. You must use the
Sitecore.Configuration.Factory class to do this.
The Settings and Texts classes have been added.
The Sitecore.Intranet.forms.ProfileDCFEditor.Editor page has been changed:
o This page has been renamed as TargetGroupsForm.
o It has been moved to the Sitecore.Intranet.DCF.UI.Forms namespace.
o You can now edit the Target Groups of an item.
To edit the Target Groups of an item, you must add the ID of the target item to the query string.
Architectural Changes in SIP 4.0
Sitecore® is a registered trademark. All other brand and product names are the property of their respective holders. The contents of this document are the property of Sitecore. Copyright © 2001-2013 Sitecore. All rights reserved.
Page 19 of 24
The UserTargetGroups control has been added. Place this control on the page if you want
the current user to be able to edit the Target Groups.
Item Changes
The master\sitecore\content\Intranet\Site config\Target Groups item has
been moved to master\sitecore\content\Intranet\Data Channel Framework.
The master\sitecore\content\Intranet\Home\Site tools\UserTargetGroups
item has been renamed as Target Groups From and moved to
master\sitecore\content\Intranet\Data Channel Framework.
The master\sitecore\layout\Layouts\Frontend Editor\Intranet
FrontendEditing UserTargetGroups layout has been renamed as Target Groups
Form and moved to master\sitecore\layout\Layouts\Intranet\Data Channel
Framework.
The master\sitecore\layout\Sublayouts\Intranet\Data Channel
Framework\User Target Groups sublayout has been added.
Place it on the page if you want the current user to be able to edit the Target Groups.
The master\sitecore\templates\Intranet\Intranet.TargetGroup template has
been renamed as Target Group and moved to master\sitecore\templates\Intranet\Data Channel Framework\Target
Groups.
The Target Groups section of master\sitecore\templates\Intranet\Base
templates\Intranet.BaseTemplate template has been moved to a separate template master\sitecore\templates\Intranet\Data Channel Framework\Target
Groups\Target Groups.
The master\sitecore\templates\Intranet\Intranet.FrontendEditing.UserTarge
tGroups template has been renamed as Target Groups Form and moved to master\sitecore\templates\Intranet\Data Channel Framework\Target
Groups.
The core\sitecore\system\Field types\Intranet\Target Groups item has
been moved to core\sitecore\system\Field types\Intranet\Target Groups.
Sitecore SIP 4.0
Sitecore® is a registered trademark. All other brand and product names are the property of their respective holders. The contents of this document are the property of Sitecore. Copyright © 2001-2013 Sitecore. All rights reserved.
Page 20 of 24
3.6 Search Module
The following changes have been made to the Search module:
Config Changes
The App_config\Include\Intranet\Modules\Intranet.Search.config file has
been added.
The Intranet index has been added to the search indexes.
The search.filterPipeline pipeline has been added.
This pipeline is used to filter search result data.
The Intranet.Search.IndexName setting has been added.
This setting specifies the name of the Search module index.
Code Changes
All the Search module classes have been moved to the Sitecore.Intranet.Search
namespace.
The Sitecore.Intranet.Search.Crawlers.Crawler has been added.
This crawler is used to collect information for the search index.
All the auxillary classes of LuceneDocParser have been moved to separate classes in the
Sitecore.Intranet.Search.Parsers.LuceneDocParserClasses namespace.
The MediaUtils and AttachmentsHelper classes have become internal.
The Sitecore.Intranet.Search.Utils.Constants class has been added.
This class contains the following properties:
o BuiltinFields.IsMedia — this property is used to determine whether or not the item
in the index is a media item.
You can use this field to filter the data in the index.
o SearchPipelineNames.FilterPipelineName — this property specifies the name of
the pipeline.
You can use this pipeline to filter the search results.
o SearchPipelineNames.SearchResultCustomDataKey — this key is used to store
temporary search results as arguments of the search.filterPipeline pipeline .
The SearchHelper class has been added:
o The Search method has been added with overload.
This method is used to search for data in the search index.
o The Rebuild method has been added.
This method is used to rebuild the search index as required.
Architectural Changes in SIP 4.0
Sitecore® is a registered trademark. All other brand and product names are the property of their respective holders. The contents of this document are the property of Sitecore. Copyright © 2001-2013 Sitecore. All rights reserved.
Page 21 of 24
3.7 Language Engine Module
The following changes have been made to the module:
Config Changes
The
App_config\Include\Intranet\Modules\Intranet.LanguageEngine.config file
has been added.
The getSiteLanguageList pipeline has been added.
This pipeline returns a list of the languages that are used on the website.
The getContentLanguageList pipeline has been added.
This pipeline returns a list of the languages that are used for the content in on the website.
The Intranet.LanguageEngine.Sites setting has been added.
This setting specifies a list of the websites which the language engine features are applied to.
The <LanguageResolver> node has been added.
This setting lets you use the features of the Language Engine module within other modules.
You must use the Sitecore.Configuration.Factory class to do this.
The <LanguageEngineSettings>, <LanguageEngineListSource> nodes have been
added to implement dependency injection within the Language Engine module.
param nodes have been added under some nodes to pass the necessary parameters using
dependency injection.
Code Changes
All the Language Engine module classes have been moved to the
Sitecore.Intranet.LanguageEngine namespace.
The IntranetLanguageResolver class from the Sitecore.Intranet.Utils
namespace has been split into a number of classes:
o LanguageListSource
This class provides lists of website and content languages.
Note
To implement a custom LanguageListSource class, you must implement an
ILanguageListSource interface.
o GetDefaultLanguage
This class is a processor that adds the Sitecore context language to the list of languages.
o GetCorporateLanguage
This class is a processor for the getSiteLanguageList pipeline. It adds the corporate
language to the list of website languages.
o GetQueryStringLanguage
This class is a processor of the getContentLanguageList pipeline. It adds the
language from the current query string to the list of content languages.
Sitecore SIP 4.0
Sitecore® is a registered trademark. All other brand and product names are the property of their respective holders. The contents of this document are the property of Sitecore. Copyright © 2001-2013 Sitecore. All rights reserved.
Page 22 of 24
o LanguageResolver
This class provides methods that return the current site, content languages, and the specified item in these languages.
Note
To implement a custom LanguageResolver class, you must implement an
ILanguageResolver interface.
o LanguageSwitcher
This class lets you to switch the context language to the specified language. The context item also switches to a version in the language that you specify.
If there is no version available in the language that you specify, the context item switches to an empty version in the specified language.
o ContentAreaSwitcher
This class lets you switch the context language to the content language.
The context language is the standard CMS context language —
Sitecore.Context.Language.
The content language is specified by the getContentLanguageList pipeline.
o LanguageUtil
This class contains some auxiliary methods. For example, a method that checks the accessibility of the specified language for the current user.
This class is not available for external use.
o ContextManager
This class contains methods that let you switch the context language to a language that you specify.
This class is not available for external use.
The GetLanguageListAgrs class has been added.
This class represents the arguments of the getSiteLanguageList and
getContentLanguageList pipelines. It specifies the type of an object that is used to pass
the arguments though the pipelines.
To add a language to the appropriate list, you must add the language to the LanguageList
property of the GetLanguageListAgrs class.
You can also use the Sitecore.Pipelines.PipelineArgs class to pass the arguments
through the pipelines.
If you use the Sitecore.Pipelines.PipelineArgs class, you must add a new language
to the LanguageList element of the CustomData dictionary property.
At the beginning of each request, the SetContextLanguage processor sets the context
language to the site language.
The Sitecore.Intranet.Utils.LocalizedXslHelper class has been renamed as
LanguageEngineXslHelper.
Now the class only contains methods that relate to the Language Engine module. All the other methods have been removed.
The Sitecore.Intranet.HtmlControls.LocalizedPlaceholder control has been
renamed as ContentAreaPlaceholder and moved to the
Sitecore.Intranet.LanguageEngine.UI.WebControls namespace.
Architectural Changes in SIP 4.0
Sitecore® is a registered trademark. All other brand and product names are the property of their respective holders. The contents of this document are the property of Sitecore. Copyright © 2001-2013 Sitecore. All rights reserved.
Page 23 of 24
The Sitecore.Intranet.XslControls.ContentArea control has been renamed as
ContentAreaPlaceholder and moved to the
Sitecore.Intranet.LanguageEngine.UI.XslControls namespace.
The PipelineNames class has been added. It contains the names of the pipelines.
The Settings class has been added.
This class contains settings from both the configuration file and the configuration item.
The Text class has been added.
This class contains the texts which should be translated.
Item Changes
The master\sitecore\system\Modules\Intranet\Language Engine\Settings
item has been added.
This item contains the following setting:
o The CorporateLanguage field specifies the corporate language.
The master\sitecore\templates\Intranet\Language Engine\Language
Engine Settings template has been added.
3.7.1 Interaction with Other Modules
The User Profile module affects the behavior of the Language Engine module in the following way:
The User Profile module adds the GetUserPreferredLanguage processor to the top of the
getSiteLanguageList pipeline.
This means that the preferred language of the current user becomes the highest priority site language.
The Language Engine module affects the behavior of the following modules:
DCF
Draft Mode
Easy Upload
RSS Engine
Sitecore SIP 4.0
Sitecore® is a registered trademark. All other brand and product names are the property of their respective holders. The contents of this document are the property of Sitecore. Copyright © 2001-2013 Sitecore. All rights reserved.
Page 24 of 24
3.8 Site Tools Module
The following changes have been made to the module:
Config Changes
The App_config\Include\Intranet\Modules\Intranet.SiteTools.config file
has been added.
The webedit:close command has been renamed as webedit:intranetclose.
The <siteToolsSettings> node has been added to implement dependency injection
within the Site Tools module.
The param nodes have been added under some nodes to pass the necessary parameters
using dependency injection.
Code Changes
All the Site Tools module classes have been moved to the
Sitecore.Intranet.SiteTools namespace.
The Settings class has been added.
Item Changes
The core\sitecore\content\Applications\WebEdit\Ribbons\WebEdit\Buttons\Sa
ve and Close item has been added.