SharePoint 2010 UI 定制化系列之母板页重温:页面类型
SharePoint Page Types –SharePoint 页面类型
SharePoint 2010
-
在微软SharePoint Foundation,主要有两种不同的页面类型,一种是网站页面,一种是应用程序页面。接下来要讨论的话题就是这两种页面类型的区别。应用程序页面和网站页面都是继承同一个母板页面的布局。
Master pages-母板页
在一个网站,母板页提供你想要的所有的,同样的界面感受,标准的行为。和内容页面一起,他们与母板页面结合,根据母板页面和内容页面的布局,产生页面输出。
因为Microsoft SharePoint Foundation 构建于Microsoft ASP.NET之上的,所以它提供了母板来定义元素,这在所有的页面都表现很明显。你可指定所有你要共享的元素在你的母板页面上,和添加页面特别的元素到你的内容页面中去。
Site Pages –网站页面
网站页面是终端用户创建,编辑,自定义的页面。它们是一个网站主要用于内容的页面。比如是在SharePoint 2010里面就有一个这样的对象,就是网站页面。网站页面主要有两种类型:标准页面和web parts 页面。一个标准的页面包含文字,图像,web parts,还有其他元素。一个web parts 页面包含web parts,这些web parts它们位于web part 区域。使用web part 区域有一个预先的布局。他们都可以在web 浏览器或者SharePioint Designer编辑。
网站页面提供的页面模板是存储在web服务器前端的文件系统。当一个网站建立后,Sharepoint Foundation 在文件系统创建一页面模板的实例。这样可以避免在网站每次在创建时,Sharpoint Foundation重复创建页面的拷贝。
当一个用户定制网站页面时,这个页面的模板存储在内容数据库中。当用户每次请求的时候,这个页面从内容数据库提取数据。通过web浏览器或者SharePoint Desinger工具,一个定制的页面可以恢复为原始的模板页面。
定制的网站页面不可以包含嵌套的服务器代码。这样的控制可以在web.config上的safe controls中去定义,它在<Drive>:\inetpub\wwwroot\wss\VirtualDirectories\<port number>\web.config去更改。当然,当你进行网站配置的时候,强烈建议避免服务器端的代码在网站页面上。
下面有一些在网站页面使用服务器端的基本的规则:
如果这个页面不是定制化的,服务器端的代码可以支持;
如果这个页面是定制化的,服务器端的代码不再运行,页面也不会呈现。这样它只包含自身的后台代码。
管理员可以添加PageParserPath设置到web.config文件,这样就可以允许服务器代码在指定的路径下的页面运行了。这样可以是在整个页面的目录下的一个单一的特定的页面中。
Security Note(安全提示)
添加这样的设置可以给予任何人上传页面到指定文件夹的权力,服务器完全信任代码。管理员必须保持高度注意,当提供这样的设置的时候,还有要明白安全方面的影响。
下面是一个简单的例子使用通配符,展现PageParserPath设置。添加这个标记,允许任何人可以有权限上传服务器代码到你的母板页面中。必须相当注意。
<SafeMode ...>
<PageParserPaths>
<PageParserPath VirtualPath="/_mpg/*" CompilationMode="Always" AllowServerSideScript="true" IncludeSubFolders="true"/>
</PageParserPaths>
Application Pages –应用程序页面
在SharePoint Foundation中应用页面被用于支持应用程序的实现。应用页面存储在前端的Web 服务器的文件系统。在目录:%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\LAYOUTS,并且存在于每个应用程序的每个网站中。这个文件夹映射到IIS的虚拟目录_layout中,每个网站和子网站都会通过这个虚拟目录来访问应用程序页面,比如说:http://myserver/_layouts/settings.aspx和http://myserver/subsite/_layouts/settings.aspx,访问同样的应用程序页面,它是在服务器前端访问的,不像Site Page。
应用程序页面和网站页面不同,不会像网站页面那样限制。允许服务器代码,没有限制。它们不可以使用动态的web parts 或者web区域,不能在sharepoint desinger修改。在sharepoint foundation中不支持你修改默认的应用程序页面。定制应用页面的话,可以添加放在_layout子目录里面。
先写到这,接下来,再谈Page and UI 的其他事情,有兴趣的朋友们多关注,你们的关注是我的动力。