SharePoint 2013无法编辑“内容编辑器”代码段

时间:2013-03-15 15:27:28

标签: sharepoint-2013 web-parts code-snippets content-editor

在SharePoint 2013中,可以使用新的Design Manager创建母版页和页面布局。将HTML文件转换为母版页后,或者在创建新的页面布局后,可以使用Snippet Manager添加SharePoint功能。我已经使用这种方法将静态HTML / CSS文件转换为带有页面布局的SharePoint母版页。除了“内容编辑器”代码段之外,我还可以使用代码段管理器中的所有代码段。我能够添加顶部导航,快速启动栏,页面属性甚至“Web部件区域”片段。

用例:
我想要一个可编辑的页脚。页脚由四部分组成,因此我通过将代码段代码粘贴到HTML母版页中添加了四个内容编辑器代码段。生成代码段时,可以设置自定义属性。我注意到在这里设置WebPartID是不可能的。在代码段中,始终使用以下WebPartID:00000000-0000-0000-0000-000000000000。然而,“Web部件区域”片段将生成(随机?)WebPartID(并且可以工作)。

问题:
添加代码段工作正常,但是当我发布母版页或页面布局时,无法编辑CEWP。当我编辑使用母版页或页面布局的页面时,CEWP应该转换为可编辑区域,但它不会。没有显示错误。 webpart正确呈现自己。

我尝试了什么:
我尝试填写一个随机的WebPartID,但这不起作用。在Google和StackOverflow上搜索没有给我任何线索,我找不到任何人面临同样的问题。

代码:
生成以下代码段:

<!--CS: Start Content Editor Snippet--><!--SPM:<%@Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"%>--><!--MS:<WebPartPages:ContentEditorWebPart xmlns:WebPartPages="namespace" runat="server" webpart="true">--><!--PS: Start of READ-ONLY PREVIEW (do not modify)--><div class="ms-webpart-chrome ms-webpart-chrome-fullWidth "><div WebPartID="00000000-0000-0000-0000-000000000000" HasPers="true" id="WebPart" width="100%" class="ms-WPBody noindex " OnlyForMePart="true" allowMinimize="false" allowRemove="false" allowDelete="false" style=""><div class="ms-rtestate-field"></div><div class="ms-clear"></div></div></div><!--PE: End of READ-ONLY PREVIEW--><!--MS:<WebPart xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/WebPart/v2">--><!--MS:<Title>--><!--SPM:$Resources:core,ContentEditorWebPartTitle;--><!--ME:</Title>--><!--MS:<FrameType>--><!--SPM:None--><!--ME:</FrameType>--><!--MS:<Description>--><!--SPM:$Resources:core,ContentEditorWebPartDescription;--><!--ME:</Description>--><!--MS:<IsIncluded>--><!--SPM:true--><!--ME:</IsIncluded>--><!--MS:<ZoneID>--><!--SPM:ImportedPartZone--><!--ME:</ZoneID>--><!--MS:<PartOrder>--><!--SPM:0--><!--ME:</PartOrder>--><!--MS:<FrameState>--><!--SPM:Normal--><!--ME:</FrameState>--><!--MS:<Height>--><!--ME:</Height>--><!--MS:<Width>--><!--ME:</Width>--><!--MS:<AllowRemove>--><!--SPM:false--><!--ME:</AllowRemove>--><!--MS:<AllowZoneChange>--><!--SPM:false--><!--ME:</AllowZoneChange>--><!--MS:<AllowMinimize>--><!--SPM:false--><!--ME:</AllowMinimize>--><!--MS:<AllowConnect>--><!--SPM:true--><!--ME:</AllowConnect>--><!--MS:<AllowEdit>--><!--SPM:true--><!--ME:</AllowEdit>--><!--MS:<AllowHide>--><!--SPM:false--><!--ME:</AllowHide>--><!--MS:<IsVisible>--><!--SPM:true--><!--ME:</IsVisible>--><!--MS:<DetailLink>--><!--ME:</DetailLink>--><!--MS:<HelpLink>--><!--ME:</HelpLink>--><!--MS:<HelpMode>--><!--SPM:Modeless--><!--ME:</HelpMode>--><!--MS:<Dir>--><!--SPM:Default--><!--ME:</Dir>--><!--MS:<PartImageSmall>--><!--ME:</PartImageSmall>--><!--MS:<MissingAssembly>--><!--SPM:Cannot import this Web Part.--><!--ME:</MissingAssembly>--><!--MS:<PartImageLarge>--><!--SPM:/_layouts/15/images/mscontl.gif--><!--ME:</PartImageLarge>--><!--MS:<IsIncludedFilter>--><!--ME:</IsIncludedFilter>--><!--MS:<ExportControlledProperties>--><!--SPM:true--><!--ME:</ExportControlledProperties>--><!--MS:<ConnectionID>--><!--SPM:00000000-0000-0000-0000-000000000000--><!--ME:</ConnectionID>--><!--MS:<ID>--><!--SPM:g_2bfa6a66_54d1_45e6_84e7_ebbb461f2911--><!--ME:</ID>--><!--MS:<ContentLink xmlns="http://schemas.microsoft.com/WebPart/v2/ContentEditor">--><!--ME:</ContentLink>--><!--MS:<Content xmlns="http://schemas.microsoft.com/WebPart/v2/ContentEditor">--><!--ME:</Content>--><!--MS:<PartStorage xmlns="http://schemas.microsoft.com/WebPart/v2/ContentEditor">--><!--ME:</PartStorage>--><!--MS:<ID>--><!--SPM:g_a4deccb6_9661_415d_99c8_51f528cf7428--><!--ME:</ID>--><!--ME:</WebPart>--><!--ME:</WebPartPages:ContentEditorWebPart>--><!--CE: End Content Editor Snippet-->

