Добавление веб-страницы в пустое определение сайта SharePoint

StackOverflow https://stackoverflow.com/questions/1627756

  •  06-07-2019
  •  | 
  •  

Вопрос

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

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

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

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

Спасибо!

Это было полезно?

Решение

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

Для более подробного обсуждения различий между двумя типами возможностей и ограничений ознакомьтесь с Windows SharePoint Services SDK и просмотрите темы под названием «Тип страницы приложения _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>

Элементы.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 книга.В нем подробно рассматривается эта тема, включая важные аспекты безопасности страниц содержимого сайта.Это легко оправдывает покупную цену.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top