Добавление веб-страницы в пустое определение сайта SharePoint
-
06-07-2019 - |
Вопрос
Я совершенно новичок в Sharepoint (2007), поэтому, пожалуйста, потерпите.Я хотел бы автоматически создавать страницы aspx при создании нового сайта.Эти страницы будут связаны через вкладки, которые будут определены главной страницей.У меня нет специального определения сайта, и я планировал применить сшивание функций к стандартному пустому определению сайта.
Я думаю, что благодаря моим исследованиям вы можете создать страницу веб-части и превратить ее в функцию.Затем я могу прикрепить это к пустому определению сайта.Проблема в том, что я не нашел никакой информации о том, как это сделать.Итак, у меня есть два вопроса:
- Как создать функцию, которая представляет собой просто страницу aspx?
- Как прикрепить эту функцию к пустому определению сайта?
Я нашел одного человека, задавшего тот же вопрос здесь: Как добавить страницу веб-части в определение сайта?Я прочитал первый ответ, но он как бы вылетел у меня из головы, и я не знаю, действительно ли он отвечает на мой вопрос.
Спасибо!
Решение
Ответ на ваш первый вопрос зависит от того, имеете ли вы в виду страницы приложения или страницы контента.У каждого из них есть свои преимущества:Страницы приложений хороши тем, что на них можно запускать собственный серверный код, а страницы контента хороши тем, что (например) они могут настраиваться пользователями, но по умолчанию ограничены в том, какой код может быть запущен.
Для более подробного обсуждения различий между двумя типами возможностей и ограничений ознакомьтесь с Windows SharePoint Services SDK и просмотрите темы под названием «Тип страницы приложения _layouts" и "Тип страницы контента."
Что касается сшивания, это довольно просто и более гибко, чем добавление новых функций в файл onet.xml определения сайта.Этот статья кажется довольно хорошим обзором альтернатив.Однако вы можете захотеть сделать копию пустого определения сайта, переименовать его, а затем использовать в своей работе.
Функции со страницами контента
Для этого вам понадобятся три типа вещей:
- Файл Feature.xml — это просто шаблон, который ссылается на манифест элемента.
- Шаблон страницы — это может быть вся страница aspx или (например) оболочка страницы веб-части с
WebPartZones
определены, но нет реальных веб-частей (пока). - Файл манифеста элемента, который ссылается на шаблоны ваших страниц и определяет любые веб-части, которые должны быть подготовлены в рамках активации вашей функции.
Структура папок вашего объекта будет выглядеть примерно так:
12
+-- TEMPLATES
+-- FEATURES
+-- YourFeature
+-- PageTemplates
| +-- Page.aspx (simple aspx page)
| +-- WebPartPage.aspx (still simple, but with WebPartZones)
+-- feature.xml
+-- elements.xml
Feature.xml:
<Feature
Id="CFF117BC-9685-4a7b-88D0-523D9DAD21F0"
Title="Custom Pages Feature"
Scope="Web"
xmlns="http://schemas.microsoft.com/sharepoint/">
<ElementManifests>
<ElementManifest Location="elements.xml"/>
</ElementManifests>
</Feature>
Элементы.xml
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Module Path="PageTemplates" Url="Pages" >
<File Url="Page.aspx" Type="Ghostable" />
<File Url="WebPartPage.aspx" Name="WebPartPage.aspx" Type="Ghostable" >
<AllUsersWebPart WebPartZoneID="Left" WebPartOrder="0">
<![CDATA[
<WebPart xmlns="http://schemas.microsoft.com/WebPart/v2"
xmlns:cewp="http://schemas.microsoft.com/WebPart/v2/ContentEditor">
<Assembly>Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c</Assembly>
<TypeName>Microsoft.SharePoint.WebPartPages.ContentEditorWebPart</TypeName>
<Title>Some content that you want to provision with the feature</Title>
<FrameType>TitleBarOnly</FrameType>
<cewp:Content>
Hello world.
</cewp:Content>
</WebPart>
]]>
</AllUsersWebPart>
</File>
</Module>
</Elements>
Страница.aspx
<%@ Page MasterPageFile="~masterurl/default.master"
meta:progid="SharePoint.WebPartPage.Document" %>
<asp:Content runat="server" ContentPlaceHolderID="PlaceHolderMain">
Hello World
</asp:Content>
Вебпартпаже.aspx
<%@ Page Language="C#" MasterPageFile="~masterurl/default.master" Inherits="Microsoft.SharePoint.WebPartPages.WebPartPage,Microsoft.SharePoint,Version=12.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c" meta:progid="SharePoint.WebPartPage.Document" %>
<%@ Register Tagprefix="WebPartPages"
Namespace="Microsoft.SharePoint.WebPartPages"
Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<asp:Content ID="main" runat="server" ContentPlaceHolderID="PlaceHolderMain" >
<table width="100%">
<tr>
<td valign="top" style="width:50%">
<WebPartPages:WebPartZone ID="Left" runat="server"
FrameType="TitleBarOnly" Title="Left Web Part Zone" />
</td>
<td valign="top" style="width:50%">
<WebPartPages:WebPartZone ID="Right" runat="server"
FrameType="TitleBarOnly" Title="Right Web Part Zone" />
</td>
</tr>
</table>
</asp:Content>
Если вы настроите свою функцию таким образом, вы сможете развертывать страницы содержимого сайта в этой структуре.
Также я очень рекомендую Теда Паттисона. Внутри служб Windows SharePoint книга.В нем подробно рассматривается эта тема, включая важные аспекты безопасности страниц содержимого сайта.Это легко оправдывает покупную цену.