sip_developers_guide_41-a4

35
Sitecore Intranet Platform 4.1 Developer's Guide Rev: 20 March 2014 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-2014 Sitecore. All rights reserved. Sitecore Intranet Platform 4.1 Developer's Guide A Guide and Configuration Reference for Administrators and Developers

Transcript of sip_developers_guide_41-a4

Page 1: sip_developers_guide_41-a4

Sitecore Intranet Platform 4.1 Developer's Guide Rev: 20 March 2014

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-2014 Sitecore. All rights reserved.

Sitecore Intranet Platform 4.1

Developer's Guide A Guide and Configuration Reference for Administrators and Developers

Page 2: sip_developers_guide_41-a4

Sitecore Intranet Platform 4.1

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-2014 Sitecore. All rights reserved.

Page 2 of 35

Table of Contents

Chapter 1 Introduction .......................................................................................................................... 4 Chapter 2 The SIP Modules ................................................................................................................. 5

2.1 Draft Mode ............................................................................................................................... 6 2.1.1 Draft Versions ...................................................................................................................... 6 2.1.2 The Draft Workflow.............................................................................................................. 6 2.1.3 Sharing a Draft Version ....................................................................................................... 6 2.1.4 Who Is the Author of the Draft Version? ............................................................................. 7 2.1.5 How to Discard the Draft Version ........................................................................................ 7 2.1.6 Enabling Draft Mode ........................................................................................................... 7 2.1.7 Creating a Draft Workflow ................................................................................................... 8 2.1.8 Public API ............................................................................................................................ 8

Interfaces ...................................................................................................................................... 8 Classes ....................................................................................................................................... 10

2.1.9 Settings ............................................................................................................................. 11 2.1.10 Interaction with Other Modules ..................................................................................... 11

2.2 RSS ....................................................................................................................................... 12 2.2.1 RSS Settings ..................................................................................................................... 12 2.2.2 Disabling RSS Feeds ........................................................................................................ 12 2.2.3 The Feed Entry Content Field ........................................................................................... 12 2.2.4 Public API .......................................................................................................................... 13

Interfaces .................................................................................................................................... 13 Classes ....................................................................................................................................... 14 Pipelines ..................................................................................................................................... 15 Processors ................................................................................................................................. 16 Pipeline Arguments .................................................................................................................... 16

2.3 Language Engine .................................................................................................................. 18 2.3.1 How to Use the Language Engine Module ....................................................................... 18 2.3.2 Public API .......................................................................................................................... 18

Interfaces .................................................................................................................................... 18 Classes ....................................................................................................................................... 19 Pipelines ..................................................................................................................................... 20

2.3.3 User Interface .................................................................................................................... 21 2.3.4 Interaction with Other Modules ......................................................................................... 21

2.4 Profiles .................................................................................................................................. 22 2.4.1 Public API .......................................................................................................................... 22

Interfaces .................................................................................................................................... 22 Classes ....................................................................................................................................... 23 Processors ................................................................................................................................. 23 Pipelines ..................................................................................................................................... 23 Pipeline arguments .................................................................................................................... 23

2.5 Easy Upload .......................................................................................................................... 24 2.5.1 Settings ............................................................................................................................. 24 2.5.2 Managing Attachments ..................................................................................................... 24 2.5.3 Using the Silverlight Easy Upload Control ........................................................................ 24 2.5.4 Share Media ...................................................................................................................... 24 2.5.5 Public API .......................................................................................................................... 24

Interfaces .................................................................................................................................... 24 Classes ....................................................................................................................................... 25 Processors ................................................................................................................................. 25

2.5.6 Package Contents ............................................................................................................. 25 Layouts ....................................................................................................................................... 25 Models ........................................................................................................................................ 25 Renderings ................................................................................................................................. 25 Sublayouts .................................................................................................................................. 25 WebEdit buttons ......................................................................................................................... 25

Page 3: sip_developers_guide_41-a4

Developer's Guide

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-2014 Sitecore. All rights reserved.

Page 3 of 35

2.5.7 Commands ........................................................................................................................ 26 2.6 Site Tools .............................................................................................................................. 27

2.6.1 Package Contents ............................................................................................................. 27 2.6.2 Commands ........................................................................................................................ 27 2.6.3 Public API .......................................................................................................................... 27

Pipelines ..................................................................................................................................... 27 Pipeline arguments .................................................................................................................... 28

2.7 Send Email ............................................................................................................................ 29 2.7.1 Templates .......................................................................................................................... 29 2.7.2 Public API .......................................................................................................................... 29

Interfaces .................................................................................................................................... 29 Classes ....................................................................................................................................... 29 Pipelines ..................................................................................................................................... 30 Pipeline Arguments .................................................................................................................... 31

Chapter 3 Obsolete and Deprecated Modules................................................................................... 32 3.1 Search ................................................................................................................................... 33

3.1.1 Configuration ..................................................................................................................... 33 3.1.2 API ..................................................................................................................................... 33

3.2 DCF ....................................................................................................................................... 34 3.2.1 Obsolete Module API ........................................................................................................ 34 3.2.2 Obsolete Controls.............................................................................................................. 34

Offered Replacement ................................................................................................................. 34 3.2.3 Obsolete Templates: ......................................................................................................... 34

Page 4: sip_developers_guide_41-a4

Sitecore Intranet Platform 4.1

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-2014 Sitecore. All rights reserved.

Page 4 of 35

Chapter 1

Introduction

The Sitecore Intranet Platform Developers Guide gives an overview of Sitecore Intranet Platform (SIP) 4.1 modules and describes how to configure and use them. The guide provides basic information about the architecture, features and editing of SIP. It is primarily designed for SIP local developers who have permissions to edit a specific SIP website.

The Developer's Guide contains the following chapters:

Chapter 1, Introduction This chapter is a description of the content, aims, and the intended audience of this manual.

Chapter 2, Description of Modules This chapter describes the modules and how to configure SIP.

Chapter 3, Obsolete and Deprecated Modules This chapter describes the modules that have been removed from the SIP package and outlines how to replace the features.

Page 5: sip_developers_guide_41-a4

Developer's Guide

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-2014 Sitecore. All rights reserved.

Page 5 of 35

Chapter 2

The SIP Modules

