WSS3SDK之:如何通过重定向来定制Mobile主页

认情况下,WSS在网站中使用一种上下交错的重定向机制。Mobile主页是在传统的URL后面多了一个"m"文件夹(比如,http(S)://Server/sites/Site/m/ )用来重定向请求至mobile的default.aspx页。然后该default.aspx页会将用户重定向到实际的主页。根据目前站点定义的类型,会依次进行下列处理:
  1. default.aspx中仅放置了一个控件,他告诉运行时寻找名为"MobileHomePageRedirect"的RenderingTemplate。
  2. 运 行时会搜索所有位于Local_Drive:/Programe Files/Common Files/Microsoft Shared/web server extensions/12/TEMPLATE/CONTROLTEMPLATES下的*.ascx文件,通过RenderingTemplate找到该 名称。最终会在MobileDefaultTemplates.ascx文件中找到一个。
  3. MobileHomePageRedirect控件的Template属性将运行时指向一个SPMobileWebUrlRedirect类的对象。
  4. SPMobileWebUrlRedirect 对象用Mobile_SiteTypeID_HomePage_Redirect的方式构建了另一个RenderingTemplate的名称,其中 SiteTypeID是WSS站点定义的名称,比如STS,或一个自定义站点定义的ID号,比如10001。(要查找有关mobile网站重定向的更多信 息,可以参考SPMobileWebUrlRedirect中的备注节)
  5. 通过第二个RederingTemplate,运行时再次搜索 .../12/TEMPLATE/CONTROLTEMPLATES下的所有*.ascs文件。
    • 如 果SiteTypeID为BLOG,运行时将从MobileDefaultTemplate.ascx中找到 Mobile_BLOG_HomePage_Redirect RenderingTemplate。该控件的Template属性将运行时指向一个SPMobileUrlRedirection类的对象,该对象的 PageFileName属性指定了bloghome.aspx为最终的主页。
    • 如 果SiteTypeID不是BLOG,且没有创建自定义的.ascx文件,运行时将使用MobileDefaultTemplate.ascx中的 Mobile_Default_HomePage_Redirect RenderingTemplate。该控件的Template属性将运行时指向一个SPMobileUrlRedirect类的对象,其 PageFileName属性指定mbllists.aspx为最终的主页。

您可以创建一个自定义控件来将用户重定向到您预先设计好的mobile主页。

步骤:
  1. 创建一个自定义的mobile主页;比如,MyHome.aspx。
  2. 将新主页放置在下列目录中:
    Local_Drive:/Programe Files/Common Files/Microsoft Shared/web server extensions/12/TEMPLATE/LAYOUTS/MOBILE
  3. 创建一个自定义控件模板文件。比如,MyMobileControlTemplate.ascx(内容参考下面的例子)
  4. 将新控件模板放置在下面的目录:
    Local_Drive:/Program Files/Common Files/Microsoft Shared/web server extensions/12/TEMPLATE/CONTROLTEMPLATES
  5. 重启IIS,然后浏览网站看看定制的效果。

注意
如果您是在电脑上用mobile设备模拟器,而不是实际的mobile设备,您可能还需要在每次修改好后删除internet临时文件来保证看到的是页面的新版本。

例子

下面的例子展示了一个自定义.ascx文件的内容(比如,MyMobileControlTemplate.ascx)其中定义了一个控件模板。当 mobile设备访问一个使用"MySiteType"站点定义的网站时,运行时将被导向到主页MyHome.aspx。注意该定制文件的下面几点内容:

  • 所有带“%@”标记的语句都是公式化的套话,在所有的定制页面中都是如此。
  • “MySiteType”可以是:
    • 工作组站点定义的名称:“STS”。MPS,CENTRALADMIN,和WIKI站点定义不支持通过mobile设备来访问。BLOG站点定义可以通过mobile设备来访问,但是已经有一个名为Mobile_BLOG_HomePage_RedirectRenderingTemplate,定义在MobileDefaultTemplates.ascx文件中。您不可以修改该文件。您可以在自定义的.ascx文件中创建第二个RenderingTemplate也命名为Mobile_BLOG_HomePage_Redirect,但是这样会有破坏现有其他基于已有Mobile_BLOG_HomePage_Redirect 的定制或第三方解决方案的风险。
      注意:
      WSS内置的RenderingTemplate会先加载,所以当相同名称的自定义模板加载时会覆盖标准的渲染模板。如果两个或更多的自定义 RenderingTemplate具有相同的名称,则按文件名的字母顺序排在最后的将会覆盖其他的。给定文件中包含两个或更多的同名模板的,这些模板都 不会被加载。
      注意
      网站定义的名称是在WebTemp.xml文件的Template元素的Name属性中设定的。
    • 任何已创建的自定义网站定义的ID号(不是Name)
      注意
      网站定义的ID号是在WebTemp.xm文件的Template元素的ID属性中设定的。

重要提醒

在站点定义文件Onet.xml中站点定义配置的Configuration元素必须具有一个WebFeature元素,并且该元素必须包含到以下这个Feature元素的重定向:

<Feature ID="F41CC668-37E5-4743-B4A8-74D1DB3FD8A4" />(注:这是继承自STS网站定义的标志)。

C#

<% @ Control Language = " C# "   %>
<% @ Assembly Name = " Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c "   %>
<% @ Register TagPrefix = " mobile "  Namespace = " System.Web.UI.MobileControls "  Assembly = " System.Web.Mobile, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a "   %>
<% @ Register TagPrefix = " SharePoint "  Namespace = " Microsoft.SharePoint.WebControls "  Assembly = " Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c "   %>
<% @ Register TagPrefix = " SPMobile "  Namespace = " Microsoft.SharePoint.MobileControls "  Assembly = " Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c "   %>

< SharePoint:RenderingTemplate RunAt = " Server "  ID = " Mobile_MySiteType_HomePage_Redirect " >
  
< Template >
    
< SPMobile:SPMobileUrlRedirection RunAt = " Server "  PageFileName = " MyHome.aspx "   />
  
</ Template >
</ SharePoint:RenderingTemplate >

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值