MOSS publishing功能:创建页面到子文件夹
生活随笔
收集整理的這篇文章主要介紹了
MOSS publishing功能:创建页面到子文件夹
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
MOSS的頁面發布功能,頁面始終保存到跟目錄下,如何使頁面創建到子文件夾下呢?
網上沒有找到相關的資料,只好改一下系統的代碼了。
publishing的系統頁面是: _layouts/CreatePage.aspx.
添加以下代碼到CreatePage.aspx:
<%@?Import?Namespace="Microsoft.SharePoint"?%>
<%@?Import?Namespace="Microsoft.SharePoint.Publishing"?%>
<script?runat="server">
string?_folderUrl?;
int?_layoutId?;
string?_pageName?;
?void???CreatePageToCurrentFolder(object?sender,?EventArgs?e)
{????
????_folderUrl?=?""?+?Request.QueryString["RootFolder"];????
????_layoutId?=?Convert.ToInt32(?dropdownList.SelectedValue?);????
????_pageName?=?this.urlNameTextBox.Text.Trim()?+?".aspx"?;????????
????CreatePage();
}
PageLayout?GetPageLayout(?PublishingWeb?publishingWeb?,?int?layoutId)
{
????PageLayout[]?layouts?=?publishingWeb.GetAvailablePageLayouts();?
????????
????foreach(?PageLayout?l?in?layouts?)
????{
???????if(?l.ListItem.ID?==?layoutId){
???????????return?l?;
????????}
????}????
????return?null??;
}
?void?CreatePage()
{???????????? ????????//bool?o?=?PublishingWeb.IsPublishingWeb(base.Web)?;????????
????????PublishingWeb?publishingWeb?=?PublishingWeb.GetPublishingWeb(base.Web);
????????PublishingSite?site?=?new?PublishingSite(base.Web.Site);?????????
????????//if?(publishingWeb.GetPublishingPages()["Pages/my1.aspx"]?==?null)????????
????????//Create?the?default?page????????//SPContentTypeId?contentTypeID?=?new?SPContentTypeId("0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF3900916CECA7C77446059633C4287903AA2A");
??????? //PageLayout[]?layouts?=?publishingWeb.GetAvailablePageLayouts();??????
????????//PageLayout?selectedPageLayout?=?layouts[0];??????? ????????
????????PageLayout?selectedPageLayout?=?GetPageLayout(?publishingWeb?,?_layoutId?)?;????????????????
????????string?fullPagePath?=?_pageName?;????????
????????if(?_folderUrl?!=?""?)
????????????fullPagePath?=?_folderUrl?+?"/"?+?_pageName?;
????????PublishingPage?newPage?=?publishingWeb.GetPublishingPages(1).Add(??fullPagePath??,?selectedPageLayout);??????????
???????//?newPage.Title?=?this.urlNameTextBox.Text.Trim()?;????????
?????????newPage.Update(); ???????
???????SPListItem?item?=??publishingWeb.PagesList.GetItemById(?newPage.ListItem.ID?);???????
????????item["Title"]?=?this.urlNameTextBox.Text.Trim()?;???
???????//?item["主題"]?=?this.urlNameTextBox.Text.Trim()?;???
????????item.Update();
????????//Set?the?default?page
????????SPFile?welcomeFile?=?base.Web.GetFile(newPage.Url);
????????//publishingWeb.DefaultPage?=?welcomeFile;?????
????????string?webUrl?=?publishingWeb.Url;
????????if?(!webUrl.EndsWith("/"))
????????????webUrl?+=?"/";
????????Page.Response.Redirect(webUrl?+?newPage.Url?+?"?ControlMode=Edit&DisplayMode=Design");
????????//publishingWeb.Update();????????
}
</script>
修改保存按鈕事件:
<asp:Button?runat="server"?class="ms-ButtonHeightWidth"?OnClick="CreatePageToCurrentFolder"
Text="<%$Resources:cms,?createpage_createbutton%>"?id="buttonCreatePage"?AccessKey="<%$Resources:cms,createbutton_accesskey%>"/>
網上沒有找到相關的資料,只好改一下系統的代碼了。
publishing的系統頁面是: _layouts/CreatePage.aspx.
添加以下代碼到CreatePage.aspx:
<%@?Import?Namespace="Microsoft.SharePoint"?%>
<%@?Import?Namespace="Microsoft.SharePoint.Publishing"?%>
<script?runat="server">
string?_folderUrl?;
int?_layoutId?;
string?_pageName?;
?void???CreatePageToCurrentFolder(object?sender,?EventArgs?e)
{????
????_folderUrl?=?""?+?Request.QueryString["RootFolder"];????
????_layoutId?=?Convert.ToInt32(?dropdownList.SelectedValue?);????
????_pageName?=?this.urlNameTextBox.Text.Trim()?+?".aspx"?;????????
????CreatePage();
}
PageLayout?GetPageLayout(?PublishingWeb?publishingWeb?,?int?layoutId)
{
????PageLayout[]?layouts?=?publishingWeb.GetAvailablePageLayouts();?
????????
????foreach(?PageLayout?l?in?layouts?)
????{
???????if(?l.ListItem.ID?==?layoutId){
???????????return?l?;
????????}
????}????
????return?null??;
}
?void?CreatePage()
{???????????? ????????//bool?o?=?PublishingWeb.IsPublishingWeb(base.Web)?;????????
????????PublishingWeb?publishingWeb?=?PublishingWeb.GetPublishingWeb(base.Web);
????????PublishingSite?site?=?new?PublishingSite(base.Web.Site);?????????
????????//if?(publishingWeb.GetPublishingPages()["Pages/my1.aspx"]?==?null)????????
????????//Create?the?default?page????????//SPContentTypeId?contentTypeID?=?new?SPContentTypeId("0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF3900916CECA7C77446059633C4287903AA2A");
??????? //PageLayout[]?layouts?=?publishingWeb.GetAvailablePageLayouts();??????
????????//PageLayout?selectedPageLayout?=?layouts[0];??????? ????????
????????PageLayout?selectedPageLayout?=?GetPageLayout(?publishingWeb?,?_layoutId?)?;????????????????
????????string?fullPagePath?=?_pageName?;????????
????????if(?_folderUrl?!=?""?)
????????????fullPagePath?=?_folderUrl?+?"/"?+?_pageName?;
????????PublishingPage?newPage?=?publishingWeb.GetPublishingPages(1).Add(??fullPagePath??,?selectedPageLayout);??????????
???????//?newPage.Title?=?this.urlNameTextBox.Text.Trim()?;????????
?????????newPage.Update(); ???????
???????SPListItem?item?=??publishingWeb.PagesList.GetItemById(?newPage.ListItem.ID?);???????
????????item["Title"]?=?this.urlNameTextBox.Text.Trim()?;???
???????//?item["主題"]?=?this.urlNameTextBox.Text.Trim()?;???
????????item.Update();
????????//Set?the?default?page
????????SPFile?welcomeFile?=?base.Web.GetFile(newPage.Url);
????????//publishingWeb.DefaultPage?=?welcomeFile;?????
????????string?webUrl?=?publishingWeb.Url;
????????if?(!webUrl.EndsWith("/"))
????????????webUrl?+=?"/";
????????Page.Response.Redirect(webUrl?+?newPage.Url?+?"?ControlMode=Edit&DisplayMode=Design");
????????//publishingWeb.Update();????????
}
</script>
修改保存按鈕事件:
<asp:Button?runat="server"?class="ms-ButtonHeightWidth"?OnClick="CreatePageToCurrentFolder"
Text="<%$Resources:cms,?createpage_createbutton%>"?id="buttonCreatePage"?AccessKey="<%$Resources:cms,createbutton_accesskey%>"/>
總結
以上是生活随笔為你收集整理的MOSS publishing功能:创建页面到子文件夹的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一寸、两寸证件照photoshop批处理
- 下一篇: 一步一步学Silverlight 2系列