SIP 4.1 is “modular.” The key pieces of functionality that make up the product can be deployed together or as separate modules and easily integrated into the CMS and other Sitecore products. To provide a flexible platform for intranet deployments, all front-end customization and implementation is left to the partners. If certain modules are not required or deployed, the rest of the modules will still work together.

This chapter describes all the SIP 4.1 modules, their usage, and configuration, and it provides a detailed description of the public API for each module.

This chapter contains the following sections:

Draft Mode

RSS

Language Engine

Profiles

Easy Upload

Site Tools

Send Email

Page 6: sip_developers_guide_41-a4

Sitecore Intranet Platform 4.1

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-2014 Sitecore. All rights reserved.

Page 6 of 35

2.1 Draft Mode

SIP lets users save draft pages. This feature is called draft mode. The Draft Mode module is based on CMS workflows. Draft mode is only enabled for specific workflows and sites. For more information on how to configure workflows and sites, see the section Settings.

Draft mode can be configured in the Intranet.DraftMode.config file. The Draft Mode module

replaces ItemProvider. Unlike the Language Engine or Profiles modules, you do not need any code to use this module. You can use public API to work with draft versions.

Important

To make draft mode work correctly in live mode, you must ensure to turn the enableWorkflows and

filterItems settings on for the sites that you want to use draft mode on.

2.1.1 Draft Versions

SIP supports draft versions. This allows users to save an item without publishing it on the intranet, and these items are only visible to the author in edit mode. A draft version is created when you edit an item that is in the Final workflow state. Similarly, a draft version is also created when you create a new item that is based on a template that has been assigned to the Draft workflow.

2.1.2 The Draft Workflow

SIP comes with the Draft workflow.

The Draft workflow contains two workflow states:

Draft – the item is unpublished

Published – the item is published

You can configure any number of Draft workflows.

The Use Draft Mode Workflow base template uses the Draft workflow by default. All the templates that are based on this template will also use the Draft workflow. If the item’s workflow has not been added to the draft mode configuration, the draft mode will not be applied to the item. It will use the standard CMS logic.

Note If a workflow has more than two states, all of the states before the final one are draft states. The items can only be published when they are in the final workflow state

2.1.3 Sharing a Draft Version

The draft version of an item can be accessed using a shared link. This may be useful when you want to share a draft version with another user before the item is published.

The given functionality is implemented using the GetDraftShareLink() method of the

IShareLink interface.

The shared link is a link to the item that uses the special dmdf query. There is a

Sitecore.Intranet.DraftMode.Pipelines.DraftModeDisablingProcessor in the

httpRequestBegin pipeline, which reacts on the query and allows a non-author to receive the draft

version.

When you receive a shared link, you can access the draft version during a single browser session. If you close the browser or begin a new session, you must use the shared link. Consequently, if you open this item again during the same session, you will see the shared draft version.

Page 7: sip_developers_guide_41-a4

Developer's Guide

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-2014 Sitecore. All rights reserved.

Page 7 of 35

2.1.4 Who Is the Author of the Draft Version?

The author of the draft version is the only person who can see and edit this version in the Page Editor. Even if you share the draft version with another user, for example, a manager, and that person edits the item, as the original author you are still the owner of the item until it is published.

SIP uses the following prioritization to determine who the author of a draft version is:

1. The user who has locked the item.

2. The user specified in the Owner field of the item security section.

3. The user who has updated the item.

4. The user who has created the item.

2.1.5 How to Discard the Draft Version

If you want to discard the draft version of the item, you can use the bool Execute() method of the

IDiscardChanges interface. In this case, discarding means that you delete the version. The bool

IsAvailable() method of the IDiscardChanges interface checks whether discarding is available

for a specific user.

Note If there is only one version of the item and this is a draft version, you cannot discard it.

2.1.6 Enabling Draft Mode

Use the Enable Draft Mode tool to assign the Draft workflow to templates. The Use Draft Mode Workflow template contains the Draft workflow in __Standard Values by default. The Enable Draft Mode tool adds the Use Draft Mode Workflow template as the base template to the selected templates. As a result, all the selected templates use the Draft workflow by default.

Note To use the Enable Draft Mode tool, you must have SIP administrator rights.

To enable or disable draft mode for a template:

1. In the browser, in the address bar, type: http://your instance name /sitecore/admin/enabledraftmode.aspx.

2. On the Enable Draft Mode page, select the Enable draft mode for templates or the Disable draft mode for templates option.

Page 8: sip_developers_guide_41-a4

Sitecore Intranet Platform 4.1

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-2014 Sitecore. All rights reserved.

Page 8 of 35

3. On the Select templates page, select the templates that you want to enable draft mode for. To select all the templates in a folder, select the folder.

4. Click Next to implement these changes. You can see a list of the changes on the Results page.

2.1.7 Creating a Draft Workflow

You can create any number of draft workflows.

To create a draft workflow:

1. In the Content Editor, under the Sitecore/system/workflows item, create a new workflow.

2. In the Quick Info section of the new workflow item, in the Item ID field, copy the value.

3. In the Intranet.DraftMode.config file, find the

Intranet.DraftMode.DraftWorkflows setting and paste the item ID of the new

workflow to a value attribute of the setting node.

If more than one user needs to be able to edit an item in this workflow, for example, a content editor and the manager who has to approve the item, you must configure the Owner field to ensure that it always reflects the current author.

To configure the Owner field to support multiple users, create a SetOwnerAction command for the

Draft workflow. The SetOwnerAction command defines the Owner field. You define the

SetOwnerAction command in the Sitecore.Intranet.DraftMode.dll file in the

Website\bin folder.

2.1.8 Public API

Interfaces

Namespace Sitecore.Intranet.DraftMode.Abstractions

Page 9: sip_developers_guide_41-a4

Developer's Guide

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-2014 Sitecore. All rights reserved.

Page 9 of 35

IDraftMode describes the main public API and contains the following methods:

Method Description

bool IsItemInDraftWorkflow

(Item item)

Determines whether a specific item is in the Draft workflow.

bool

IsVersionEditable(Item

version, string userName)

Checks whether the version of the item can be edited by a specific user.

string

GetOwnerOfVersion(Item

item)

Returns the UserName of the user, who is the owner of the

draft version.

IDisposable

GetDraftModeDisabler(bool

disableFilterItems)

Gets an instance of the DraftModeDisabler to disable the

