SlideShare a Scribd company logo
Lab 12: Using Features to Provision Sites
Objectives
After completing this lab, you will be able to:
• Create a new Content Type as a new Feature
• Create and Provision a custom document library
• Create custom Actions to an existing list
• Apply the appropriate scope to a feature
Prerequisites
Before working on this lab, you must have:
• Labs 1 and 2 fully completed
Scenario
The objective of this lab is to gain an understanding of the new Features framework
in Windows SharePoint Services 3.0 through an overview of the concepts and a
walkthrough of several examples. The first exercise will walk you through the
creation and provisioning of a custom document type. The second exercise walks
through the elements of the custom document library related to Content Types.
Finally, in the third exercise you will walk through associating Custom Actions to an
existing Announcements list. These functionalities illustrated in this lab were either
very difficult to do with custom lists or not possible at all in previous SharePoint
version.
Estimated time to complete this lab: 75 minutes
Exercise 1
Review the different elements that compose the HOLContentType
Feature
In this exercise you will learn about different components of the custom HOLContentType
feature. This feature creates a new Content Type called “HOL Document” based on the
out-of-the-box “Document” Content Type and is categorized in a new “Content Type
Group” called “HOL Content Type”.
1. Login as the Administrator
2. Open “C:HOLFeaturesHOLContentType” directory using Windows Explorer
and browse the files included in this feature.
Lab 12: Using Features to Provision Sites
3. Open the “feature.xml” file and notice that the “feature” has a unique id and it has
been scoped to a “Site”. The “Site” scope actually refers to the “Site Collection” of your
installation. A “Web’ is a single site of that Site Collection! Another important section to
notice is the “ElementManifests” element. It points to another file. The HOLLibrary.xml
file. The “feature.xml” file content of the HOLContentType feature is listed below.
Note: A “content type” feature element needs to have a scope of “Site”.
<?xml version="1.0" encoding="utf-8" ?>
<!-- _lcid="1033" _version="12.0.0.4407" _dal="1" -->
<!-- _LocalBinding -->
< Feature Id="983BCDE5-77A3-4aae-9F16-CD94BE238EF4"
Title="HOL Libraries"
Description="This feature provides support for a new
Content Type called HOL Document."
Version="1.0.0.0"
Scope="Site"
xmlns="http://schemas.microsoft.com/sharepoint/">
<ElementManifests>
<ElementManifest
Location="HOLDocContentTypeHOLContentType.xml" />
</ElementManifests>
</Feature>
Exercise 2
Package and Review a Content Type Feature
Content Type instances are based on an existing content type template. A content
type template can also be based on another content type template, retaining
references to them that define that parent-child relationship. Because of this, you
can create an entire Content Type hierarchy, where general Content Types serve as
the parent of more specific Content Types. In fact, Windows SharePoint Services
3.0 and Microsoft Office SharePoint Server 2007 (MOSS 2007) installs with such a
template hierarchy already included. Windows SharePoint Services 3.0 also
contains mechanisms for you to manage your Content Type groups and hierarchies,
and enables you (if so desired) to propagate changes made to the parent to the child
templates and instances as well.
Note: For more detailed information on Content Types, please see the dedicated lab on
this topic – Lab 7.
In this exercise we will walkthrough the Content Type elements of the HOL Document
Content Type feature covered in Exercise 1.
1. Browse the “C:HOLFeaturesHOLContentTypeHOLdocContentType”
directory and open the “HOLContentType.xml” file included in this feature.
The “HOLContentType.xml” file content is listed below:
Lab 12: Using Features to Provision Sites 3
<?xml version="1.0" encoding="utf-8" ?>
<!-- _lcid="1033" _version="12.0.0.4407" _dal="1" -->
<!-- _LocalBinding -->
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<ContentType ID="0x0101003D4F44E24FEF44BB93A8230B0E555023"
Name="HOL Document"
Group="HOL Content Types"
Description="This is a document created at HOL."
Version="0">
<FieldRefs>
</FieldRefs>
</ContentType>
</Elements>
Exercise 3
Install the HOLContentType Feature
In this exercise you will install the HOLContentType feature.
1. Login as the Administrator
2. Open an “Office 12 Command Prompt” by double-clicking the shortcut found on
the desktop.
3. Navigate to the Feature directory by issuing the following command “cd
HOLFeatures”.
4. Copy the feature to the server’s feature folder with the following command: “xcopy
HOLContentType "C:Program FilesCommon FilesMicrosoft Sharedweb
server extensions12TEMPLATEFEATURESHOLContentType" /s /y”
5. Install the feature to the server with the following command: “stsadm -o
installfeature -filename HOLContentTypefeature.xml”
6. Activate the feature for the Feature team site with the following command: “stsadm
-o activatefeature -filename HOLContentTypefeature.xml -url
http://hol.litwareinc.com”
Note: Due to the fact that “Content Types” have “Site” as scope, the top level site URL
is entered.
7. The “HOLContentType” Feature has been successfully installed. To verify this
installation, verify that the “HOL Content Types” group exist and list the “HOL
Document” Content Type by launching IE, clicking “Home”, “Site Actions”, “Site
Settings”, “Modify All Site Settings”, “Site Content Types” under the Galleries
section.
Lab 12: Using Features to Provision Sites
Exercise 4
Review the different elements that compose the HOLLibrary Feature
In this exercise you will learn about different components of the HOLLibrary feature. The
HOLLibrary feature will be the next feature you will install and it will be installed on a new
site you will create.
∑ Create the HOL Feature site first
1. As an Administrator, create a Team Site called “HOL Feature” located under the
sitedirectory site. To do this, launch IE, click “Sites” in the top navigation, click
“Create Site”, enter “HOL Feature” in the Title and “HOLFeature” in the URL
name, and then select the “Team Site” template.
2. Click “Create”.
3. Open the “C:HOLFeaturesHOLLibrary” directory with Windows Explorer and
browse the files included in this feature.
4. Open the “feature.xml” file and notice that the “feature” has a unique id and it has
been scoped to a “web”. Another important section to notice is the
“ElementManifests” element. It points to another file. The HOLLibrary.xml file.
The “feature.xml” file content is listed below:
<?xml version="1.0" encoding="utf-8" ?>
<!-- _lcid="1033" _version="12.0.0.4407" _dal="1" -->
<!-- _LocalBinding -->
<Feature Id="35D10E49-31A2-4353-BD26-E44471968F03"
Title="HOL Libraries"
Description="This feature provides support for HOL libraries."
Version="1.0.0.0"
Scope="Web"
xmlns="http://schemas.microsoft.com/sharepoint/">
<ElementManifests>
<ElementManifest Location="ListTemplatesHOLLibrary.xml" />
</ElementManifests>
</Feature>
5. Open and examine the HOLLibrary.xml file. Its content is listed below:
♦ Notice that the ListTemplate name attribute is hollib which corresponds to the
HOLLib subdirectory and the files in it. Also, notice that we have provisioned an
instance of our library via the ListInstance tag at the Url HOLDocs.
<?xml version="1.0" encoding="utf-8" ?>
<!-- _lcid="1033" _version="12.0.0.4407" _dal="1" -->
<!-- _LocalBinding -->
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<ListTemplate
Name="hollib"
Type="1500"
Lab 12: Using Features to Provision Sites 5
BaseType="1"
OnQuickLaunch="TRUE"
SecurityBits="11"
DisplayName="HOL Library"
Description="This library contains docs created at HOL."
Image="/_layouts/images/itdl.gif"
DocumentTemplate="101"/>
<ListInstance
Id="HOLLibrary"
Title="HOL Library"
Description="HOL Library"
TemplateType="1500"
Url="HOLDocs"/>
</Elements>
6. Open the “C:HOLFeaturesHOLLibraryHOLLibschema.xml” file. The
“schema.xml” file content is listed below:
♦ Notice the ContentTypes section. Content types provide a means to manage
the metadata and behavior of SharePoint list items, making it possible to store
different types of content within the same library or list.
<?xml version="1.0" encoding="utf-8"?>
<!-- _lcid="1033" _version="12.0.0.4407" _dal="1" -->
<!-- _LocalBinding -->
<List xmlns:ows="Microsoft SharePoint"
Name="HOLLibrary"
Title="HOL Library"
Direction="LTR"
Url="Shared HOL Documents"
BaseType="1"
EnableContentTypes="TRUE">
<MetaData>
<ContentTypes>
<ContentTypeRef ID="0x0101">
<Folder TargetName="Forms/Document" />
</ContentTypeRef>
<ContentTypeRef
ID="0x0101003D4F44E24FEF44BB93A8230B0E555023" />
<ContentTypeRef ID="0x0120" />
</ContentTypes>
<Fields>
<Field ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}"
Type="Text" Name="Title" ShowInNewForm="FALSE"
ShowInFileDlg="FALSE" DisplayName="Title" Sealed="TRUE"
SourceID="http://schemas.microsoft.com/sharepoint/v3"
StaticName="Title">
</Field>
</Fields>
... Omitted for brevity ...
</List>
• Notice ContentTypeRef ID="0x0101" that maps to the standard document
content type associated with Document Libraries. The Content Type inheritance
Lab 12: Using Features to Provision Sites
hierarchy is actually defined in the ID field. As such, this Content Type inherits
from ContentTypeRef ID="0x01" the base Item content type which inherits from
ContentTypeRef ID="0x" the System base content type.
• This file also contains the Folder Content Type definition found at
ContentTypeRef ID="0x0120".
7. To best understand how the ID attribute maps to the specific Content Type,
open the “ctypeswss.xml” file located at “C:Program FilesCommon
FilesMicrosoft Sharedweb server
extensions12TEMPLATEFEATURESctypesctypeswss.xml”. The
contents related to content types are shown below.
<?xml version="1.0" encoding="utf-8" ?>
<!--
-->
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<ContentType ID="0x"
Name="$Resources:System"
Group="_Hidden"
Sealed="TRUE"
Version="0">
<FieldRefs>
<FieldRef ID="{c042a256-787d-4a6f-8a8a-cf6ab767f12d}"
Name="ContentType"/>
</FieldRefs>
</ContentType>
<ContentType ID="0x01"
Name="$Resources:Item"
Group="$Resources:List_Content_Types"
Description="$Resources:ItemCTDesc"
Version="0">
<FieldRefs>
<FieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}"
Name="Title" Required="TRUE" ShowInNewForm="TRUE" ShowInEditForm="TRUE"/>
<!-- Title -->
</FieldRefs>
<XmlDocuments>
<XmlDocument
NamespaceURI="http://schemas.microsoft.com/sharepoint/v3/contenttype/forms">
<FormTemplates
xmlns="http://schemas.microsoft.com/sharepoint/v3/contenttype/forms">
<Display>ListForm</Display>
<Edit>ListForm</Edit>
<New>ListForm</New>
</FormTemplates>
</XmlDocument>
</XmlDocuments>
</ContentType>
<ContentType ID="0x0101"
Name="$Resources:Document"
Group="$Resources:Document_Content_Types"
Description="$Resources:DocumentCTDesc"
V2ListTemplateName="doclib"
Version="0">
<FieldRefs>
Lab 12: Using Features to Provision Sites 7
<RemoveFieldRef ID="{67df98f4-9dec-48ff-a553-29bece9c5bf4}"
Name="Attachments" /> <!-- Attachments -->
<RemoveFieldRef ID="{f1e020bc-ba26-443f-bf2f-b68715017bbc}"
Name="WorkflowVersion" /> <!-- WorkflowVersion -->
<RemoveFieldRef ID="{bc91a437-52e7-49e1-8c4e-4698904b2b6d}"
Name="LinkTitleNoMenu" /> <!-- LinkTitleNoMenu -->
<RemoveFieldRef ID="{82642ec8-ef9b-478f-acf9-31f7d45fbc31}"
Name="LinkTitle" /> <!-- LinkTitle -->
<RemoveFieldRef ID="{ae069f25-3ac2-4256-b9c3-15dbc15da0e0}"
Name="GUID" /> <!-- GUID -->
<RemoveFieldRef ID="{de8beacf-5505-47cd-80a6-aa44e7ffe2f4}"
Name="WorkflowInstanceID" /> <!-- WorkflowInstanceID -->
<FieldRef ID="{5f47e085-2150-41dc-b661-442f3027f552}"
Name="SelectFilename" /> <!-- SelectFilename -->
<FieldRef ID="{8553196d-ec8d-4564-9861-3dbe931050c8}"
Name="FileLeafRef" Required="TRUE"/> <!-- FileLeafRef -->
<FieldRef ID="{8c06beca-0777-48f7-91c7-6da68bc07b69}"
Name="Created" Hidden="TRUE" /> <!-- Created -->
<FieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}"
Name="Title" Required="FALSE" ShowInNewForm="FALSE" ShowInEditForm="TRUE"/>
<!-- Title -->
<!-- TODO: The old display name was: 'DisplayName="Created
Date">__LDisp(camlionet37)' We may need to special case this for back compat
-->
<FieldRef ID="{28cf69c5-fa48-462a-b5cd-27b6f9d2bd5f}"
Name="Modified" Hidden="TRUE" /> <!-- Modified -->
<!-- TODO: The old display name was: 'DisplayName="Last
Modified">__LDisp(camlionet36)' We may need to special case this for back
compat -->
<FieldRef ID="{28cf69c5-fa48-462a-b5cd-27b6f9d2bd5f}" Name="Modified"
Hidden="TRUE" /> <!-- Modified -->
<!-- TODO hailiu: The old display name was:
'DisplayName="$Resources:core,Last_Modified;">__LDisp(camlionet36)' We may
need to special case this for back compat -->
<FieldRef ID="{822c78e3-1ea9-4943-b449-57863ad33ca9}"
Name="Modified_x0020_By" Hidden="FALSE"/> <!-- Modified_x0020_By -->
<FieldRef ID="{4dd7e525-8d6b-4cb4-9d3e-44ee25f973eb}"
Name="Created_x0020_By" Hidden="FALSE" /> <!-- Created_x0020_By -->
</FieldRefs>
<XmlDocuments>
<XmlDocument
NamespaceURI="http://schemas.microsoft.com/sharepoint/v3/contenttype/forms">
<FormTemplates
xmlns="http://schemas.microsoft.com/sharepoint/v3/contenttype/forms">
<Display>DocumentLibraryForm</Display>
<Edit>DocumentLibraryForm</Edit>
<New>DocumentLibraryForm</New>
</FormTemplates>
</XmlDocument>
</XmlDocuments>
</ContentType>
... Omitted for brevity ...
<ContentType ID="0x0120"
Name="$Resources:Folder"
Group="$Resources:Folder_Content_Types"
Description="$Resources:FolderCTDesc"
Sealed="TRUE"
Version="0">
<FieldRefs>
Lab 12: Using Features to Provision Sites
<FieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}"
Name="Title" Required="FALSE" Hidden="TRUE"/> <!-- Title -->
<FieldRef ID="{8553196d-ec8d-4564-9861-3dbe931050c8}"
Name="FileLeafRef" Hidden="FALSE"/> <!-- FileLeafRef -->
</FieldRefs>
</ContentType>
... Omitted for brevity ...
</Elements>
Exercise 5
Check the state of the HOL Feature site prior to installing the new Library
Feature
In this exercise you will check the current state of the HOL Feature sire you created in
exercise 4. You will notice that their will be only one Document Library (Shared
Documents) currently available.
1. Launch IE and navigate to the HOL Feature site located at
“http://hol.litwareinc.com/sitedirectory/HOL Feature”.
2. Click on “View All Site Content” located on the top left navigation element and
notice the site has only one Shared Documents library under the Document
Libraries section.
3. Keep your web browser on this page.
Exercise 6
Install the HOLLibrary feature
In this exercise you will create and install a new feature (HOLLibrary) which will create the
HOL Library document library. This library is a simple reuse of the standard Document
Library (via copy-paste-rename) installed with Windows SharePoint Services 3.0. Using the
functionality of Features, we will create an instance of a Document Library and a Content
Type of “HOL Document” which will then be included in the root of the site on which we
activate our feature on.
∑ Install the feature
1. Open an “Office 12 Command Prompt”, if not already opened, by double-clicking
the shortcut found on the desktop.
Lab 12: Using Features to Provision Sites 9
2. Navigate to the Feature directory by issuing the following command “cd
HOLFeatures” if not already there.
3. Copy the HOLLibrary feature to the server with the following command: “xcopy
HOLLibrary "C:Program FilesCommon FilesMicrosoft Sharedweb server
extensions12TEMPLATEFEATURESHOLLibrary" /s /y”
4. Install the feature to the server with the following command: “stsadm -o
installfeature -filename HOLLibraryfeature.xml”
5. Activate the feature for the Feature team site with the following command: “stsadm
-o activatefeature -filename HOLLibraryfeature.xml -url
http://hol.litwareinc.com/SiteDirectory/HOLFeature”
6. The HOL Library Feature has been successfully installed. To verify this, refresh the
All Content page of the “HOL Feature” site. Click on the “HOL Library”
document library and then click the down arrow beside New. You should have a
new document type called “HOL Document”.
Exercise 7
Review the different elements that compose the HOLSimpleFormToolBar
Feature
In this exercise we will review a feature that installs “Custom Actions” for the standard
Announcements list that navigates to a custom web part page also installed by this feature.
∑ Review the Feature
1. Open “C:HOLFeaturesHOLSimpleFormToolbar” directory and review the
files included in this feature.
2. Open “C:HOLFeaturesHOLSimpleFormToolbarfeature.xml”. The
“feature.xml” file content is listed below:
3. Notice the ElementManifest that points to the next important files for parsing
elements.xml and ElementFile. The ElementFile points to our custom web part page
sampleurl.aspx.
<?xml version="1.0" encoding="utf-8" ?>
<!-- _lcid="1033" _version="12.0.0.4407" _dal="1" -->
<!-- _LocalBinding -->
<Feature Id="72A67618-42FA-4dbb-A6F8-566EF1393F18"
Title="New Simple Form ToolBar Button"
Scope="Web"
xmlns="http://schemas.microsoft.com/sharepoint/">
<ElementManifests>
<ElementManifest Location="elements.xml" />
Lab 12: Using Features to Provision Sites
<ElementFile Location="sampleurl.aspx" />
</ElementManifests>
</Feature>
4. Open “C:HOLFeaturesHOLSimpleFormToolbarelements.xml”. The contents
are shown below.
Notice the CustomAction tags that create two toolbar buttons and an admin page link
that point to our custom page sampleurl.aspx. Additionally, notice that the Module
section is used to provision our custom web part page at the root of the site.
<?xml version="1.0" encoding="utf-8" ?>
<!-- _lcid="1033" _version="12.0.0.4407" _dal="1" -->
<!-- _LocalBinding -->
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<CustomAction Title="Simple (Display)"
Id="Simple Toolbar (Display)"
Sequence="100"
RegistrationType="List"
RegistrationId="104"
Location="DisplayFormToolbar">
<UrlAction Url="sampleurl.aspx?id={ItemId}" />
</CustomAction>
<CustomAction Title="Simple (Edit)"
Id="Simple Toolbar (Edit)"
Sequence="110"
RegistrationType="List"
RegistrationId="104"
Location="EditFormToolbar">
<UrlAction Url="sampleurl.aspx" />
</CustomAction>
<CustomAction Title="Simple Page"
Id="Simple Settings Page"
Sequence="50"
GroupId="SiteAdministration"
Location="Microsoft.SharePoint.SiteSettings"
Rights="ManageLists">
<UrlAction Url="sampleurl.aspx" />
</CustomAction>
<Module Name="SamplePage" Url="" Path="">
<File Url="sampleurl.aspx" />
</Module>
</Elements>
5. Open “C:HOLFeaturesHOLSimpleFormToolbarsampleurl.aspx”. The
“samplerurl.aspx” file content is listed below:
Lab 12: Using Features to Provision Sites 11
Notice that the <script> block which simply renders our Announcements list in a list
box. Additionally, notice the asp:Content tags that are used to layout our page utilizing
the ASP.NET 2.0 Master Pages functionality.
<%@ Page language="C#" MasterPageFile="~masterurl/default.master"
Inherits="Microsoft.SharePoint.WebPartPages.WebPartPage,Microsoft.SharePoint,Versi
on=12.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls"
Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral,
PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities"
Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral,
PublicKeyToken=71e9bce111e9429c" %>
<%@ Import Namespace="Microsoft.SharePoint" %>
<asp:Content ContentPlaceHolderId="PlaceHolderPageTitle"
runat="server"></asp:Content>
<asp:Content ContentPlaceHolderId="PlaceHolderAdditionalPageHead"
runat="server"></asp:Content>
<asp:Content ContentPlaceHolderId="PlaceHolderPageImage"
runat="server"></asp:Content>
<asp:Content ContentPlaceHolderId="PlaceHolderPageTitleInTitleArea"
runat="server">
Announcements List via Code
</asp:Content>
<asp:Content ContentPlaceHolderId="PlaceHolderPageDescription"
runat="server"></asp:Content>
<asp:Content ContentPlaceHolderId="PlaceHolderMain" runat="server">
<asp:ListBox ID="AnnouncementsList" runat="server" />
<script language="C#" runat=server>
protected override void OnLoad(EventArgs e)
{
if (!this.IsPostBack)
{
// Get the announcements list
SPWeb web = SPContext.GetContext(this.Context).Web;
SPList list =
web.GetListFromUrl("Lists/Announcements/AllItems.aspx");
// populate the list box with values from it
SPDataSource dataSource = new SPDataSource();
dataSource.List = list;
this.AnnouncementsList.DataSource = dataSource;
this.AnnouncementsList.DataTextField = "Title";
this.AnnouncementsList.DataValueField = "Title";
this.AnnouncementsList.DataBind();
}
base.OnLoad(e);
}
</script>
</asp:Content>
Lab 12: Using Features to Provision Sites
Exercise 8
Install the HOLSimpleFormToolBar feature
In this exercise you will install the HOLSimpleFormToolBar feature. This feature adds a
button at three different locations a) on the announcement itself b) the “Announcement” list
and c) in the “Site Administration” section.
∑ Install the HOLSimpleFormToolBar feature
1. Open an “Office 12 Command Prompt”, if not already opened, by double-clicking
the shortcut found on the desktop.
2. Navigate to the Feature directory by issuing the following command “cd
HOLFeatures”
3. Copy the HOLLibrary feature to the server with the following command: “xcopy
HOLSimpleFormToolBar "C:Program FilesCommon FilesMicrosoft
Sharedweb server
extensions12TEMPLATEFEATURESHOLSimpleFormToolBar" /s /y”
4. Install the feature to the server with the following command: “stsadm -o
installfeature -filename HOLSimpleFormToolBarfeature.xml”
5. Activate the feature for the Feature team site with the following command: “stsadm
-o activatefeature -filename HOLSimpleFormToolBarfeature.xml -url
http://hol.litwareinc.com/siteDirectory/HOLFeature”
6. The HOLSimpleFormToolBar Feature has been successfully installed. To verify this
installation, Open IE and navigate to the “HOL Feature” site at
“http://hol.litwareinc.com/sitedirectory/HOLFeature” and click the “Get Started
with Windows SharePoint Services!” link under Announcements
7. Note the Simple (Display) button on the toolbar. Click the “Simple(Display)” link
Notice that you are taken to the sample page included in your HOLSimpleFormToolBar
feature. This page displays all the announcements in the site in a multi-select form field.
Lab 12: Using Features to Provision Sites 13
8. Return to the “HOL Feature” site home page.
9. Click on the “Annoucements” link
10. Mouse over the accouncement and click the down arrow and select “Edit Item”
from the “Get Started with Windows SharePoint Services!” action menu.
11. Notice the Simple (Edit) button on the toolbar. Click that link.
Note that you are again taken to the same sample page included in our feature.
Lab 12: Using Features to Provision Sites
12. Return to the “HOL Feature” site home page.
13. Go to the site settings page by clicking on “Site Settings” from the “Site Actions”
menu.
14. Notice the “Simple Page” link in the “Site Administration” section. Click that link
15. You are again taken to the same sample page included in our feature.
Lab 12: Using Features to Provision Sites 15
16. Return to the “HOL Feature” site home page.
You have now installed and tested three powerful customizations addressing specific
needs of site Administrators and content contributors.
Exercise 9
Deactivate a Feature
In this exercise you will deactivate (remove) the toolbar buttons and Site Administration
option.
∑ Deactivate feature
1. Open an “Office 12 Command Prompt”, if not already opened, by double-clicking
the shortcut found on the desktop.
2. Navigate to the Feature directory by issuing the following command “cd
HOLFeatures”
You do not need to uninstall the feature for it to no longer be avaialble to the site. The
deactivatefeature command remove all components of the feature. Issue the following
command and check if the buttons and option under the Site Administration are still
available. They should not be!
3. Deactivate the feature for the HOLFeature team site with the following command:
“stsadm -o deactivatefeature -filename HOLSimpleFormToolBarfeature.xml
-url http://hol.litwareinc.com/siteDirectory/HOLFeature”
4. Verify that all buttons are no longer available and that the Site Administration
“Simple Page” was removed.
Lab Completed!

