Добавление веб-страницы в пустое определение сайта sharepoint - PullRequest
1 голос
/ 27 октября 2009

Я совершенно новичок в Sharepoint (2007), поэтому, пожалуйста, потерпите меня. Я хотел бы автоматически создавать ASPX-страницы при создании нового сайта. Эти страницы будут связаны с помощью вкладок, которые будут определены главной страницей. У меня нет настраиваемого определения сайта, и я планировал применить сшивание элементов к пустому определению сайта.

Благодаря моим исследованиям, я думаю, вы можете создать страницу веб-части и превратить ее в функцию. Затем я могу прикрепить это к пустому определению сайта. Проблема в том, что я не нашел никакой информации о том, как это сделать. Итак, у меня есть два вопроса:

  1. Как создать функцию, которая является просто страницей aspx?
  2. Как мне прикрепить эту функцию к пустому определению сайта?

Я нашел одного человека, задающего тот же вопрос: Как добавить страницу веб-части в определение сайта? Я прочитал первый ответ, но он как бы идет мне на ум, и я не знаю, действительно ли он отвечает на мой вопрос.

Большое спасибо!

1 Ответ

6 голосов
/ 27 октября 2009

Ответ на ваш первый вопрос зависит от того, имеете ли вы в виду страницы приложения или страницы содержания . У каждого из них есть свои преимущества: страницы приложений хороши тем, что могут запускать пользовательский код на стороне сервера, а страницы контента хороши тем, что (например) они могут настраиваться пользователями, но по умолчанию ограничены тем, какой код может быть бежать.

Для довольно хорошего обсуждения различий между двумя типами возможностей и ограничений, ознакомьтесь с SDK для Windows SharePoint Services и посмотрите на темы, названные « Application _layouts тип страницы » и « Тип страницы содержимого . "

Что касается сшивания, это довольно просто и более гибко, чем добавление новых функций в файл определения сайта onet.xml. Эта статья кажется довольно хорошим обзором альтернатив. Возможно, вы захотите сделать копию пустого определения сайта, переименовать его, а затем использовать его в своей работе.

Функции со страницами содержимого

Для этого вам понадобятся три типа вещей:

  1. Файл feature.xml - просто шаблон, который ссылается на манифест элемента.
  2. Шаблон страницы - это может быть вся страница aspx, или это может быть (например) оболочка страницы веб-части с определением WebPartZones, но без реальных веб-частей (пока).
  3. Файл манифеста элемента, который ссылается на шаблоны вашей страницы и определяет любые веб-части, которые должны быть предоставлены как часть активации вашей функции.

Структура папок вашей функции будет выглядеть примерно так:

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>

Elements.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>

Page.aspx

<%@ Page MasterPageFile="~masterurl/default.master" 
    meta:progid="SharePoint.WebPartPage.Document"  %>
<asp:Content runat="server" ContentPlaceHolderID="PlaceHolderMain">
  Hello World
</asp:Content>

WebPartPage.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>

Если вы настроите свою функцию таким образом, вы сможете развернуть страницы содержимого сайта в этой структуре.

Кроме того, я настоятельно рекомендую книгу Теда Паттисона Inside Windows SharePoint Services . Он охватывает эту тему более подробно, включая важные аспекты безопасности страниц контента сайта. Это легко стоит покупной цены.

...