draft mode during runtime.

If the disableFilterItems attribute is true, item filtering will

also be disabled.

bool

HasAnyPublishableVersion(I

tem item, bool

includeAllLanguages)

Checks whether there are any published versions of a specific

item. If includeAllLanguages is true, it checks the versions

in every language.

bool

IsVersionInDraftMode(Item

item)

Checks whether a specific version of an item is a draft.

bool IsVersionAccessible(

Item item, string

userName)

Checks whether a specific version of an item is accessible for a specific user.

IDisposable

GetFilterItemsDisabler()

Gets an instance of FilterItemsDisabler to disable the

filter items logic during runtime.

IDiscardChanges enables to discard the draft version and contains the following methods:

Method Description

bool Execute(Item item) Removes the draft version of the item.

bool IsAvailable(Item

item)

Indicates whether you can discard the changes that have been made to an item.

IShareLink – enables to share draft version with other users and contains the following method:

Method Description

string

GetDraftShareLink(Item

item)

Gets the link for Sitecore.Context.Site, which is used to

access the specified draft version by other users.

Page 10: sip_developers_guide_41-a4

Sitecore Intranet Platform 4.1

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-2014 Sitecore. All rights reserved.

Page 10 of 35

Classes

Namespace Sitecore.Intranet.DraftMode

Class Description

DraftModeItemProvider Extends the Sitecore.Data.Managers.ItemProvider class. Overrides the GetItem method to apply the draft mode

logic. To extend DraftMode, you must inherit your Item

Provider class from this one and set it up to be used as an

item provider in the configuration file.

Settings Implements BaseSettings.

abstract BaseSettings — enables basic settings. The class contains:

Property Description

Public abstract

Dictionary<string,

SiteContext> Sites { get;

}

Gets a collection of the sites, which Draft Mode should apply to.

public abstract List<ID>

DraftWorkflowIDs { get; } Gets a collection of the Draft Workflow IDs If an item is in one of these workflows the Draft Mode logic will be applied to it.

Namespace Sitecore.Intranet.DraftMode.FilterItems

Class Description

FilterItemsDisabler Disables the filter items logic.

FilterItemsSwitcher Enables/disables the filter items logic.

Namespace Sitecore.Intranet.DraftMode.Pipelines

Class Description

DraftModeDisablingProcesso

r Represents a processor for the httpRequestBegin pipeline

that allows you to share a draft item.

Namespace Sitecore.Intranet.DraftMode.Utils

Class Description

DiscardChanges Implements the IDiscardChanges interface.

DraftModeUtil Implements the IDraftMode interface.

ShareLink Implements the IShareLink interface

DraftModeXslHelper - allows using DraftMode in xslt renderings. The class contains:

Method Description

public string

GetDraftShareLink Gets the shared link for the draft version.

public bool

IsVersionInDraftMode Checks whether a specific version of the item is a draft.

Page 11: sip_developers_guide_41-a4

Developer's Guide

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-2014 Sitecore. All rights reserved.

Page 11 of 35

2.1.9 Settings

The Draft Mode module configuration has the following settings:

Setting Description

Intranet.DraftMode.Sites Contains a pipe-separated list of sites for which draft mode is enabled. The default value is website.

Intranet.DraftMode.DraftWo

rkflows ID of the Draft workflow. It can contain a pipe-separated list of workflows. It is useful if you have your own workflow-based solution. The default value is "{7526E6AB-57BE-4AB9-A7C5-9EBB401375DE}" (/sitecore/system/Workflows/Draft Mode Workflow).

Note The Intranet.DraftMode.config file is located in the

Website/App_Config/Include/Intranet/Modules folder.

2.1.10 Interaction with Other Modules

When the Draft Mode module is installed, it affects CMS entry behavior, because it replaces the

GetItem method.

The DraftMode API is used by the Site Tools module. The module checks if the current user can edit the item. If the user cannot edit the item, the Draft Mode module disables the Property button.

Page 12: sip_developers_guide_41-a4

Sitecore Intranet Platform 4.1

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-2014 Sitecore. All rights reserved.

Page 12 of 35

2.2 RSS

SIP supports RSS feeds. These RSS feeds deliver the content of the updated pages as page body, images, a title, a short introduction, and so on. The exact content of the RSS feed is set up by a SIP administrator. The RSS module can contain updates for all the subpages as well as updates for the current page.

There are three default types of RSS feeds in SIP:

Content feeds (containing all the updates to a page):

o Are used by all the feeds on the intranet site except for the Updates page and News section pages.

o Contain only one feed for each intranet page that you have subscribed to. This feed is automatically updated every time the page is updated.

o Include updates for all the subpages of the page that the user has subscribed to.

News section feeds (containing the new articles in the News pages):

o Only contains updates to news pages.

Updates feeds (containing the more advanced information for each update):

o New feeds are generated every time an item is updated.

2.2.1 RSS Settings

The /sitecore/system/Modules/Intranet/RSS/Settings item contains the following settings:

NewsSectionTemplate – the News section feed is generated for every item based on this template.

NewsTemplate – the News section feed only contains items based on this template.

Item where the UpdateList is placed – is used to set the path to the item for generation of update feeds.

Updated items - include templates – update feeds contain only items of the specified templates.

Number of days to show history for – the number of the days to display new items in RSS feed.

2.2.2 Disabling RSS Feeds

RSS feeds are enabled in SIP by default.

To disable the RSS feeds on every page on the intranet site:

1. In Windows Explorer, navigate to the

Website/App_Config/Include/Intranet/Modules folder.

2. In the Intranet.RSS.config file, set the Intranet.RSS.Enabled parameter to false.

2.2.3 The Feed Entry Content Field

The Feed Entry Content field specifies a template of the RSS feed body of the item. You can customize this field. The value can be set for an individual item, an item template, and for all the templates that inherit the RSS Feed Entry Content template. Use tokens to replace the appropriate field values and configure the way information is displayed in this field. You can also apply rich text formatting to these tokens.

The format of these tokens is: [field_name].

Page 13: sip_developers_guide_41-a4

Developer's Guide

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-2014 Sitecore. All rights reserved.

Page 13 of 35

A SIP administrator can configure how intranet pages are presented in the RSS feed. using the Feed Entry Content field or in the Content Editor, on the Presentation tab, using the RSS Feed Design button.