More Related Content

PDF
Advancing JavaScript with Libraries (Yahoo Tech Talk)
PDF
Lucene for Solr Developers
PPTX
DSpace 4.2 Transmission: Import/Export
PDF
Introduction to Solr
PDF
Lucene for Solr Developers
PPTX
DSpace 4.2 Basics & Configuration
PDF
Integrating the Solr search engine
PPTX
Hbase coprocessor with Oozie WF referencing 3rd Party jars
Advancing JavaScript with Libraries (Yahoo Tech Talk)
Lucene for Solr Developers
DSpace 4.2 Transmission: Import/Export
Introduction to Solr
Lucene for Solr Developers
DSpace 4.2 Basics & Configuration
Integrating the Solr search engine
Hbase coprocessor with Oozie WF referencing 3rd Party jars

What's hot (9)

PDF
New-Age Search through Apache Solr
PPTX
Introduction: YamBase
PDF
第一次用Parse就深入淺出
PDF
Android - Data Storage
PDF
Make your gui shine with ajax solr
PPTX
Apache Solr + ajax solr
PDF
Introduction to Solr
PPTX
Hibernate Performance Tuning @JUG Thüringen
PPTX
Android Data Storagefinal
New-Age Search through Apache Solr
Introduction: YamBase
第一次用Parse就深入淺出
Android - Data Storage
Make your gui shine with ajax solr
Apache Solr + ajax solr
Introduction to Solr
Hibernate Performance Tuning @JUG Thüringen
Android Data Storagefinal
Ad

