首页 > 移动平台 > 详细

SharePoint2013 Set a custom application page as site welcome page

时间:2016-12-29 11:13:00      阅读:347      评论:0      收藏:0      [点我收藏+]

本文主要介绍如何添加一个custom application page as site welcome page

1、首先创建一个sharepoint 2013 empty solution, add a custom application page(farm only)named MyHomePage.

2、自定义这个MyHomePage,显示所需信息,包括后台代码的编辑。

3、更改MyHomePage.aspx页面首页<%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %>为具体的assmebly info,例:

<%@ Assembly Name="MyHomePage, Version=1.0.0.0, Culture=neutral, PublicKeyToken=77a2aedaefb0d45b" %>

4、右键solution,添加一个module,named:HomePage, 替换module 下sample.txt为MyHomePage.aspx,同时修改里面的<%@ Page %>,

<%@ Page Language="C#" AutoEventWireup="true" Inherits="MyHomePage.Layouts.MyHomePage.MyHomePage" MasterPageFile="../_catalogs/masterpage/seattle.master" %>

指定具体的master file,不能DynamicMasterPageFile="~masterurl/default.master" ,同时去掉CodeBehind 标签,原因是copy这个页面没有后台。

module code:

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Module Name="HomePage" Url="Pages" >
    <File Path="HomePage\MyHome.aspx" Type="GhostableInLibrary" Url="MyHome.aspx" IgnoreIfAlreadyExists="FALSE" ReplaceContent="TRUE">
      <Property Name="PublishingPageLayout" Value="~SiteCollection/_catalogs/masterpage/BlankWebPartPage.aspx, Blank Web Part page" />
    </File>
  </Module>
</Elements>

说明:Module name:HomePage,Url为Pages,Pages 是site 开启publishing feature之后sharepoint自动添加的一个page library,主要用于manage home or error SharePoint default pages.

       重点需要说明的是<Property Name="PublishingPageLayout" Value="~SiteCollection/_catalogs/masterpage/BlankWebPartPage.aspx, Blank Web Part page" />这个property的作用是为这个MyHome.aspx页添加了一个PageLayout,

     方便以后对这个homepage的添加与修改。

 

5、添加module的时候会默认在solution中add a feature,右键feature,添加feature EventReceiver,设置feature scope为site, 编辑FeatureActivated和FeatureDeactiving

FeatureActivated code:

 public override void FeatureActivated(SPFeatureReceiverProperties properties)
        {
            SPSecurity.RunWithElevatedPrivileges(() =>
            {
                SPSite site = properties.Feature.Parent as SPSite;
                using (site)
                {
                    SPWeb web = site.RootWeb;
                    web.AllowUnsafeUpdates = true;
                    if (PublishingWeb.IsPublishingWeb(web))
                    {
                        PublishingWeb pWeb = PublishingWeb.GetPublishingWeb(web);
                        SPFile file = web.GetFile(web.ServerRelativeUrl + "/Pages/MyHome.aspx");
                        pWeb.DefaultPage = file;
                        pWeb.Update();
                    }
                    else
                    {
                        web.RootFolder.WelcomePage = "Pages/MyHome.aspx";
                        web.RootFolder.Update();
                        web.Update();
                    }
                    web.AllowUnsafeUpdates = false;
                }
            });
        }

注意:set welcome page的时候,需要check 当前的site是否开启了publishing feature,具体情况如上面代码所示。

FeatureDeactiving code:

 public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
        {
            SPSecurity.RunWithElevatedPrivileges(() =>
            {
                SPSite site = properties.Feature.Parent as SPSite;
                using (site)
                {
                    SPWeb web = site.RootWeb;
                    web.AllowUnsafeUpdates = true;
                    if (PublishingWeb.IsPublishingWeb(web))
                    {
                        PublishingWeb pWeb = PublishingWeb.GetPublishingWeb(web);
                        SPFile file = web.GetFile(web.ServerRelativeUrl + "/Pages/Home.aspx");
                        pWeb.DefaultPage = file;
                        pWeb.Update();
                    }
                    else
                    {
                        web.RootFolder.WelcomePage = "Pages/Home.aspx";
                        web.RootFolder.Update();
                        web.Update();
                    }
                    web.AllowUnsafeUpdates = false;
                }
            });
        }

注意:deactive feature需要将site homepage设置成default page。

6、OK,一个完整set SharePoint homePage 的应用completly。

SharePoint2013 Set a custom application page as site welcome page

原文:http://www.cnblogs.com/qindy/p/6231869.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!