Note Tokens cannot contain spaces between square brackets and a field name. For example, [title], [body] are valid values, whereas [ title ], [ body ] are invalid values.

To find the correct field name to use in the token:

1. In the Content Editor, navigate to any item.

2. In the Quick Info section, click the template link.

The Template Manager window displays a list of template fields.

You can use any field as a token. Just copy and paste the field name when configuring the Feed Entry Content field.

To configure the Feed Entry Content field in the RSS Feed Entry Content template:

1. In the Content Editor, navigate to sitecore/templates/Intranet/RSS/RSS Feed

Entry Content/__Standard Values.

2. In the _Standard Values item, select the Feed Entry Content field and click Show Editor.

3. Edit the field.

In this example, we use the [title], [shortintro] and [body] tokens:

4. Save the changes.

This is how the RSS feed for this page looks:

2.2.4 Public API

Interfaces

Namespace Sitecore.Intranet.RSS.Abstractions

Page 14: sip_developers_guide_41-a4

Sitecore Intranet Platform 4.1

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-2014 Sitecore. All rights reserved.

Page 14 of 35

IRSS – describes public API.

Method Description

string GetFeedUrl(Item item) Gets the feed URL for a specific item.

bool IsEnabled(Item item) Gets value indicated whether RSS feed is enabled for a specific item.

Namespace Sitecore.Intranet.RSS

IDataService - defines the methods to get the items to include in the RSS feed.

Method Description

List<Item> GetUpdatedItems() Gets sorted list of updated items.

List<Item> GetUpdatedItems(int

maxDays, string[] templates)

Gets sorted list of updated items for a specific period and filtered by a specific template IDs.

List<Item> GetNewsItems(Item

root)

Gets the list of the news items for a specific root item.

List<Item> GetNewsItems(Item[]

roots)

Gets the list of the news items for specific roots items.

Namespace Sitecore.Intranet.RSS.Pipelines.Feeds

IProcessorHelpersFactory – defines the method to create an instance of the appropriate helper

based on the item type. Helper specifies the way item will be added to the feed.

Method Description

GeneralProcessorHelper

GetProcessorHelper(Item

feedRootItem)

Creates an instance of the helper depend on the type of a specific item.

ProcessorHelpersFactory - implements the IProcessorHelpersFactory interface.

Classes

Namespace Sitecore.Intranet.RSS

abstract BaseSettings - specifies a set of RSS Engine settings.

Property Description

public abstract string

NewsSectionTemplate { get; }

Gets a template which news section items are based on.

public abstract string

UpdateListLink { get; }

Gets an ID of the Updates root item.

public abstract string

NewsTemplate { get; }

Gets template ID which news items are based on.

public abstract string

UpdatedItemsIncludeTemplates {

get; }

Gets pipe separated list of templates which updates items are based on.

Page 15: sip_developers_guide_41-a4

Developer's Guide

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-2014 Sitecore. All rights reserved.

Page 15 of 35

Property Description

public abstract string

RSSPatternField { get; }

Gets a name of the field that contains template presentation of an item in the feed.

public abstract string

UpdatedDays { get; }

Gets a number of days to get updates.

public abstract SiteContext Site

{ get; }

Gets a site context for processing feed requests.

Class Description

DefaultRSS Represents the default implementation of the IRSS

interface.

RSS Implements the IRSS interface.

Settings Implements BaseSettings.

DataService Implements the IDataService interface.

Namespace Sitecore.Intranet.RSS.Pipelines.Feeds.ProcessorHelpers

abstract GeneralProcessorHelper - represents the base handler of items to include in the

feed.

Method Description

public virtual List<Item>

GetFeedContentItems(Item

feedRootItem)

Gets source list of item that should be in the RSS feed for a specific root item.

public virtual SyndicationItem

GetItemPresentation(Item

feedContentItem)

Gets default syndication presentation for a specific Item.

Class Description

ContentHelper Represents handler of content RSS items.

Implements GeneralProcessorHelper.

NewsSectionHelper Represents handler of news RSS items. Implements GeneralProcessorHelper.

PortalUpdatesHelper Represents handler of updated RSS items.

Implements GeneralProcessorHelper.

Namespace Sitecore.Intranet.RSS.Feeds.FeedTypes

Class Description

RSSEngineFeed Overrides the members of the ClientFeed class to

customize rendering of RSS feeds.

Pipelines Pipeline Description

getFeedEntryPresentation Gets the syndication presentation for the item.

Page 16: sip_developers_guide_41-a4

Sitecore Intranet Platform 4.1

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-2014 Sitecore. All rights reserved.

Page 16 of 35

Pipeline Description

getFeedContentItems Gets the feed source items for the root item.

getIsFeedEnabled Checks whether the feed is enabled.

Processors

Namespace Sitecore.Intranet.RSS.Pipelines.RenderField

Processor Description

ExpandRSSBodyMarkers Defines the processor that is added to the

RenderField pipeline that replaces tokens in the

Feed Entry Content field with the appropriate field values.

Namespace Sitecore.Intranet.RSS.Pipelines.Feeds.Processors

Processor Description

DefaultFeedPresentation Represents processor of the

getFeedEntryPresentation pipeline. Builds

RSS presentation for the item.

DefaultIsFeedEnabled Represents the processor of the

getIsFeedEnabled pipeline. Checks whether

RSS is enabled in the Config file.

DefaultItemsSet Represents a processor of the

getFeedContentItems pipeline. Gets the items

that should be shown in RSS feed

Pipeline Arguments

Namespace Sitecore.Intranet.RSS.Pipelines.Feeds

FeedContentPipelineArgs - represents arguments of the getFeedContentItems pipeline.

Property Description

public Item FeedRootItem { get;

set; }

Gets or sets root item to get RSS feed for.

public List<Item>

FeedContentItems { get; set; }

Gets or sets source items to build RSS feed for.

FeedEnabledPipelineArgs - represents arguments of the getIsFeedEnabled pipeline.

Property Description

public bool FeedEnabled { get;

set; }

Gets or sets a value indicating whether RSS is enabled.

Page 17: sip_developers_guide_41-a4

Developer's Guide

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-2014 Sitecore. All rights reserved.

Page 17 of 35

FeedPresentationPipelineArgs - represents the argument of the

