사이트 템플릿 만들기

 

1.     Site Action / Create Site 클릭하면, New SharePoint Site 라는 화면이 나타난다.

 

2.     Template Selection / Select a template 탭 추가

 

 

-      C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\(LCID)\XML WEBTEMP.XML를 해당 폴더에 Copy 하여 파일명을 WEBTEMP*****.XML로 변경한다. (, 파일명을 임의로 정하면 되지 않는다. 예를 들면, WEBTEMPSKT.XML)

 

-      복사한 WEBTEMPSKT.XML를 수정하는데, 예제를 통해 설명하자면,

 

<?xml version="1.0" encoding="utf-8"?>

<!-- _lcid="1033" _version="12.0.4518" _dal="1" -->

<!-- _LocalBinding -->

<Templates xmlns:ows="Microsoft SharePoint">

<Template Name="SampleTemplate" ID="10001">

<Configuration ID="0" Title="Global Avenue Community" Hidden="FALSE" ImageUrl="/_layouts/images/stsprev.png"

Description="A site for teams to quickly organize, author, and share information. It provides a document library, and lists for managing announcements, calendar items, tasks, and discussions.(SKT Global Avenue Community Site)"

                           DisplayCategory="SKT" >

                          </Configuration>

            </Template>

</Templates>

 

<Template>

Name : Site Template 이름 (C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\SiteTemplates 밑에 사이트 템플릿을 만들 폴더 이름)

ID : Site Template ID인데, 임의로 지정(10000번 이상으로 지정하는 게 좋다고 한다.)

 

<Configuration>

ID : Configuration IDSite Template 만들 때 중요한 ID값이므로, 기억하는 게 좋다.

Title : 위 그림에서 보면 탭 안에 있는 템플릿 명을 나타낸다.

Hidden : 템플릿 탭을 보여줄지 여부를 체크한다.

ImageUrl : 우측 이미지 URL 주소를 나타낸다.

Description : 이미지 아래 설명 부분을 나타낸다.

DisplayCategory : 탭 버튼에 들어가는 텍스트를 나타낸다.(상단그림에서 빨간색 부분)

 

 

-      Site Template 폴더 생성

C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\SiteTemplates\sts를 해당 폴더에 Copy 한다. 그 폴더 명은 WEBTEMPSKT.XML에서 정의한 Template Name으로 변경한다.

 

-      Site Template Onet.xml 수정

 

<?xml version="1.0" encoding="utf-8"?>

<Project Title="$Resources:onet_TeamWebSite;" Revision="2" ListDir="$Resources:core,lists_Folder;" xmlns:ows="Microsoft SharePoint">

<!-- _locID@Title="camlidonet1" _locComment="{StringCategory=HTX}" -->

<NavBars>…

<ListTemplates>…

<DocumentTemplates>…

<Configurations>…

<Modules>…

</Project>

            

             보통 수정해야 할 부분이 Configurations Modules 부분이다.

            

 

<Configurations>

<Configuration ID="0" Name="Default" MasterUrl="_catalogs/masterpage/GAComm.master">

<Lists>

<List FeatureId="00BFEA71-E717-4E80-AA17-D0C71B360101" Type="101" Title="Shared Documents" Url="doc" QuickLaunchUrl="doc/Forms/AllItems.aspx" />

<List FeatureId="00BFEA71-EC85-4903-972D-EBE475780106" Type="106" Title="$Resources:core,calendarList;" Url="$Resources:core,lists_Folder;/$Resources:core,calendar_Folder;" QuickLaunchUrl="$Resources:core,lists_Folder;/$Resources:core,calendar_Folder;/Calendar.aspx" EmailAlias="$Resources:core,calendar_EmailAlias;" />

<List FeatureId="00BFEA71-52D4-45B3-B544-B1C71B620109" Type="109" Title="Picture library" Url="picture" QuickLaunchUrl="picture/Forms/AllItems.aspx" />

                  </Lists>

                  <Modules>

                      <Module Name="Default" />

                      <Module Name="CustomMasterPage" />

                  </Modules>

                  <SiteFeatures>

                      <!-- BasicWebParts Feature -->

                      <Feature ID="00BFEA71-1C5E-4A24-B310-BA51C3EB7A57" />

                      <!-- Three-state Workflow Feature -->

                      <Feature ID="FDE5D850-671E-4143-950A-87B473922DC7" />

                  </SiteFeatures>

                  <WebFeatures>

                      <Feature ID="00BFEA71-4EA5-48D4-A4AD-7EA5C011ABE5" />

             <!-- TeamCollab Feature -->

                      <Feature ID="F41CC668-37E5-4743-B4A8-74D1DB3FD8A4" />

                      <!-- MobilityRedirect -->

<!-- 응답형 게시판 -->

                      <Feature ID="EE4DB430-EB44-4696-9E03-F6D70DFC144C" />

                      <!-- 사이트생성후 처리 -->

                      <Feature ID="A4DFAAF2-D2D0-45a2-8AC6-011B9E6B2088" />

                  </WebFeatures>

              </Configuration>

         </Configurations>

 

l  <Configuration> 설명