Viewers also liked (6)

DOC
( 11 ) Office 2007 Intentionally Omitted
PDF
Introductionto Windows Share Point Services3.0
PPT
5060 A 04
PDF
Whats New In Moss2007 Feature Walkthrough
DOC
( 4 ) Office 2007 Configure The Official Records Site
PDF
Kickstart Tutorial Xml
( 11 ) Office 2007 Intentionally Omitted
Introductionto Windows Share Point Services3.0
5060 A 04
Whats New In Moss2007 Feature Walkthrough
( 4 ) Office 2007 Configure The Official Records Site
Kickstart Tutorial Xml
Ad

More from LiquidHub (20)

PDF
Share point 2013 coding standards and best practices 1.0
PPTX
Sharepoint 2013 upgrade process
PPTX
Share point 2013
PPTX
Share point 2010-uiimprovements
PPT
Microsoft office-sharepoint-server-2007-presentation-120211522467022-2
PPTX
Managing metadata in_share_point_2010
PPTX
Fast search for share point
DOC
Simple Farm Server Deployment
DOC
Pre Install Databases
DOC
Moss 2007 Deployment Detail
PDF
Moss 2007 Backup Strategies
PDF
How To Configure Email Enabled Lists In Moss2007 Rtm Using Exchange 2003
RTF
Bdc Screens
DOCX
Bdc Screens
PDF
5060 A 01 Demonstration Steps
PDF
5060 A 01
DOC
Working With Infopath 2007
PDF
Whats New In Microsoft Windows Share Point Services Feature Walkthrough
PDF
Overviewofthe2007 Microsoft Office System Components Refresh
PDF
Organizingand Finding Resourceswith Office Share Point Server2007 Refresh
Share point 2013 coding standards and best practices 1.0
Sharepoint 2013 upgrade process
Share point 2013
Share point 2010-uiimprovements
Microsoft office-sharepoint-server-2007-presentation-120211522467022-2
Managing metadata in_share_point_2010
Fast search for share point
Simple Farm Server Deployment
Pre Install Databases
Moss 2007 Deployment Detail
Moss 2007 Backup Strategies
How To Configure Email Enabled Lists In Moss2007 Rtm Using Exchange 2003
Bdc Screens
Bdc Screens
5060 A 01 Demonstration Steps
5060 A 01
Working With Infopath 2007
Whats New In Microsoft Windows Share Point Services Feature Walkthrough
Overviewofthe2007 Microsoft Office System Components Refresh
Organizingand Finding Resourceswith Office Share Point Server2007 Refresh