getFeedEntryPresentation pipeline.

Method Description

public SafeDictionary<string>

Parameters { get;}

Gets additional parameters of pipeline call.

public SyndicationItem

SyndicationItem { get; set; }

Gets or sets syndication item presentation.

public Item ContentItem { get;

set; }

Gets or sets an item to generate presentation for.

public Item FeedRootItem { get;

set; }

Gets or sets a root item to generate RSS feed for.

Page 18: sip_developers_guide_41-a4

Sitecore Intranet Platform 4.1

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-2014 Sitecore. All rights reserved.

Page 18 of 35

2.3 Language Engine

The Language Engine module is used to show an item in a different site language if the item is not available in the requested language, but available in one of the languages that the user can understand.

Another feature of the module is to provide separate sets of languages for the content and the UI.

To do that, the module:

Contains the API to get an item in a particular language (content language, site language)

Automatically sets the context language to the site language

Provides the ContentAreaPlaceholder control to display child controls in the content

language

Provides pipelines (getContentLanguageList, getSiteLanguageList) to simplify

configuration of language lists

Provides the LanguageSwitcher class to simplify the setting of the context language for a

piece of code

2.3.1 How to Use the Language Engine Module

The Language Engine module provides the API to get an item in an alternative, available language.

To use the Language Engine module, you need to call one of the GetItemInSiteLanguage,

GetItemInContentLanguage, GetItemInContentOrSiteLanguage methods from the

ILanguageResolver interface instead of the standard CMS methods (for example,

Database.GetItem).

In addition, you can use the ContentAreaPlaceholder placeholder (or

sc:сontentAreaPlaceholder in xsl renderings) to add a control that you want displayed in the

content language, but not in the context language.

2.3.2 Public API

Interfaces

Namespace Sitecore.Intranet.LanguageEngine.Abstractions

The ILanguageResolver interface describes the public API. It contains the following methods:

Method Description

Language GetSiteLanguage() Gets the first language from the site language list.

Language GetContentLanguage() Gets the first language from the content language list.

Item GetItemInSiteLanguage(Item

targetItem)

Gets a specific item in the first available site language or null if there is no any version in any site language.

Item

GetItemInContentLanguage(Item

targetItem)

Gets a specific item in the first available content language or null if there is no any version in any content language

Item

GetItemInContentOrSiteLanguage(I

tem targetItem)

Gets a version of a specific item in the content language. If there is no version in the content language, it returns the item in the site language. If the item is not available in the site language, it gets the item in the current language.

Page 19: sip_developers_guide_41-a4

Developer's Guide

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-2014 Sitecore. All rights reserved.

Page 19 of 35

Method Description

IDisposable

GetLanguageSwitcher(Language

language)

Returns the LanguageSwitcher object, which can be

used to switch context language, namely

Context.Language, to a specific language in the

runtime.

Namespace Sitecore.Intranet.LanguageEngine

ILanguageListSource interface describes properties to get Site and content language lists:

Property Description

IList<Language>

SiteLanguageList { get; }

Gets the list of site languages.

IList<Language>

ContentLanguageList { get; }

Gets the list of content languages

Classes

Namespace Sitecore.Intranet.LanguageEngine

BaseSettings - represents base settings of the Language Engine module:

Property Description

public abstract Language

CorporateLanguage { get; }

Gets corporate language.

public abstract IList<string>

Sites { get; }

Gets a list of sites language engine will be applied to.

ContentAreaSwitcher - contains methods to check whether code is running inside the content

area placeholder:

Method Description

public static void

EnterContentArea()

Should be called at the start of the content area.

public static void

LeaveContentArea()

Should be called at the end of the content area.

public static bool

IsContentArea()

Gets value indicates whether code is running inside the content area.

LanguageSwitcher - switches the context language. Implements the IDisposable interface, so it

can be used in statements:

Method Description

static void Enter() Pushes the current language to the language stack and sets the context language.

static void Exit() Takes the language out of the stack and sets is as the context language.

Settings - Implements BaseSettings.

LanguageResolver - Implements the ILanguageResolver interface.

Page 20: sip_developers_guide_41-a4

Sitecore Intranet Platform 4.1

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-2014 Sitecore. All rights reserved.

Page 20 of 35

Namespace Sitecore.Intranet.LanguageEngine.Xsl

LanguageEngineXslHelper - makes it possible to use Language Engine API in xslt renderings:

Method Description

public void EnterContentArea() Should be called at the start of the content area.

public virtual LeaveContentArea() Should be called at the end of the content area.

public virtual string

GetSiteLanguage() Gets the first language from the site language list.

public virtual string

GetContentLanguage()

Gets the first language from the content language list.

public virtual XPathNodeIterator

GetItemInSiteLanguage(XPathNodeItera

tor iterator)

Gets a specific item in the first available site language or null if there is no any version in any site language.

public virtual XPathNodeIterator

GetItemInContentLanguage(XPathNodeIt

erator iterator)

Gets a specific item in the first available content language or null if there is no any version in any content language

public virtual XPathNodeIterator

GetItemInContentOrSiteLanguage(XPath

NodeIterator iterator)

Gets a version of a specific item in the content language. If there is no version in the content language, it returns the item in the site language. If the item is not available in the site language, it gets the item in the current language.

Pipelines

Namespace Sitecore.Intranet.LanguageEngine.Pipelines.GetSiteLanguageList

getSiteLanguageList - sets the site language list to the arguments. The following processors are

added to the pipeline by default:

Processor Description

GetCorporateLanguage Adds the corporate language to the language list. You define the corporate language in the sitecore/system/Modules/Intranet/Language

Engine/Settings item, in the CorporateLanguage

field.

GetQueryStringLanguage Adds the language from the contentlang query string

to the list.

Namespace Sitecore.Intranet.LanguageEngine.Pipelines

getContentLanguageList - sets the content language list to the arguments. The following

processors are added to the pipeline by default:

Processor Description

GetDefaultLanguage Adds Sitecore.Context.Site.Language to the

language list.

The Language Engine module adds the Sitecore.Intranet.LanguageEngine.Pipelines.HttpRequestBegin.SetContextLanguage processor to the

Page 21: sip_developers_guide_41-a4

Developer's Guide

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-2014 Sitecore. All rights reserved.

Page 21 of 35

