65.9K
CodeProject 正在变化。 阅读更多。
Home

在 SharePoint 2013 中使用内容类型逐步创建新闻页面布局

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.91/5 (10投票s)

2014 年 9 月 20 日

CPOL

3分钟阅读

viewsIcon

77377

downloadIcon

499

在 SharePoint 2013 中使用内容类型逐步创建新闻页面布局

引言

有时,我们需要为新闻或事件或类似的东西创建子站点。 我们将逐步解释如何操作,并且在接下来的系列中,我们将继续将此页面布局作为发布子站点的默认页面布局。 之后,我们将在根站点中创建一个内容查询来预览新闻文章。 最后,我们将使用变体来创建其他语言的类似发布子站点。

注意:我们将尽快添加下载的解决方案。您可以关注我们以了解任何新内容。

  1. 在 SharePoint 2013 中使用内容类型逐步创建新闻页面布局。
  2. 如何为新闻创建一个发布子站点,并使用变体创建相同站点的其他语言版本,最后使之前的页面布局作为子站点的默认页面布局。

让我们开始吧…

首先

  1. 打开 Visual Studio 2013 并创建一个类型为 SharePoint Solutions 的新项目...“SharePoint 2013 空白项目”。

    创建新的 SharePoint 2013 空白项目
  2. 因为我们将在本地计算机上的本地服务器中将我们的解决方案部署为服务器场解决方案。
    注意:确保该站点是一个发布站点才能继续。

    将 SharePoint 站点部署为服务器场解决方案
  3. 我们的解决方案将如下图所示,我们将为 “SiteColumns”、“ContentTypes” 和 “PageLayouts” 添加三个文件夹。

    SharePoint 解决方案项目
  4. 首先,向 “SiteColumns” 文件夹添加一个新项目。

    向 SharePoint 解决方案添加新项目
  5. 在我们添加一个新的站点列并重命名它之后,添加以下列,因为我们需要创建新闻布局:NewsTitleNewsBodyNewsBriefNewsDateNewsImage

    向解决方案添加站点列类型的新项目

    然后添加以下字段,您会注意到我在 DisplayNameGroup 中使用 Resources

     <Field
     ID="{9fd593c1-75d6-4c23-8ce1-4e5de0d97545}"
     Name="NewsTitle"
     DisplayName="$Resources:SPWorld_News,NewsTitle;"
     Type="Text"
     Required="TRUE"
     Group="$Resources:SPWorld_News,NewsGroup;">
     </Field>
     <Field
     ID="{fcd9f32e-e2e0-4d00-8793-cfd2abf8ef4d}"
     Name="NewsBrief"
     DisplayName="$Resources:SPWorld_News,NewsBrief;"
     Type="Note"
     Required="FALSE"
     Group="$Resources:SPWorld_News,NewsGroup;">
     </Field>
     <Field
     ID="{FF268335-35E7-4306-B60F-E3666E5DDC07}"
     Name="NewsBody"
     DisplayName="$Resources:SPWorld_News,NewsBody;"
     Type="HTML"
     Required="TRUE"
     RichText="TRUE"
     RichTextMode="FullHtml"
     Group="$Resources:SPWorld_News,NewsGroup;">
     </Field>
     <Field
     ID="{FCA0BBA0-870C-4D42-A34A-41A69749F963}"
     Name="NewsDate"
     DisplayName="$Resources:SPWorld_News,NewsDate;"
     Type="DateTime"
     Required="TRUE"
     Group="$Resources:SPWorld_News,NewsGroup;">
     </Field>
     <Field
     ID="{8218A8D9-912C-47E7-AAD2-12AA10B42BE3}"
     Name="NewsImage"
     DisplayName="$Resources:SPWorld_News,NewsImage;"
     Required="FALSE"
     Type="Image"
     RichText="TRUE"
     RichTextMode="ThemeHtml"
     Group="$Resources:SPWorld_News,NewsGroup;">
     </Field>

    之后

  6. 创建内容类型,我们将向文件夹 *ContentTypes* 添加新的内容类型。

    向 SharePoint 解决方案添加内容类型类型的新项目
  7. 我们必须确保选择内容类型的基本类型 “Page”。

    指定内容类型的基本类型
  8. 打开内容类型并将我们的新列添加到其中。

    将列添加到内容类型
  9. 打开内容类型的 elements 文件,并确保它看起来像下面的代码。

    注意:我们在内容类型的 NameDescription 和组中使用 Resources

    <!-- Parent ContentType:
    Page (0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF39) -->
     <ContentType
     ID="0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF39007A5224C9C2804A46B028C4F78283A2CB"
     Name="$Resources:SPWorld_News,NewsContentType;"
     Group="$Resources:SPWorld_News,NewsGroup;"
     Description="$Resources:SPWorld_News,NewsContentTypeDesc;"
     Inherits="TRUE" Version="0">
     <FieldRefs>
     <FieldRef ID="{9fd593c1-75d6-4c23-8ce1-4e5de0d97545}"
     DisplayName="$Resources:SPWorld_News,NewsTitle;" Required="TRUE" Name="NewsTitle" />
     <FieldRef ID="{fcd9f32e-e2e0-4d00-8793-cfd2abf8ef4d}"
     DisplayName="$Resources:SPWorld_News,NewsBrief;" Required="FALSE" Name="NewsBrief" />
     <FieldRef ID="{FF268335-35E7-4306-B60F-E3666E5DDC07}"
     DisplayName="$Resources:SPWorld_News,NewsBody;" Required="TRUE" Name="NewsBody" />
     <FieldRef ID="{FCA0BBA0-870C-4D42-A34A-41A69749F963}"
     DisplayName="$Resources:SPWorld_News,NewsDate;" Required="TRUE" Name="NewsDate" />
     <FieldRef ID="{8218A8D9-912C-47E7-AAD2-12AA10B42BE3}"
     DisplayName="$Resources:SPWorld_News,NewsImage;" Required="FALSE" Name="NewsImage" />
     </FieldRefs>
     </ContentType>
  10. 将新模块添加到 *PageLayouts* 文件夹。 之后,我们将找到 sample.txt 文件,然后将其重命名为 “NewsPageLayout.aspx”。

    向 SharePoint 解决方案添加新模块。
  11. 将下面的代码添加到此 “NewsPageLayout.aspx”。
     <%@ Page language="C#" Inherits="Microsoft.SharePoint.Publishing.PublishingLayoutPage,
    Microsoft.SharePoint.Publishing,Version=15.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c" %>
     <%@ Register Tagprefix="SharePointWebControls" Namespace="Microsoft.SharePoint.WebControls"
     Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
     <%@ Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages"
     Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
     <%@ Register Tagprefix="PublishingWebControls" Namespace="Microsoft.SharePoint.Publishing.WebControls"
     Assembly="Microsoft.SharePoint.Publishing, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
     <%@ Register Tagprefix="PublishingNavigation" Namespace="Microsoft.SharePoint.Publishing.Navigation"
     Assembly="Microsoft.SharePoint.Publishing, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
    
     <asp:Content ContentPlaceholderID="PlaceHolderPageTitle" runat="server">
     <SharePointWebControls:FieldValue id="FieldValue1" FieldName="Title" runat="server"/>
     </asp:Content>
     <asp:Content ContentPlaceholderID="PlaceHolderMain" runat="server">
    
     <H1><SharePointWebControls:TextField ID="NewsTitle"
     FieldName="9fd593c1-75d6-4c23-8ce1-4e5de0d97545" runat="server">
     </SharePointWebControls:TextField></H1>
     <p><PublishingWebControls:RichHtmlField ID="NewsBody"
     FieldName="FF268335-35E7-4306-B60F-E3666E5DDC07" runat="server">
     </PublishingWebControls:RichHtmlField></p>
     <p><SharePointWebControls:NoteField ID="NewsBrief"
     FieldName="fcd9f32e-e2e0-4d00-8793-cfd2abf8ef4d" runat="server">
     </SharePointWebControls:NoteField></p>
     <p><SharePointWebControls:DateTimeField ID="NewsDate"
     FieldName="FCA0BBA0-870C-4D42-A34A-41A69749F963" runat="server">
     </SharePointWebControls:DateTimeField></p>
     <p><PublishingWebControls:RichImageField ID="NewsImage"
     FieldName="8218A8D9-912C-47E7-AAD2-12AA10B42BE3" runat="server">
     </PublishingWebControls:RichImageField></p>
    
     </asp:Content>
  12. 将以下代码添加到 “NewsPageLayouts” 模块的 elements 文件中。
     <Module Name="NewsPageLayout" 
    Url="_catalogs/masterpage" List="116" >
     <File Path="NewsPageLayout\NewsPageLayout.aspx" Url="NewsPageLayout.aspx"
     Type="GhostableInLibrary" IgnoreIfAlreadyExists="TRUE" 
     ReplaceContent="TRUE" Level="Published" >
     <Property Name="Title" Value="$Resources:SPWorld_News,NewsPageLayout;" />
     <Property Name="MasterPageDescription" Value="$Resources:SPWorld_News,NewsPageLayout;" />
     <Property Name="ContentType" Value="$Resources:cmscore,contenttype_pagelayout_name;" />
     <Property Name="PublishingPreviewImage"
     Value="~SiteCollection/_catalogs/masterpage/$Resources:core,Culture;
     /Preview Images/WelcomeSplash.png, ~SiteCollection/_catalogs/masterpage/$Resources:
     core,Culture;/Preview Images/WelcomeSplash.png" />
     <Property Name="PublishingAssociatedContentType"
     Value=";#$Resources:SPWorld_News,NewsContentType;;
     #0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF39007A5224C9C2804A46B028C4F78283A2CB;#">
     </Property>
     </File>
     </Module>
  13. 不要忘记添加 Resources 文件夹,然后添加名称为 “SPWorld_News.resx” 的资源文件,因为我们在之前的步骤中使用了它,并将以下键添加到其中。
    News                     News
    NewsBody                 News Body
    NewsBrief                News Brief
    NewsContentType          News Content Type
    NewsContentTypeDesc      News Content Type Desc.
    NewsDate                 News Date
    NewsGroup                News
    NewsImage                News Image
    NewsPageLayout           News Page Layout
    NewsTitle                News Title
  14. 最后,部署解决方案。
  15. 接下来的步骤将解释我们如何通过 SharePoint 向导将“新闻内容类型”添加到页面布局。 我们将在下一篇文章中以编程方式执行这些步骤。

    注意:我们将在下一篇文章中以编程方式执行从 “A” 到 “D” 的步骤,而无需从 SharePoint 手动执行。

    1. 转到站点内容,然后转到页面、库、库设置打开页面库的库设置
    2. 将新闻内容类型添加到页面布局。

      将现有内容类型添加到页面库
    3. 那么

      选择内容类型以将其添加到页面库
    4. 转到页面库,文件,新建文档,选择新闻内容类型。

      向页面库添加新闻内容类型的新文档
    5. 写下页面标题。

      向页面库创建新闻内容类型的新页面。
    6. 打开页面进行编辑。 页面库包含新闻内容类型的新页面。

    7. 现在,在添加标题、正文、简介、日期和图像后,我们可以看到页面布局。 最后,单击“保存新闻”。

© . All rights reserved.