下面介绍一些主要的文件目录。
1、 ISAPI目录
此目录下面存放的是SharePoint自带的Web Services,我们也可以自定义Web Services封装在SharePoint里面。自定义Web Services方法见:Writing Custom Web Services for SharePoint Products and Technologies。
2、 Resources目录
SharePoint有两个资源文件夹,目录分别为C:\Program Files\Common Files\MicrosoftShared\web server extensions\12\CONFIG\Resources和C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\Resources,本地化工作主要是编写Resourses里的文件,网站如果显示的一些标题或描述不符合我们的要求,那么可以通过修改资源文件里的
<Data Name="修改元素">
<Value>网站显示的内容</Value>
</Data>
要引用资源文件里面的内容,一般通过$Resources:开头。
例如:<%$Resources:sps,LayoutPageZone_TopZone%>
其中:sps表示资源文件名,与sps.zh-CN.resx相对应。LayoutPageZone_TopZone表示sps.zh-CN.resx文件中的
<Data Name="LayoutPageZone_TopZone">
<Value>顶部区域</Value>
</Data>
节点。
注:一般不推荐修改所有C:\Program Files\Common Files\Microsoft Shared\web server extensions\12目录下的文件,因为这样将给版本升级带来问题。要加入我们自定义的内容通过增加文件到相应的目录下即可。比如这里我们可以增加一个资源文件,把我们要修改的元素放在里面。
3、 TEMPLATE目录
这是一个最主要的目录。子目录介绍如下:
(1)、SiteTemplates目录
放置各种网站定义模板。每个网站定义模板都会有一个ONET.XML文件,它位于 C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\SiteTemplates\Site_Definition_Name\XML folder
ONET.XML有五个节:
1、NavBars:指定主页的顶部导航和左部导航
2、ListTemplates:指定该站点可创建的各种列表(自定义列表、文档库、图片库等)
3、DocumentTemplates:指定在创建文档库时可以创建的文档模板(Microsoft Office Word 文档、Microsoft Office FrontPage 网页、Microsoft Office Excel 电子表格等)
4、Configurations:指定站点在创建时默认生成的各种列表和模块
5、Modules:指定站点中默认包含的Web部件库
注意:修改ONET.XML后需要重新启动IIS,才可生效
实例:基于已有模板创建站点模板。
步骤:
1、打开C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\SiteTemplates目录
2、复制粘贴一个SPS文件夹,改名为GASSPS
3、找到C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\2052\XML目录
4、在目录中创建一个名为WEBTEMPGASSPS.XML的文件,把下列XML粘贴到文件中
<?xml version="1.0" encoding="utf-8"?>
<!-- _lcid="2052" _version="12.0.4518" _dal="1" -->
<!-- _LocalBinding -->
<Templates xmlns:ows="Microsoft SharePoint">
<Template Name="GASSPS" ID="10001">
<Configuration ID="0" Title="浙江天然气模板" Hidden="FALSE" ImageUrl=""
Description="此模板用于初始化浙江天然气网站。" >
</Configuration>
</Template>
</Templates>
5、重启IIS(iisreset)
6、打开创建站点页面,在“选择模板”节中多了一个“自定义”选项,下面就有我们刚添加的“浙江天然气模板”。
(2)、THEMES目录
放置各种网站主题。
实例:创建自定义的主题
步骤:
1、先找到 Theme 文件夹位置 C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\THEMES
2、复制一个 Theme 的文件夹如 CLASSIC 更改成自己要的名字如 GASTHEME
3、在文件夹中,将CLASSIC.INF 改成与自己文件夹相同的名字如 GASTHEME.INF
4、打开 GASTHEME.INF 将 title 改成与自己文件夹和文件名相同的名字如GASTHEME
5、找到 C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS\2052\SPTHEMES.XML 文件,复制并粘贴一个<Templates>元素,修改里面的内容如下:
<Templates>
<TemplateID>GASTHEME</TemplateID>
<DisplayName>天然气主题</DisplayName>
<Description>天然气主题将被应用</Description>
<Thumbnail>images/thwheat.gif</Thumbnail>
<Preview>images/thwheat.gif</Preview>
</Templates>
上面两个图片是参考Wheat主题的图片,也可以改成自己的图片,图片存放位置 C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\IMAGES文件夹下
6、打开“网站设置”中“网站主题”,就可以找到我们刚刚添加的GASTHEME主題了。
(3)、LAYOUTS目录
网站所有的页面功能(网址后面有 _layouts的页面)都集中于此目录下面(除了模板中的Default.aspx以及某类型List相关页面)。可以添加自己的功能页面,方法:
(4)、ADMIN目录
管理中心的页面功能集中此目录下面。
(5)、CONTROLTEMPLATES目录
放置各种服务器控件。
(6)、IMAGES目录
放置网站用到的主要图片,如网站Logo等。
(7)、FEATURES目录
放置各种Feature,在MOSS 2007中feature功能之强大超乎想象,可以说对一个已有的网站功能性的增强最后多数都要通过feature来实现。包括母版页、内容页以及文档库等都是通过Feature来实现的。
实例1:使用Feature自定义母版页。
步骤:
1、 打开Feature目录C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES
2、 新建一个GASMASTERPAGES文件夹
3、 在GASMASTERPAGES文件夹下,新建Feature.xml文件,将下列内容粘贴到文件中
<!-- _lcid="1033" _version="12.0.4518" _dal="1" -->
<!-- _LocalBinding -->
<Feature Id="cbdddc58-c0e1-4d64-99bc-071379a910f3"
Title="Gas Master"
Description=""
Version="12.0.0.0"
Scope="Site"
Hidden="False"
DefaultResourceFile="core"
xmlns="http://schemas.microsoft.com/sharepoint/">
<ElementManifests>
<ElementManifest Location="ProvisionedFiles.xml"/>
</ElementManifests>
</Feature>
在这个XML文件中,以下关于Featrue的metadata 包含在Featrue 元素中。(更详细的信息请参阅Feature.xml Files)
ID: 一个GUID,用于唯一标识这个Feature,可以通过VS生成
Title:Feature 的名字,可以在网站内关于Site Featrues的页面中看到。
Description:对description的描述。
Version:Feature的版本;
Scope:其值可以是Web或Site,它指明了这个Feature是应用于整个的Site Collection还是仅仅用于单独的一个子站点。
Hidden:值可以是True或False.该设置指定了这个Feature是否在Site Feature页面上显示。
DefaultResourceFile: 资源文件名字,Feature依赖它提供其它附加的配置信息。
Feature.xml文件中的<ElementManifests>元素,这个元素包含了另一个XML文件的位置,而这个文件包含的<Elemnets>的内容是Feature要实现的。
<ElementManifest>元素指明了要使用一个名为ProvisionedFiles.xml的文件,以下是该文件的<Elements>元素内容。
4、 在GASMASTERPAGES文件夹下,新建ProvisionedFiles.xml文件,将下列内容粘贴到文件中
<!-- _lcid="1033" _version="12.0.4518" _dal="1" -->
<!-- _LocalBinding -->
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Module Name="OSGMasterPages" Url="_catalogs/masterpage" Path="MasterPages" RootWebOnly="TRUE">
<File Url="Gasmaster.master" Type="GhostableInLibrary">
<Property Name="ContentType" Value="" />
<Property Name="PublishingPreviewImage" Value="~SiteCollection/_catalogs/masterpage/$Resources:core,Culture;/Preview Images/Gas.png, ~SiteCollection/_catalogs/masterpage/$Resources:core,Culture;/Preview Images/Gas.png" />
<Property Name="MasterPageDescription" Value="" />
</File>
</Module>
<Module Name="PublishingLayoutsPreviewImages" Url="_catalogs/masterpage" IncludeFolders="??-??" Path="" RootWebOnly="TRUE">
<File Url="Gas.png" Name="Preview Images/Gas.png" Type="GhostableInLibrary">
</File>
</Module>
</Elements>
5、 新建MasterPages和zh-cn文件夹,在MasterPages文件夹中新建Gasmaster.master文件,在zh-cn文件夹中放入一张模板页的图片Gas.png
6、 重启IIS(iisreset)
7、 在SharePoint服务器上运行CMD.exe,
输入命令切换目录:cd C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN
安装Feature输入命令:stsadm -o installfeature -filename GASMASTERPAGES
激活Feature输入命令:stsadm -o activatefeature -filename GASMASTERPAGES\feature.xml -url http://portal:8000
8、 打开“网站设置”中“母版页”,就可以看到我们刚刚添加的Gasmaster.master母版。
参考连接:Create a Feature: Add Custom Master Pages to your Site Collections
实例2:使用Feature定义站点中的菜单项
包括其中第一个CustomAction在“网站设置”页面中的“外观”标题下创建了一个自定义链接.第二个CustomAction在页面的“网站操作”菜单下增加了一个用户自定义菜单项.第三个CustomAction在文档库的“新建”下拉菜单下创建了一个自定义菜单项.第四个CustomAction在文档库的“操作”下拉菜单下创建了一个自定义菜单项。
步骤:
1、创建一个Feature.xml文件
在Features目录下创建一个目录例如MyMenu,在其中创建一个Feature.xml文件,文件内容如下:
<?xml version="1.0" encoding="utf-8" ?>
<!-- _lcid="1033" _version="12.0.4017" _dal="1" -->
<!-- _LocalBinding -->
<Feature Id="6098EC11-8128-409A-8D2C-414E93F67DD4"
Title="$Resources:GasMenu,MenuTitle;"
Description="$Resources:GasMenu,MenuDescription;"
Version="12.0.0.0"
Scope="Web"
Hidden="FALSE"
DefaultResourceFile="customDocumentLibrary"
xmlns="http://schemas.microsoft.com/sharepoint/">
<ElementManifests>
<ElementManifest Location="LightUp.xml" />
</ElementManifests>
</Feature>
2、在C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\Resources文件夹中新建GasMenu.zh-CN.resx文件,输入以下内容
<?xml version="1.0" encoding="utf-8"?>
<!-- _lcid="2052" _version="12.0.4518.1016" _dal="1" -->
<!-- _LocalBinding -->
<root>
<Data Name="MenuTitle">
<Value>天然气菜单项</Value>
</Data>
<Data Name="MenuDescription">
<Value>添加了四个菜单项,分别为在“网站设置”页面中的“外观”标题下创建了一个自定义链接、在页面的“网站操作”菜单下增加了一个用户自定义菜单项、在文档库的“新建”下拉菜单下创建了一个自定义菜单项和在文档库的“操作”下拉菜单下创建了一个自定义菜单项。</Value>
</Data>
</root>
3、创建Feature的描述文件LightUp.xml
文档的内容如下:
<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<!-- create command link site setting page -->
<CustomAction Id="SiteSettings" GroupId="Customization"
Location="Microsoft.SharePoint.SiteSettings"
Sequence="106"
Title="Custom Site Setting Command">
<UrlAction Url=""/>
</CustomAction>
<!-- Add command to site action dropdow -->
<CustomAction Id="SiteActionsToolbar"
GroupId="SiteActions"
Location="Microsoft.SharePoint.StandardMenu"
Sequence="1000"
Title="Custom Action"
Description="custom site action"
ImageUrl="/_layouts/images/ACG16.GIF">
<UrlAction Url=""/>
</CustomAction>
<!-- Document Library Toolbar New Menu DropDown -->
<CustomAction Id="DocLibNewToolbar"
RegistrationType="List"
RegistrationId="101"
GroupId="NewMenu"
Rights="ManagePermissions"
Location="Microsoft.SharePoint.StandardMenu"
Sequence="1000"
Title="Custom New Command"
Description="custom new command "
ImageUrl="/_layouts/images/ACG16.GIF">
<UrlAction Url=""/>
</CustomAction>
<!-- Document library Toolbar Actions Menu Dropdown -->
<CustomAction Id="DocLibActionsToolbar"
RegistrationType="List"
RegistrationId="101"
GroupId="ActionsMenu"
Rights="ManagePermissions"
Location="Microsoft.SharePoint.StandardMenu"
Sequence="1000"
Title="Command on Document Library"
Description=" command on document library"
ImageUrl="/_layouts/images/ACG16.GIF">
<UrlAction Url=""/>
</CustomAction>
</Elements>
4、重启IIS(iisreset)
5、在SharePoint服务器上运行CMD.exe,
输入命令切换目录:cd C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN
安装Feature输入命令:stsadm -o installfeature -filename MyMenu
激活Feature输入命令:stsadm -o activatefeature -filename MyMenu\feature.xml -url http://portal:8000/
疑问:在Feature.xml中,虽然把编码方式改为encoding="GB2312",但是使用汉字都不能识别出来,可是在LightUp.xml文件中虽然编
方式为encoding="UTF-8",但是使用汉字都能识别出来,感觉很奇怪。
实例3:使用Feature创建用户控件。
请看KaneBoy的 DelegateControl:SharePoint Server 2007内置的一个“用户控件包装器”
实例4:使用Feature创建自定义的文档库。
请看宋振乾的 如何在MOSS2007中创建一个定制的 Document Library Feature
Microsoft Office SharePoint Server 2007(简称MOSS2007)的母版页
MOSS2007中所有的页面都是由母版页(Master Pages)和内容页(Content Pages)组成, MOSS 2007中的Master Page和在ASP.net中使用的Master Page是一样的.它们定义了网站页面的基本布局. Page layout的概念类似于ASP.net 2.0中的Content Page,它指向一个Master Page并且实现Content Placeholders 的内容.下面是一篇介绍ASP.NET 2.0中母版页组成结构的很好的入门文章。
Master Your Site Design with Visual Inheritance and Page Templates
母版页允许多级嵌套,所有在sharepoint中的站点默认都使用default.master这个母版页。这个文件位于
C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\GLOBAL这个目录下。default.master母版页是全局母版页,任何对该页面的修改将影响所有的sharepoint站点,而且会影响管理中心站点。
sharepoint的母版页中定义了许多占位符(content placeholder)。这些占位符定义了页面的不同区域,开发人员可以定制占位符最
显示给用户的内容。SharePoint中定义的占位符中多数并不允许用户重写其内容。多数的sharepoint页面都包括了PlaceHolderMain这个占位符,它控制了页面的主要内容部分,典型情况下,该占位符将包括多个web部件区域,用来拖webpart进去。但对于开发人员来说,可以用来放置想要放的任何东西。
下面列出了sharepoint的母版页中定义的所有占位符:(详细位置请对照default.master)
1、<asp:ContentPlaceHolder ID="PlaceHolderGlobalNavigationSiteMap" runat="server" />
放置连接到顶级站点的超连接
2、<asp:ContentPlaceHolder ID="PlaceHolderGlobalNavigation" runat="server" />
放置顶部一行内容。
3、<asp:ContentPlaceHolder ID="PlaceHolderSiteName" runat="server" />
放置站点名称
4、<asp:ContentPlaceHolder ID="PlaceHolderSearchArea" runat="server" />
放置搜索框
5、<asp:ContentPlaceHolder ID="PlaceHolderHorizontalNav" runat="server" />
放置水平导航栏
6、<asp:ContentPlaceHolder ID="PlaceHolderTopNavBar" runat="server" />
放置水平导航栏一行内容。
7、<asp:ContentPlaceHolder ID="WSSDesignConsole" runat="server" />
页面编辑控件,当页面进入编辑页面模式时使用(当我们点 Site Actions, Edit Page后)
8、<asp:ContentPlaceHolder ID="SPNavigation" runat="server" />
在 Windows SharePoint Services中默认为空,用于附加的页面编辑控件
9、<asp:ContentPlaceHolder ID="PlaceHolderPageImage" runat="server" />
左侧的图片
10、<asp:ContentPlaceHolder ID="PlaceHolderTitleLeftBorder" runat="server" />
Title区左侧边框
11、<asp:ContentPlaceHolder ID="PlaceHolderTitleBreadcrumb" runat="server" />
TitleBreadcrumb页面导航区
12、<asp:ContentPlaceHolder ID="PlaceHolderPageTitleInTitleArea" runat="server" />
Breadcrumb区下面的标题
13、<asp:ContentPlaceHolder ID="PlaceHolderMiniConsole" runat="server" />
一个放置页面级命令的地方,比如在WIKI站点里的Edit Page, History, Incoming Links
14、<asp:ContentPlaceHolder ID="PlaceHolderTitleRightMargin" runat="server" />
Title区右侧空白
15、<asp:ContentPlaceHolder ID="PlaceHolderTitleAreaSeparator" runat="server" />
TitleAreaSeparator区
16、<asp:ContentPlaceHolder ID="PlaceHolderLeftNavBarDataSource" runat="server" />
左侧导航区数据源
17、<asp:ContentPlaceHolder ID="PlaceHolderCalendarNavigator" runat="server" />
在页面中有日历时为其显示一个日期选择框
18、<asp:ContentPlaceHolder ID="PlaceHolderLeftNavBarTop" runat="server" />
左侧导航区上面的导航区
19、<asp:ContentPlaceHolder ID="PlaceHolderLeftNavBar" runat="server" />
左侧导航区
20、<asp:ContentPlaceHolder ID="PlaceHolderLeftActions" runat="server" />
左侧导航区下面的动作区
21、<asp:ContentPlaceHolder ID="PlaceHolderNavSpacer" runat="server" />
左侧导航区的宽度
22、<asp:ContentPlaceHolder ID="PlaceHolderLeftNavBarBorder" runat="server" />
左侧导航区的边框元素
23、<asp:ContentPlaceHolder ID="PlaceHolderBodyLeftBorder" runat="server" />
页面body的边框元素
24、<asp:ContentPlaceHolder id="PlaceHolderPageDescription" runat="server" />
页面描述区
25、<asp:ContentPlaceHolder id="PlaceHolderMain" runat="server" />
页面主体
26、<asp:ContentPlaceHolder ID="PlaceHolderBodyRightMargin" runat="server" />
页面body的右边空白
27、<asp:ContentPlaceHolder ID="PlaceHolderFormDigest" runat="server"/>
这是页面中必备的 "form digest"安全组件。
28、<asp:ContentPlaceHolder ID="PlaceHolderUtilityContent" runat="server" />
页面底部需要的一块特殊内容
29、<asp:ContentPlaceHolder ID="PlaceHolderBodyAreaClass" runat="server" />
附加在页面顶部的body中的样式
30、<asp:ContentPlaceHolder ID="PlaceHolderTitleAreaClass" runat="server" />
TitleArea附加的样式
31、<asp:ContentPlaceHolder id="PlaceHolderAdditionalPageHead" runat="server" />
提供给内容页添加所有可以放在<head>区域的内容,如CSS、JS等。
Microsoft Office SharePoint Server 2007的CSS应用
CSS在SharePoint页面中的应用顺序
1、 CORE.CSS
2、
http://www.heathersolomon.com/blog/archive/2006/10/27/sp07cssoptions.aspx
对页面修改可以通过SharePoint Designer(简称SPD)打开整个站点进行修改,也可以使用其他一些文本编辑器直接对物理文件进行
改。
当我们打开一个Sharepoint页面时,Sharepoint将首先判断此页面(母版页和内容页)是否被破坏了结构(被SPD或其他工具修改过
被修改了部分将保存在Sharepoint的数据库中),如果是就从数据库中找到该页面的将其显示出来,如果没有,则从Sharepoint服务
的C:\Program Files\Common Files\Microsoft Shared\web server extensions\12目录中找到相应物理文件来显示页面,
default.master及defaultlayout.aspx介绍
附:其他相关内容连接。
创建一个精简的母版页
关于MOSS 2007的Content Types
关于MOSS 2007 and WSS 3.0 Master Page
如何在MOSS 2007 中将一个Document Library 增加到站点定义中
MOSS项目开发步骤
站点定义和站点模板