Recently uploaded (20)

PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
MYSQL Presentation for SQL database connectivity
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Approach and Philosophy of On baking technology
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Encapsulation theory and applications.pdf
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
Big Data Technologies - Introduction.pptx
PPTX
sap open course for s4hana steps from ECC to s4
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Per capita expenditure prediction using model stacking based on satellite ima...
MYSQL Presentation for SQL database connectivity
The AUB Centre for AI in Media Proposal.docx
gpt5_lecture_notes_comprehensive_20250812015547.pdf
20250228 LYD VKU AI Blended-Learning.pptx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
A comparative analysis of optical character recognition models for extracting...
Reach Out and Touch Someone: Haptics and Empathic Computing
Approach and Philosophy of On baking technology
Dropbox Q2 2025 Financial Results & Investor Presentation
Building Integrated photovoltaic BIPV_UPV.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
Encapsulation theory and applications.pdf
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
The Rise and Fall of 3GPP – Time for a Sabbatical?
Network Security Unit 5.pdf for BCA BBA.
Big Data Technologies - Introduction.pptx
sap open course for s4hana steps from ECC to s4

( 12 ) Office 2007 Features Custom List

  • 1. Lab 12: Using Features to Provision Sites Objectives After completing this lab, you will be able to: • Create a new Content Type as a new Feature • Create and Provision a custom document library • Create custom Actions to an existing list • Apply the appropriate scope to a feature Prerequisites Before working on this lab, you must have: • Labs 1 and 2 fully completed Scenario The objective of this lab is to gain an understanding of the new Features framework in Windows SharePoint Services 3.0 through an overview of the concepts and a walkthrough of several examples. The first exercise will walk you through the creation and provisioning of a custom document type. The second exercise walks through the elements of the custom document library related to Content Types. Finally, in the third exercise you will walk through associating Custom Actions to an existing Announcements list. These functionalities illustrated in this lab were either very difficult to do with custom lists or not possible at all in previous SharePoint version. Estimated time to complete this lab: 75 minutes Exercise 1 Review the different elements that compose the HOLContentType Feature In this exercise you will learn about different components of the custom HOLContentType feature. This feature creates a new Content Type called “HOL Document” based on the out-of-the-box “Document” Content Type and is categorized in a new “Content Type Group” called “HOL Content Type”. 1. Login as the Administrator 2. Open “C:HOLFeaturesHOLContentType” directory using Windows Explorer and browse the files included in this feature.
  • 2. Lab 12: Using Features to Provision Sites 3. Open the “feature.xml” file and notice that the “feature” has a unique id and it has been scoped to a “Site”. The “Site” scope actually refers to the “Site Collection” of your installation. A “Web’ is a single site of that Site Collection! Another important section to notice is the “ElementManifests” element. It points to another file. The HOLLibrary.xml file. The “feature.xml” file content of the HOLContentType feature is listed below. Note: A “content type” feature element needs to have a scope of “Site”. <?xml version="1.0" encoding="utf-8" ?> <!-- _lcid="1033" _version="12.0.0.4407" _dal="1" --> <!-- _LocalBinding --> < Feature Id="983BCDE5-77A3-4aae-9F16-CD94BE238EF4" Title="HOL Libraries" Description="This feature provides support for a new Content Type called HOL Document." Version="1.0.0.0" Scope="Site" xmlns="http://schemas.microsoft.com/sharepoint/"> <ElementManifests> <ElementManifest Location="HOLDocContentTypeHOLContentType.xml" /> </ElementManifests> </Feature> Exercise 2 Package and Review a Content Type Feature Content Type instances are based on an existing content type template. A content type template can also be based on another content type template, retaining references to them that define that parent-child relationship. Because of this, you can create an entire Content Type hierarchy, where general Content Types serve as the parent of more specific Content Types. In fact, Windows SharePoint Services 3.0 and Microsoft Office SharePoint Server 2007 (MOSS 2007) installs with such a template hierarchy already included. Windows SharePoint Services 3.0 also contains mechanisms for you to manage your Content Type groups and hierarchies, and enables you (if so desired) to propagate changes made to the parent to the child templates and instances as well. Note: For more detailed information on Content Types, please see the dedicated lab on this topic – Lab 7. In this exercise we will walkthrough the Content Type elements of the HOL Document Content Type feature covered in Exercise 1. 1. Browse the “C:HOLFeaturesHOLContentTypeHOLdocContentType” directory and open the “HOLContentType.xml” file included in this feature. The “HOLContentType.xml” file content is listed below:
  • 3. Lab 12: Using Features to Provision Sites 3 <?xml version="1.0" encoding="utf-8" ?> <!-- _lcid="1033" _version="12.0.0.4407" _dal="1" --> <!-- _LocalBinding --> <Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <ContentType ID="0x0101003D4F44E24FEF44BB93A8230B0E555023" Name="HOL Document" Group="HOL Content Types" Description="This is a document created at HOL." Version="0"> <FieldRefs> </FieldRefs> </ContentType> </Elements> Exercise 3 Install the HOLContentType Feature In this exercise you will install the HOLContentType feature. 1. Login as the Administrator 2. Open an “Office 12 Command Prompt” by double-clicking the shortcut found on the desktop. 3. Navigate to the Feature directory by issuing the following command “cd HOLFeatures”. 4. Copy the feature to the server’s feature folder with the following command: “xcopy HOLContentType "C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATEFEATURESHOLContentType" /s /y” 5. Install the feature to the server with the following command: “stsadm -o installfeature -filename HOLContentTypefeature.xml” 6. Activate the feature for the Feature team site with the following command: “stsadm -o activatefeature -filename HOLContentTypefeature.xml -url http://hol.litwareinc.com” Note: Due to the fact that “Content Types” have “Site” as scope, the top level site URL is entered. 7. The “HOLContentType” Feature has been successfully installed. To verify this installation, verify that the “HOL Content Types” group exist and list the “HOL Document” Content Type by launching IE, clicking “Home”, “Site Actions”, “Site Settings”, “Modify All Site Settings”, “Site Content Types” under the Galleries section.
  • 4. Lab 12: Using Features to Provision Sites Exercise 4 Review the different elements that compose the HOLLibrary Feature In this exercise you will learn about different components of the HOLLibrary feature. The HOLLibrary feature will be the next feature you will install and it will be installed on a new site you will create. ∑ Create the HOL Feature site first 1. As an Administrator, create a Team Site called “HOL Feature” located under the sitedirectory site. To do this, launch IE, click “Sites” in the top navigation, click “Create Site”, enter “HOL Feature” in the Title and “HOLFeature” in the URL name, and then select the “Team Site” template. 2. Click “Create”. 3. Open the “C:HOLFeaturesHOLLibrary” directory with Windows Explorer and browse the files included in this feature. 4. Open the “feature.xml” file and notice that the “feature” has a unique id and it has been scoped to a “web”. Another important section to notice is the “ElementManifests” element. It points to another file. The HOLLibrary.xml file. The “feature.xml” file content is listed below: <?xml version="1.0" encoding="utf-8" ?> <!-- _lcid="1033" _version="12.0.0.4407" _dal="1" --> <!-- _LocalBinding --> <Feature Id="35D10E49-31A2-4353-BD26-E44471968F03" Title="HOL Libraries" Description="This feature provides support for HOL libraries." Version="1.0.0.0" Scope="Web" xmlns="http://schemas.microsoft.com/sharepoint/"> <ElementManifests> <ElementManifest Location="ListTemplatesHOLLibrary.xml" /> </ElementManifests> </Feature> 5. Open and examine the HOLLibrary.xml file. Its content is listed below: ♦ Notice that the ListTemplate name attribute is hollib which corresponds to the HOLLib subdirectory and the files in it. Also, notice that we have provisioned an instance of our library via the ListInstance tag at the Url HOLDocs. <?xml version="1.0" encoding="utf-8" ?> <!-- _lcid="1033" _version="12.0.0.4407" _dal="1" --> <!-- _LocalBinding --> <Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <ListTemplate Name="hollib" Type="1500"
  • 5. Lab 12: Using Features to Provision Sites 5 BaseType="1" OnQuickLaunch="TRUE" SecurityBits="11" DisplayName="HOL Library" Description="This library contains docs created at HOL." Image="/_layouts/images/itdl.gif" DocumentTemplate="101"/> <ListInstance Id="HOLLibrary" Title="HOL Library" Description="HOL Library" TemplateType="1500" Url="HOLDocs"/> </Elements> 6. Open the “C:HOLFeaturesHOLLibraryHOLLibschema.xml” file. The “schema.xml” file content is listed below: ♦ Notice the ContentTypes section. Content types provide a means to manage the metadata and behavior of SharePoint list items, making it possible to store different types of content within the same library or list. <?xml version="1.0" encoding="utf-8"?> <!-- _lcid="1033" _version="12.0.0.4407" _dal="1" --> <!-- _LocalBinding --> <List xmlns:ows="Microsoft SharePoint" Name="HOLLibrary" Title="HOL Library" Direction="LTR" Url="Shared HOL Documents" BaseType="1" EnableContentTypes="TRUE"> <MetaData> <ContentTypes> <ContentTypeRef ID="0x0101"> <Folder TargetName="Forms/Document" /> </ContentTypeRef> <ContentTypeRef ID="0x0101003D4F44E24FEF44BB93A8230B0E555023" /> <ContentTypeRef ID="0x0120" /> </ContentTypes> <Fields> <Field ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Type="Text" Name="Title" ShowInNewForm="FALSE" ShowInFileDlg="FALSE" DisplayName="Title" Sealed="TRUE" SourceID="http://schemas.microsoft.com/sharepoint/v3" StaticName="Title"> </Field> </Fields> ... Omitted for brevity ... </List> • Notice ContentTypeRef ID="0x0101" that maps to the standard document content type associated with Document Libraries. The Content Type inheritance
  • 6. Lab 12: Using Features to Provision Sites hierarchy is actually defined in the ID field. As such, this Content Type inherits from ContentTypeRef ID="0x01" the base Item content type which inherits from ContentTypeRef ID="0x" the System base content type. • This file also contains the Folder Content Type definition found at ContentTypeRef ID="0x0120". 7. To best understand how the ID attribute maps to the specific Content Type, open the “ctypeswss.xml” file located at “C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATEFEATURESctypesctypeswss.xml”. The contents related to content types are shown below. <?xml version="1.0" encoding="utf-8" ?> <!-- --> <Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <ContentType ID="0x" Name="$Resources:System" Group="_Hidden" Sealed="TRUE" Version="0"> <FieldRefs> <FieldRef ID="{c042a256-787d-4a6f-8a8a-cf6ab767f12d}" Name="ContentType"/> </FieldRefs> </ContentType> <ContentType ID="0x01" Name="$Resources:Item" Group="$Resources:List_Content_Types" Description="$Resources:ItemCTDesc" Version="0"> <FieldRefs> <FieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Name="Title" Required="TRUE" ShowInNewForm="TRUE" ShowInEditForm="TRUE"/> <!-- Title --> </FieldRefs> <XmlDocuments> <XmlDocument NamespaceURI="http://schemas.microsoft.com/sharepoint/v3/contenttype/forms"> <FormTemplates xmlns="http://schemas.microsoft.com/sharepoint/v3/contenttype/forms"> <Display>ListForm</Display> <Edit>ListForm</Edit> <New>ListForm</New> </FormTemplates> </XmlDocument> </XmlDocuments> </ContentType> <ContentType ID="0x0101" Name="$Resources:Document" Group="$Resources:Document_Content_Types" Description="$Resources:DocumentCTDesc" V2ListTemplateName="doclib" Version="0"> <FieldRefs>
  • 7. Lab 12: Using Features to Provision Sites 7 <RemoveFieldRef ID="{67df98f4-9dec-48ff-a553-29bece9c5bf4}" Name="Attachments" /> <!-- Attachments --> <RemoveFieldRef ID="{f1e020bc-ba26-443f-bf2f-b68715017bbc}" Name="WorkflowVersion" /> <!-- WorkflowVersion --> <RemoveFieldRef ID="{bc91a437-52e7-49e1-8c4e-4698904b2b6d}" Name="LinkTitleNoMenu" /> <!-- LinkTitleNoMenu --> <RemoveFieldRef ID="{82642ec8-ef9b-478f-acf9-31f7d45fbc31}" Name="LinkTitle" /> <!-- LinkTitle --> <RemoveFieldRef ID="{ae069f25-3ac2-4256-b9c3-15dbc15da0e0}" Name="GUID" /> <!-- GUID --> <RemoveFieldRef ID="{de8beacf-5505-47cd-80a6-aa44e7ffe2f4}" Name="WorkflowInstanceID" /> <!-- WorkflowInstanceID --> <FieldRef ID="{5f47e085-2150-41dc-b661-442f3027f552}" Name="SelectFilename" /> <!-- SelectFilename --> <FieldRef ID="{8553196d-ec8d-4564-9861-3dbe931050c8}" Name="FileLeafRef" Required="TRUE"/> <!-- FileLeafRef --> <FieldRef ID="{8c06beca-0777-48f7-91c7-6da68bc07b69}" Name="Created" Hidden="TRUE" /> <!-- Created --> <FieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Name="Title" Required="FALSE" ShowInNewForm="FALSE" ShowInEditForm="TRUE"/> <!-- Title --> <!-- TODO: The old display name was: 'DisplayName="Created Date">__LDisp(camlionet37)' We may need to special case this for back compat --> <FieldRef ID="{28cf69c5-fa48-462a-b5cd-27b6f9d2bd5f}" Name="Modified" Hidden="TRUE" /> <!-- Modified --> <!-- TODO: The old display name was: 'DisplayName="Last Modified">__LDisp(camlionet36)' We may need to special case this for back compat --> <FieldRef ID="{28cf69c5-fa48-462a-b5cd-27b6f9d2bd5f}" Name="Modified" Hidden="TRUE" /> <!-- Modified --> <!-- TODO hailiu: The old display name was: 'DisplayName="$Resources:core,Last_Modified;">__LDisp(camlionet36)' We may need to special case this for back compat --> <FieldRef ID="{822c78e3-1ea9-4943-b449-57863ad33ca9}" Name="Modified_x0020_By" Hidden="FALSE"/> <!-- Modified_x0020_By --> <FieldRef ID="{4dd7e525-8d6b-4cb4-9d3e-44ee25f973eb}" Name="Created_x0020_By" Hidden="FALSE" /> <!-- Created_x0020_By --> </FieldRefs> <XmlDocuments> <XmlDocument NamespaceURI="http://schemas.microsoft.com/sharepoint/v3/contenttype/forms"> <FormTemplates xmlns="http://schemas.microsoft.com/sharepoint/v3/contenttype/forms"> <Display>DocumentLibraryForm</Display> <Edit>DocumentLibraryForm</Edit> <New>DocumentLibraryForm</New> </FormTemplates> </XmlDocument> </XmlDocuments> </ContentType> ... Omitted for brevity ... <ContentType ID="0x0120" Name="$Resources:Folder" Group="$Resources:Folder_Content_Types" Description="$Resources:FolderCTDesc" Sealed="TRUE" Version="0"> <FieldRefs>
  • 8. Lab 12: Using Features to Provision Sites <FieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Name="Title" Required="FALSE" Hidden="TRUE"/> <!-- Title --> <FieldRef ID="{8553196d-ec8d-4564-9861-3dbe931050c8}" Name="FileLeafRef" Hidden="FALSE"/> <!-- FileLeafRef --> </FieldRefs> </ContentType> ... Omitted for brevity ... </Elements> Exercise 5 Check the state of the HOL Feature site prior to installing the new Library Feature In this exercise you will check the current state of the HOL Feature sire you created in exercise 4. You will notice that their will be only one Document Library (Shared Documents) currently available. 1. Launch IE and navigate to the HOL Feature site located at “http://hol.litwareinc.com/sitedirectory/HOL Feature”. 2. Click on “View All Site Content” located on the top left navigation element and notice the site has only one Shared Documents library under the Document Libraries section. 3. Keep your web browser on this page. Exercise 6 Install the HOLLibrary feature In this exercise you will create and install a new feature (HOLLibrary) which will create the HOL Library document library. This library is a simple reuse of the standard Document Library (via copy-paste-rename) installed with Windows SharePoint Services 3.0. Using the functionality of Features, we will create an instance of a Document Library and a Content Type of “HOL Document” which will then be included in the root of the site on which we activate our feature on. ∑ Install the feature 1. Open an “Office 12 Command Prompt”, if not already opened, by double-clicking the shortcut found on the desktop.
  • 9. Lab 12: Using Features to Provision Sites 9 2. Navigate to the Feature directory by issuing the following command “cd HOLFeatures” if not already there. 3. Copy the HOLLibrary feature to the server with the following command: “xcopy HOLLibrary "C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATEFEATURESHOLLibrary" /s /y” 4. Install the feature to the server with the following command: “stsadm -o installfeature -filename HOLLibraryfeature.xml” 5. Activate the feature for the Feature team site with the following command: “stsadm -o activatefeature -filename HOLLibraryfeature.xml -url http://hol.litwareinc.com/SiteDirectory/HOLFeature” 6. The HOL Library Feature has been successfully installed. To verify this, refresh the All Content page of the “HOL Feature” site. Click on the “HOL Library” document library and then click the down arrow beside New. You should have a new document type called “HOL Document”. Exercise 7 Review the different elements that compose the HOLSimpleFormToolBar Feature In this exercise we will review a feature that installs “Custom Actions” for the standard Announcements list that navigates to a custom web part page also installed by this feature. ∑ Review the Feature 1. Open “C:HOLFeaturesHOLSimpleFormToolbar” directory and review the files included in this feature. 2. Open “C:HOLFeaturesHOLSimpleFormToolbarfeature.xml”. The “feature.xml” file content is listed below: 3. Notice the ElementManifest that points to the next important files for parsing elements.xml and ElementFile. The ElementFile points to our custom web part page sampleurl.aspx. <?xml version="1.0" encoding="utf-8" ?> <!-- _lcid="1033" _version="12.0.0.4407" _dal="1" --> <!-- _LocalBinding --> <Feature Id="72A67618-42FA-4dbb-A6F8-566EF1393F18" Title="New Simple Form ToolBar Button" Scope="Web" xmlns="http://schemas.microsoft.com/sharepoint/"> <ElementManifests> <ElementManifest Location="elements.xml" />
  • 10. Lab 12: Using Features to Provision Sites <ElementFile Location="sampleurl.aspx" /> </ElementManifests> </Feature> 4. Open “C:HOLFeaturesHOLSimpleFormToolbarelements.xml”. The contents are shown below. Notice the CustomAction tags that create two toolbar buttons and an admin page link that point to our custom page sampleurl.aspx. Additionally, notice that the Module section is used to provision our custom web part page at the root of the site. <?xml version="1.0" encoding="utf-8" ?> <!-- _lcid="1033" _version="12.0.0.4407" _dal="1" --> <!-- _LocalBinding --> <Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <CustomAction Title="Simple (Display)" Id="Simple Toolbar (Display)" Sequence="100" RegistrationType="List" RegistrationId="104" Location="DisplayFormToolbar"> <UrlAction Url="sampleurl.aspx?id={ItemId}" /> </CustomAction> <CustomAction Title="Simple (Edit)" Id="Simple Toolbar (Edit)" Sequence="110" RegistrationType="List" RegistrationId="104" Location="EditFormToolbar"> <UrlAction Url="sampleurl.aspx" /> </CustomAction> <CustomAction Title="Simple Page" Id="Simple Settings Page" Sequence="50" GroupId="SiteAdministration" Location="Microsoft.SharePoint.SiteSettings" Rights="ManageLists"> <UrlAction Url="sampleurl.aspx" /> </CustomAction> <Module Name="SamplePage" Url="" Path=""> <File Url="sampleurl.aspx" /> </Module> </Elements> 5. Open “C:HOLFeaturesHOLSimpleFormToolbarsampleurl.aspx”. The “samplerurl.aspx” file content is listed below:
  • 11. Lab 12: Using Features to Provision Sites 11 Notice that the <script> block which simply renders our Announcements list in a list box. Additionally, notice the asp:Content tags that are used to layout our page utilizing the ASP.NET 2.0 Master Pages functionality. <%@ Page language="C#" MasterPageFile="~masterurl/default.master" Inherits="Microsoft.SharePoint.WebPartPages.WebPartPage,Microsoft.SharePoint,Versi on=12.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c" %> <%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Import Namespace="Microsoft.SharePoint" %> <asp:Content ContentPlaceHolderId="PlaceHolderPageTitle" runat="server"></asp:Content> <asp:Content ContentPlaceHolderId="PlaceHolderAdditionalPageHead" runat="server"></asp:Content> <asp:Content ContentPlaceHolderId="PlaceHolderPageImage" runat="server"></asp:Content> <asp:Content ContentPlaceHolderId="PlaceHolderPageTitleInTitleArea" runat="server"> Announcements List via Code </asp:Content> <asp:Content ContentPlaceHolderId="PlaceHolderPageDescription" runat="server"></asp:Content> <asp:Content ContentPlaceHolderId="PlaceHolderMain" runat="server"> <asp:ListBox ID="AnnouncementsList" runat="server" /> <script language="C#" runat=server> protected override void OnLoad(EventArgs e) { if (!this.IsPostBack) { // Get the announcements list SPWeb web = SPContext.GetContext(this.Context).Web; SPList list = web.GetListFromUrl("Lists/Announcements/AllItems.aspx"); // populate the list box with values from it SPDataSource dataSource = new SPDataSource(); dataSource.List = list; this.AnnouncementsList.DataSource = dataSource; this.AnnouncementsList.DataTextField = "Title"; this.AnnouncementsList.DataValueField = "Title"; this.AnnouncementsList.DataBind(); } base.OnLoad(e); } </script> </asp:Content>
  • 12. Lab 12: Using Features to Provision Sites Exercise 8 Install the HOLSimpleFormToolBar feature In this exercise you will install the HOLSimpleFormToolBar feature. This feature adds a button at three different locations a) on the announcement itself b) the “Announcement” list and c) in the “Site Administration” section. ∑ Install the HOLSimpleFormToolBar feature 1. Open an “Office 12 Command Prompt”, if not already opened, by double-clicking the shortcut found on the desktop. 2. Navigate to the Feature directory by issuing the following command “cd HOLFeatures” 3. Copy the HOLLibrary feature to the server with the following command: “xcopy HOLSimpleFormToolBar "C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATEFEATURESHOLSimpleFormToolBar" /s /y” 4. Install the feature to the server with the following command: “stsadm -o installfeature -filename HOLSimpleFormToolBarfeature.xml” 5. Activate the feature for the Feature team site with the following command: “stsadm -o activatefeature -filename HOLSimpleFormToolBarfeature.xml -url http://hol.litwareinc.com/siteDirectory/HOLFeature” 6. The HOLSimpleFormToolBar Feature has been successfully installed. To verify this installation, Open IE and navigate to the “HOL Feature” site at “http://hol.litwareinc.com/sitedirectory/HOLFeature” and click the “Get Started with Windows SharePoint Services!” link under Announcements 7. Note the Simple (Display) button on the toolbar. Click the “Simple(Display)” link Notice that you are taken to the sample page included in your HOLSimpleFormToolBar feature. This page displays all the announcements in the site in a multi-select form field.
  • 13. Lab 12: Using Features to Provision Sites 13 8. Return to the “HOL Feature” site home page. 9. Click on the “Annoucements” link 10. Mouse over the accouncement and click the down arrow and select “Edit Item” from the “Get Started with Windows SharePoint Services!” action menu. 11. Notice the Simple (Edit) button on the toolbar. Click that link. Note that you are again taken to the same sample page included in our feature.
  • 14. Lab 12: Using Features to Provision Sites 12. Return to the “HOL Feature” site home page. 13. Go to the site settings page by clicking on “Site Settings” from the “Site Actions” menu. 14. Notice the “Simple Page” link in the “Site Administration” section. Click that link 15. You are again taken to the same sample page included in our feature.
  • 15. Lab 12: Using Features to Provision Sites 15 16. Return to the “HOL Feature” site home page. You have now installed and tested three powerful customizations addressing specific needs of site Administrators and content contributors. Exercise 9 Deactivate a Feature In this exercise you will deactivate (remove) the toolbar buttons and Site Administration option. ∑ Deactivate feature 1. Open an “Office 12 Command Prompt”, if not already opened, by double-clicking the shortcut found on the desktop. 2. Navigate to the Feature directory by issuing the following command “cd HOLFeatures” You do not need to uninstall the feature for it to no longer be avaialble to the site. The deactivatefeature command remove all components of the feature. Issue the following command and check if the buttons and option under the Site Administration are still available. They should not be! 3. Deactivate the feature for the HOLFeature team site with the following command: “stsadm -o deactivatefeature -filename HOLSimpleFormToolBarfeature.xml -url http://hol.litwareinc.com/siteDirectory/HOLFeature” 4. Verify that all buttons are no longer available and that the Site Administration “Simple Page” was removed. Lab Completed!