httpRequestBegin pipeline. SetContextLanguage sets the context language to the site

language. The context language will be set only for sites that are defined in the

Intranet.LanguageEngine.Sites settings. By default, this setting contains only “website”.

2.3.3 User Interface

The Language Engine module provides the ContentAreaPlaceholder control. It switches the

context language to the content language for child controls.

The control can be used in layouts and sublayouts.

The sc:сontentAreaPlaceholder control can be used in xsl renderings.

There is an extension method ContentAreaPlaceholder in the

Sitecore.Intranet.LanguageEngine.UI.Mvc namespace that extends the SitecoreHelper

class.

To use the MVC control, add @using Sitecore.Intranet.LanguageEngine.UI.Mvc to your

razor page, and then add the placeholder

@Html.Sitecore().ContentAreaPlaceholder("placeholder name").

2.3.4 Interaction with Other Modules

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 interacts with the following modules:

Easy Upload

o Gets a settings item in the site language

o Gets shared media in the site language

RSS

o Uses content or site language for feed items

Page 22: sip_developers_guide_41-a4

Sitecore Intranet Platform 4.1

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-2014 Sitecore. All rights reserved.

Page 22 of 35

2.4 Profiles

The Profiles module provides customers with a simple and customizable way of storing and editing user information and settings in the content tree.

The Profiles module uses the User Profile template, which contains a set of default fields including Name, Favorites, Preferred Language, and so on. You can change the User Profile template in the settings.

The Profiles module has the following features:

A processor for adding the user preferred language to the site language in the

getSiteLanguageList pipeline.

Storing profiles in the tree with custom depth to reduce the amount of items under each node. The possibility to use a custom template.

A list of exclude domains. Users in these domains cannot have profiles.

Storing a list of favorite items.

2.4.1 Public API

Interfaces

Namespace Sitecore.Intranet.Profiles.Abstractions

IUserProfile - The main interface to work with the profile of a user. It contains the following

methods:

Method Description

item ProfileItem { get; } Gets user profile item.

language PreferredLanguage { get; } Gets the user preferred language.

string Username { get; } Gets the name of the user.

bool AddFavorite(string favoriteID) Adds an item with a specific ID to user favorite items.

bool RemoveFavorite(string

favoriteID) Removes an item with a specific ID from user favorite items.

bool IsFavorite(string favoriteID) Checks whether item with a specific ID is user favorite item.

ItemCollection GetFavorites() Gets a set of the user favorite items.

IUserProfileProvider - the interface to get or create a profile. It contains the following methods:

Method Description

IUserProfile GetProfile(string

username) Gets a profile for a specific user.

bool CreateProfile(string userName) Creates a profile for a specific user.

Page 23: sip_developers_guide_41-a4

Developer's Guide

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-2014 Sitecore. All rights reserved.

Page 23 of 35

Classes

Namespace Sitecore.Intranet.Profiles

Profile - implements the IUserProfile interface.

Settings - implements BaseSettings.

abstract BaseSettings - represents settings of the module. This class contains the following

properties:

Property Description

public abstract string

UserProfilesFolder { get; } Gets a path to a folder where all user profile are stored.

public abstract int

UserProfilesTreeDepth { get; } Gets the number of levels in the profile tree that the user profile will be in.

public abstract ID

UserProfileTemplate { get; } Gets an ID of the user profile template.

public abstract List<string>

ExcludeDomains { get; } Gets the list of the domains. Users in these domains cannot have profiles.

Namespace Sitecore.Intranet.Profiles.Providers

UserProfileProvider - implements the IUserProfileProvider interface.

Processors

Namespace Sitecore.Intranet.Profiles.Pipelines.GetSiteLanguageList

Processor Description

GetUserPreferredLanguage The processor of the getSiteLanguageList

pipeline. It adds preferred language to the

SiteLanguage list (from the language

engine).

Pipelines

Pipeline Description

intranetUpdateUserProfile Is called after profile creation. Make it possible to customize profile item once it is created.

Pipeline arguments

Namespace Sitecore.Intranet.Profiles.Pipelines.Args

UpdateUserProfileArgs - represents arguments of the intranetUpdateUserProfile

pipeline:

Property Description

public Item ProfileItem { get; set;

} Gets or sets profile item of the user.

public User User { get; set; } Gets or sets a user, whose update process is performing.

Page 24: sip_developers_guide_41-a4

Sitecore Intranet Platform 4.1

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-2014 Sitecore. All rights reserved.

Page 24 of 35

2.5 Easy Upload

The Easy Upload module allows uploading attachments in the Sitecore Intranet Platform. It can upload files not only to the FDA field, but also to a media library folder. The MVC Easy Upload control is also available for the Easy Upload module.

2.5.1 Settings

The Intranet.EasyUpload.ShowInBrowseMode setting in the configuration is set to true by

default, which indicates that the Easy Upload control is visible in normal mode. If this setting is set to false, the Easy Upload control is only visible in Edit mode. Use the following path to change the setting: Intranet App_Config\Include\Intranet\Modules\Intranet.EasyUpload.config file

2.5.2 Managing Attachments

Users can attach files to intranet pages by:

Using the Silverlight Easy Upload control. This is the fastest way to upload files.

Using the WebDAV Drag & Drop window. This method allows users to add and edit files.

2.5.3 Using the Silverlight Easy Upload Control

SIP users can use the Silverlight Easy Upload control to upload files. To use this control, you must ensure that Silverlight 4.0 or later is installed on the client computer.

It is possible to upload files to the media folder or an FDA field of the current item. To set up that, select the needed item; in the Content Editor, on the Presentation tab, in the Layout group, click Details. Click the Easy Upload control. The Control Properties window appears. Set the upload path in the UploadTarget field.

Note To use the FDA field for upload, clear the path in the UploadTarget field. To use the media folder for upload, set the path in the UploadTarget field.

You can set the size of the control in pixels or specify its height and width as a percentage of the size of the parent container.

The default size of the Silverlight Easy Upload control is 200 x 200 pixels.

2.5.4 Share Media

Do the following steps to share attachments between different languages of the item:

1. Add the Share Media field to the template of the item.

2. Check the Share Media field of the item.

In this case, the FDA field in all the item languages will point to the same attachments. Changing the attachments in one language will affect all other.

2.5.5 Public API

Interfaces

