Зона веб-части пользовательского макета страницы сайта публикации Sharepoint 2010 - PullRequest
2 голосов
/ 13 декабря 2010

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

<WebPartPages:WebPartZone id="zone1" runat="server" title="Zone 1">
<ZoneTemplate>
<Something:LookingForLinks runat="server" id="wp_lookingForLinks"/>
</ZoneTemplate>
</WebPartPages:WebPartZone>

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

Ответы [ 3 ]

7 голосов
/ 13 января 2011

Вы также можете развернуть макеты страниц как отдельную функцию, а не создавать полное определение сайта.Таким образом, вы можете развернуть макеты страниц на любом сайте публикации SharePoint.Если вы используете VS 2010, начните с проекта модуля SharePoint.Добавьте свой макет aspx файл в проект.Измените файл elements.xml, чтобы он выглядел следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Module Name="Page Layouts" Url="_catalogs/masterpage" RootWebOnly="True">
    <File Path="Page Layouts\Layout1.aspx" Url="Layout1.aspx" Type="GhostableInLibrary" IgnoreIfAlreadyExists="True">
      <Property Name="Title" Value="My Layout 1" />
      <Property Name="ContentType" Value="$Resources:cmscore,contenttype_pagelayout_name;" />
    </File>
   </Module>
</Elements>

Это развернет ваш макет и сделает его доступным, как для новых страниц публикации.Теперь, чтобы создать экземпляр веб-части на новых страницах, измените элемент <File> с определением веб-части.Например, я мог бы определить веб-часть редактора контента, которая будет создаваться на новых страницах в Zone1, следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Module Name="Page Layouts" Url="_catalogs/masterpage" RootWebOnly="True">
    <File Path="Page Layouts\Layout1.aspx" Url="Layout1.aspx" Type="GhostableInLibrary" IgnoreIfAlreadyExists="True">
      <Property Name="Title" Value="My Layout 1" />
      <Property Name="ContentType" Value="$Resources:cmscore,contenttype_pagelayout_name;" />
      <AllUsersWebPart WebPartZoneID="Zone1" WebPartOrder="1">
        <![CDATA[ 
               <WebPart xmlns="http://schemas.microsoft.com/WebPart/v2">
                <Assembly>Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c</Assembly>
                <TypeName>Microsoft.SharePoint.WebPartPages.ContentEditorWebPart</TypeName>
                <Title>Content Editor</Title>
                <FrameType>Default</FrameType>
                <FrameState>Normal</FrameState>
                <Description></Description>
                <Height />
                <Width />
                <AllowRemove>true</AllowRemove>
                <AllowZoneChange>true</AllowZoneChange>
                <AllowMinimize>true</AllowMinimize>
                <AllowConnect>true</AllowConnect>
                <AllowEdit>true</AllowEdit>
                <AllowHide>true</AllowHide>
                <IsVisible>true</IsVisible>
                <DetailLink />
                <HelpLink />
                <HelpMode>Modeless</HelpMode>
                <Dir>Default</Dir>
                <PartImageSmall />
                <MissingAssembly>Cannot import this Web Part.</MissingAssembly>
                <PartImageLarge>/_layouts/images/homepage.gif</PartImageLarge>
                <IsIncludedFilter />
                <ExportControlledProperties>true</ExportControlledProperties>
                <ContentLink xmlns="http://schemas.microsoft.com/WebPart/v2/ContentEditor" />
                <Content xmlns="http://schemas.microsoft.com/WebPart/v2/ContentEditor">
                </Content>
                <PartStorage xmlns="http://schemas.microsoft.com/WebPart/v2/ContentEditor" />
                </WebPart>        
        ]]>
      </AllUsersWebPart>
    </File>
  </Module>
</Elements>

Это должно быть более практичным, чем создание полностью нового определения сайта.Надеюсь, это поможет.

2 голосов
/ 01 декабря 2011

Если вы развернете эти макеты страниц с помощью функции SharePoint, а также активируете и деактивируете функцию несколько раз, веб-часть будет отображаться на странице столько раз, сколько вы повторно активируете функцию.Похоже, что у SharePoint нет простого способа разместить на странице только один экземпляр веб-части

1 голос
/ 13 декабря 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...