여기서 중요한 사항 중 하나가 WEbTEMP***.XML 에서 정의한 Configuration ID 값과 Site Template 에서 정의한 Configuration ID 값이 같아야 한다. MasterUrl은 해당 Url에 있는 file를 마스터로 등록한다.

 

Lists : 리스트 찍는 부분으로 FeatureId 는 리스트템플릿의 FeatureId, Type는 리스트 Type 번호

                 Title 는 리스트 이름, Url는 리스트 Url

Modules : 웹파트 추가, 마스터 페이지 파일 등록 등등 작업하는 곳

SiteFeatures : 사이트 모음 기능을 나타내며, Feature ID를 등록시, 기능 활성화 된다.

WebFeatures  : 사이트 기능으로 ID 등록시, 기능 활성화 된다.

 

 

         <Modules>

<Module Name="CustomMasterPage" List="116" Url="_catalogs/masterpage" RootWebOnly="FALSE">

                  <File Url="GAComm.master" Type="GhostableInLibrary" IgnoreIfAlreadyExists="TRUE" />

              </Module>

              <Module Name="Default" Url="" Path="">

                  <File Url="default.aspx" NavBarHome="True">

<View List="$Resources:core,lists_Folder;/$Resources:core,calendar_Folder;" BaseViewID="0" RecurrenceRowset="TRUE" WebPartZoneID="Left" WebPartOrder="2" />

<AllUsersWebPart WebPartZoneID="Right" WebPartOrder="0">

                   <![CDATA[

                      <webParts>

                           <webPart xmlns="http://schemas.microsoft.com/WebPart/v3">

                           <metaData>

<type name="SKT.TWorkplace.SPS.GlobalAvenue.WebParts.CommImage, SKT.TWorkplace.SPS.GlobalAvenue.WebParts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=388b774ba96c947e" />

                           <importErrorMessage>Cannot import this Web Part.</importErrorMessage>

                           </metaData>

                           <data>

                           <properties>

                                    <property name="AllowClose" type="bool">True</property>

                                   <property name="Width" type="string" />

                                   <property name="AllowMinimize" type="bool">True</property>

                                    <property name="AllowConnect" type="bool">True</property>

                                   <property name="ChromeType" type="chrometype">None</property>

                                   <property name="TitleIconImageUrl" type="string" />

                                   <property name="Description" type="string" />

                                   <property name="Hidden" type="bool">False</property>

                                   <property name="TitleUrl" type="string" />

                                   <property name="AllowEdit" type="bool">True</property>

                                   <property name="Height" type="string" />

<property name="MissingAssembly" type="string">Cannot import this Web Part.</property>

                                    <property name="HelpUrl" type="string" />

                                   <property name="Title" type="string">Community Image</property>

                                   <property name="CatalogIconImageUrl" type="string" />

                                   <property name="Direction" type="direction">NotSet</property>

<property name="ChromeState" type="chromestate">Normal</property>

                                   <property name="AllowZoneChange" type="bool">True</property>

                                   <property name="AllowHide" type="bool">True</property>

                                   <property name="HelpMode" type="helpmode">Modeless</property>

                                   <property name="ExportMode" type="exportmode">All</property>

                           </properties>

                           </data>

                           </webPart>

                      </webParts>

                      ]]>

</AllUsersWebPart>

                  </File>

</Module>

         </Modules>

 

l  <Modules> 설명

<Configuration><Modules><Module Name=””>에서 정의한 Name과 동일하여야 한다.(Configuration 아래 Modules는 구성하는것이고, 실제 작업은 여기 Modules에서 한다고 생각하면 된다.)

        

<Module Name="CustomMasterPage" List="116" Url="_catalogs/masterpage" RootWebOnly="FALSE">

              <File Url="GAComm.master" Type="GhostableInLibrary" IgnoreIfAlreadyExists="TRUE" />

</Module>

 

사이트 템플릿을 만든 폴더 (, C:\Program Files\Common Files\Microsoft Shared\web se

rver extensions\12\TEMPLATE\SiteTemplates\SKTTemplate) 아래 있는 마스터 페이지를 마스터 페이지 갤러리에 등록하는 부분이다.

 

<Module Name="Default" Url="" Path="">

             <File Url="default.aspx" NavBarHome="True">

<View List="$Resources:core,lists_Folder;/$Resources:core,calendar_Folder;" BaseViewID="0" RecurrenceRowset="TRUE" WebPartZoneID="Left" WebPartOrder="2" />

<AllUsersWebPart WebPartZoneID="Right" WebPartOrder="0">…….

      

default.aspx 레이아웃(웹파트존) 정의 된 페이지로, 그 파일에 웹파트를 추가하는 부분이다. WebPartZoneID 는 웹파트존의 위치, WebPartOrder 웹파트의 순서를 나타낸다.

 

<AllUsersWebPart WebPartZoneID="Right" WebPartOrder="0">

<![CDATA[

...*******************************************

]]>

</AllUsersWebPart>

 

커스텀 웹파트는 ********** 부분에 웹파트 속성 정보(xml 형식)을 작성하면 된다.

웹파트 속성은 아래 그림과 같이 내보내기를 하면 해당 파일에 xml형식로 되어 있다.

 

+ Recent posts