Namespace Sitecore.Intranet.Attachments.Abstractions

Page 25: sip_developers_guide_41-a4

Developer's Guide

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-2014 Sitecore. All rights reserved.

Page 25 of 35

IAttachments - defines the methods to operate with item attachments

Method Description

Language GetAttachmentsLanguage(Item

item)

Gets the attachments language of a specific item.

FileDropAreaField

GetAttachmentsField(Item item) Gets the FDA field of a specific item in the appropriate language.

Classes

Namespace Sitecore.Intranet.Attachments

Attachments – implements the IAttachments interface. Makes it possible to share attachments

between the languages of the item. All the methods take into account ShareMedia setting of the item.

Processors

Namespace Sitecore.Intranet.EasyUpload.Pipelines.Upload

Processor Description

Save Adds the number of the copy to the name of an item. If you load the same file several times, you will get several items with different names, for example image.png, image (2).png, image (3).png.

2.5.6 Package Contents

Layouts

The Slideshow Manager Form is located in

\sitecore\layout\Layouts\Intranet\Attachments\Slideshow Manager Form and

used in SlideshowManageDialog.

Models

The Easy Upload model is located in

\sitecore\layout\Models\Intranet\EasyUpload\EasyUploadModel and used in the

Easy Upload MVC control.

Renderings

The Easy Upload rendering is located in \sitecore\layout\Renderings\Intranet\EasyUpload\Mvc\Easy Upload rendering

and used in MVC layouts.

Sublayouts

The Easy Upload sublayout is located in \sitecore\layout\Sublayouts\Intranet\Easy

Upload\Easy Upload sublayout and used in Web Form layouts.

WebEdit buttons

The Manage Files button is located in sitecore\content\Applications\WebEdit\Edit

Frame Buttons\Intranet\Attachments and belongs to the core database. All previous items

Page 26: sip_developers_guide_41-a4

Sitecore Intranet Platform 4.1

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-2014 Sitecore. All rights reserved.

Page 26 of 35

in the section belong to the master database. It is the Manage attachments button in the Page

Editor, which executes the filedroparea:manage command to upload files to the attachments.

2.5.7 Commands

Command Description

filedroparea:manage Opens the WebDav window in IE and

SlideshowManageDialog in other browsers.

media:intranetupload Shows the Sitecore FlashUpload dialog if

flash upload is configured, otherwise it shows

the Sitecore UploadMedia dialog box.

Page 27: sip_developers_guide_41-a4

Developer's Guide

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-2014 Sitecore. All rights reserved.

Page 27 of 35

2.6 Site Tools

The Site Tools module extends the Page Editor ribbon with:

A Save and close button on the Page Editor toolbar, which allows you to save the document and leave Edit mode in one click.

A Property button on the Edit group of the Home tab in Page Editor, which allows you to edit fields in the standard field editor, even not visible on the layout. This button shows the fields

with checked ShowInFieldEditor only.

2.6.1 Package Contents

The Site tools package contains the following items:

Core database:

\sitecore\content\Applications\WebEdit\Ribbons\WebEdit\Buttons\Save

and close item – represents the Save and close button.

\sitecore\content\Applications\WebEdit\Ribbons\WebEdit\Page

Editor\Edit\Properties item – represents the Property button.

Master database:

The ShowInFieldEditor field was added to the

\sitecore\templates\System\Templates\Template field template. It specifies whether

the field should be available for editing in the Properties dialog box.

2.6.2 Commands

Command Description

webedit:intranetclose Closes the Page Editor by setting DisplayMode to

normal and calling the webedit:close command.

webedit:changedocument Allows editing of fields using the field editor. It uses

the getFieldEditorFields pipeline to get the list

of fields for current items that can be edited.

2.6.3 Public API

Pipelines

getFieldEditorFields - gets the list of field that should be displayed in the Property dialog box.

Processor Description

Sitecore.Intranet.SiteTools.Pip

elines.GetFieldEditorFields.Get

MarkedFields

Gets the list of item fields with checked

ShowInFieldEditor field.

Sitecore.Intranet.SiteTools.Pip

elines.GetFieldEditorFields.Get

FDAField

Replaces the FDA field with the one in the appropriate language. The share attachments logic is taken into account.

Page 28: sip_developers_guide_41-a4

Sitecore Intranet Platform 4.1

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-2014 Sitecore. All rights reserved.

Page 28 of 35

Pipeline arguments

Namespace Sitecore.Intranet.SiteTools.Pipelines.PipelineArgs

GetFieldEditorFieldsArgs - represents argument of the getFieldEditorFields pipeline:

Method Description

public Item TargetItem Gets an item which fields should be show in the Properties dialog box.

public List<FieldDescriptor> Fields

{ get; } Gets a collection of fields that should be available for editing in the Properties dialog box.

public void AddField(string field,

Item item) Adds field to a set of fields that is available for editing in the Properties dialog box.

public void AddField(Field field) Adds field to a set of fields that is available for editing in the Properties dialog box.

Page 29: sip_developers_guide_41-a4

Developer's Guide

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-2014 Sitecore. All rights reserved.

Page 29 of 35

2.7 Send Email

The Send Email module provides a simple, flexible, and customizable way to send emails. You can get the email data from an item and perform replacements of the defined tokens.

The module allows you to:

Create an email using a template from the item and send it using the

System.Net.MailMessage type.

Replace tokens in email template fields.

Specify default tokens, which are used for all emails.

Convert email body to html.

Use special pipelines to customize each step.

2.7.1 Templates

The Email template is located at /sitecore/templates/Intranet/Send Email/Email. It has

the following fields:

Field Description

From The email sender address.

To The recipient address or recipients in a comma-separated list, which can contain tokens.

Cc The cc address or a comma separated list, which can contain tokens.

Subject The mail subject, which can contain tokens.

Body The message, which can contain tokens.

IsBodyHtml The checkbox indicating whether the body is html.

CssFile The path to the css file included in the html <style></style> tag if isBodyHtml is selected.

You can extend the default fields and use them in a custom processor through ItemMailDataSource.Item property of SendEmailArgs arguments.

2.7.2 Public API

Interfaces

Namespace Sitecore.Intranet.SendEmail.Abstractions

ISendEmail - specifies methods to compose and send emails based on the email templates.

Method Description