这会在.master文件中生成以下代码:

<WebPartPages:ContentEditorWebPart runat="server" webpart="true" __WebPartId="{B2063517-7C26-4084-AA28-36434C760CDB}"><WebPart xmlns="http://schemas.microsoft.com/WebPart/v2"><Title>$Resources:core,ContentEditorWebPartTitle;</Title><FrameType>None</FrameType><Description>$Resources:core,ContentEditorWebPartDescription;</Description><IsIncluded>true</IsIncluded><PartOrder>0</PartOrder><FrameState>Normal</FrameState><Height /><Width /><AllowRemove>false</AllowRemove><AllowZoneChange>false</AllowZoneChange><AllowMinimize>false</AllowMinimize><AllowConnect>true</AllowConnect><AllowEdit>true</AllowEdit><AllowHide>false</AllowHide><IsVisible>true</IsVisible><DetailLink /><HelpLink /><HelpMode>Modeless</HelpMode><Dir>Default</Dir><PartImageSmall /><MissingAssembly>Cannot import this Web Part.</MissingAssembly><PartImageLarge>/_layouts/15/images/mscontl.gif</PartImageLarge><IsIncludedFilter /><ExportControlledProperties>true</ExportControlledProperties><ConnectionID>00000000-0000-0000-0000-000000000000</ConnectionID><ID>g_2bfa6a66_54d1_45e6_84e7_ebbb461f2911</ID><ContentLink xmlns="http://schemas.microsoft.com/WebPart/v2/ContentEditor" />
<Content xmlns="http://schemas.microsoft.com/WebPart/v2/ContentEditor"><![CDATA[]]></Content>
<PartStorage xmlns="http://schemas.microsoft.com/WebPart/v2/ContentEditor" /><ID>g_a4deccb6_9661_415d_99c8_51f528cf7428</ID></WebPart></WebPartPages:ContentEditorWebPart>

更多信息
正如所示,我正在粘贴HTML文件中的代码段。当我添加Web Part Zone片段时,我可以在其中添加工作“Content Editor”WebParts。 “Web部件区域”片段仅在页面布局代码段管理器中可用,因此我不能将其用作解决方法,以使母版页中的页脚起作用。

我的问题:

  1. 如何通过代码段管理器添加内容编辑器WebPart?
  2. 是否有其他人面临同样的问题?
  3. 是否可以保留WebPartID 00000000-0000-0000-0000-000000000000?

1 个答案:

答案 0 :(得分:1)

在这方面与SharePoint进行了一些斗争,这就是我发现的:

Snippet Manager创建的Snippets有两种不同的工作方式。如果它们放在您的母版页或页面布局的html代码中的任何位置,它们将具有与您在片段编辑器上选择的配置完全相同的配置,并且之后您将无法对其进行编辑。

但是,如果将它们放在Webpart Container Snippet代码中,则可以在访问SharePoint上的“编辑页面”功能时编辑Web部件。正如您可能想到的那样,这仅适用于页面布局,而不适用于主页。

我认为有一种动态页脚的方法是使用Content By Search Web部件并将其指向特定列表(页脚列表),在该列表上,您可以拥有一个具有富文本编辑器类型的列,并且然后,您可以创建一个特定的显示模板,根据需要呈现列表内容。

希望它有道理。