void Send(Item messageTemplate,

NameValueCollection replacements)

Sends email composed from the template stored in specific item using specific replacements and sends it.

Classes

Namespace Sitecore.Intranet.SendEmail

Page 30: sip_developers_guide_41-a4

Sitecore Intranet Platform 4.1

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-2014 Sitecore. All rights reserved.

Page 30 of 35

SendEmail - implements the ISendEmail interface. It also contains the additional method.

Method Description

public void Send(ItemMailDataSource

itemMailDataSource,

NameValueCollection replacements)

Composes an email from a specific source using specific replacements and sends it.

ItemMailDataSource - represents a source of the email template.

Property Description

public string From { get; set; } Gets or sets an address of email sender.

public string To { get; set; } Gets or sets receiver address or comma separated list of receiver addresses.

public string Cc { get; set; } Gets or sets carbon copy (CC) receiver address or comma separated list of CC receivers addresses.

public string Subject { get; set; } Gets or sets a subject of the email.

public string Body { get; set; } Gets or sets body of the email. The body can be ether plain text or HTML markup.

public string CssFile { get; set; } Gets or sets a path of the css file that contains styles of the mail body.

public Item Item { get; } Gets the target email template item.

public bool IsBodyHtml { get; set;

}

Gets or sets value indicates whether Body is plain text or HTML markup.

The class has two constructors:

Constructor Description

public ItemMailDataSource() Default constructor.

public ItemMailDataSource(Item

item) Fills the properties from item fields.

Pipelines

Pipeline Description

sendEmail.addDefaultReplacements Appends default replacements to the replacement set. By default, this pipeline contains a single processor Sitecore.Intranet.SendEmail.Pipelines.A

ddDefaultMailReplacements.AddDefaultRep

lacements, which appends the current user

$CurrentUser$ and the current site $CurrentSite$ to the replacements collection.

sendEmail.sendMessage Sends email message using the

Sitecore.MainUtil.SendMail method.

sendEmail.createMessage - composes the email based on the specified template. By default, it

consists of two processors:

Page 31: sip_developers_guide_41-a4

Developer's Guide

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-2014 Sitecore. All rights reserved.

Page 31 of 35

Processor Description

Sitecore.Intranet.SendEmail.Pipeline

s.CreateMailMessage.CreateMailMessag

e

Performs replacements in the following fields: to, cc, subject and body and set IsHtml property in MailMessage.

Sitecore.Intranet.SendEmail.Pipeline

s.CreateMailMessage.ConvertToHtml

Converts the body to html and appends a style to it from the css file style if IsHtml property is set.

Pipeline Arguments

Namespace Sitecore.Intranet.SendEmail.Pipelines.Args

SendEmailArgs - sends email pipelines arguments.

Property Description

public ItemMailDataSource

MessageTemplate { get; } Gets the source of email template.

public NameValueCollection

Replacements { get; } Gets the replacements collection.

public MailMessage MailMessage {

get; } Gets the result email

(System.Net.Mail.MailMessage).

Page 32: sip_developers_guide_41-a4

Sitecore Intranet Platform 4.1

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-2014 Sitecore. All rights reserved.

Page 32 of 35

Chapter 3

Obsolete and Deprecated Modules

This chapter describes the obsolete modules and those that have been removed from SIP 4.1 and possible replacements for their features.

This chapter contains the following sections:

Search module (removed).

DCF module (obsolete).

Page 33: sip_developers_guide_41-a4

Developer's Guide

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-2014 Sitecore. All rights reserved.

Page 33 of 35

3.1 Search

All features of the Sitecore.Intranet.Search have been removed from the Platform package

and are not supported anymore.

3.1.1 Configuration

The Platform package does not provide the "intranet" search index. Parsing of documents using

IFilter is included into CMS by default.

3.1.2 API

You can use Sitecore 7.x API instead of the

Sitecore.Intranet.Search.Abstractions.ISearch interface.

The following code searches all items in the master database, which use the Samples template and have English language assigned:

var index = ContentSearchManager.GetIndex("sitecore_master_index");

using (var context = index.CreateSearchContext())

{

var searchResultItems =

context.GetQueryable<SearchResultItem>()

.Where(item => item.TemplateName == "Sample Item")

.Where(item => item.Language == "en")

.ToList();

}

For more information about Sitecore 7.x search, please refer to the Sitecore Search and Indexing Guide and Developer's Guide to Item Buckets and Search guides.

Page 34: sip_developers_guide_41-a4

Sitecore Intranet Platform 4.1

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-2014 Sitecore. All rights reserved.

Page 34 of 35

3.2 DCF

The DCF module is obsolete and will be removed in a later version of SIP. You can use the Sitecore tagging system instead (Sitecore 7.x).

3.2.1 Obsolete Module API

IDCF interface - contains the following methods:

Method Description

bool

AreTargetGroupsSupported(Item

item)

Checks whether the specified item contains a field that stores target groups. This method is not necessary anymore.

bool IsUserSubscribedTo(Item

item) Checks that an item matches the subscription filters set by the current user. You can add “Semantic” field to the user profile template from the Profiles module to store subscribed user tags and compare this field with the item Semantic field, included to the standard fields in Sitecore 7.x.

This piece of the DCF feature can be implemented using the __Semantics field instead of target groups.

3.2.2 Obsolete Controls

Target Group Field – allows you to assign target groups to items. The control is used in the Content Editor.

User Target Groups control – contains a link to open the Target Groups Form. This control can be used at frond end.

Target Group Form – allows user to view or change subscribed Target Groups. This control can be used at frond end.

Offered Replacement

Target Group Field – there is no need for this control because the tagging assignment is already part of the CMS.

User Target Groups control – the control, which utilizes the tagging feature, can be created, or the Properties dialog box (from the Site Tools module) can be used.

Target Group Form – the control, which utilizes the tagging feature, can be created or the Properties dialog box from the Site Tools module can be used.

3.2.3 Obsolete Templates:

Templates

o Target Group – describes a target group.

o Target Groups – describes a target groups section.

Target Group field – the source points to the target group tree.

Publish to All Users field.

Target Groups Form – describes the Target Groups dialog box.

Page 35: sip_developers_guide_41-a4

Developer's Guide

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-2014 Sitecore. All rights reserved.

Page 35 of 35

There is no need for these templates.