预测动态占位符的占位符

Predicting the placeholder for a dynamic placeholder

我正在使用 Fortis 中的动态占位符,但需要设置一个页面模板,其中动态占位符包含渲染。我通过在页面模板的标准值上设置布局细节来设置页面模板。

我一直未能成功,因为动态占位符由生成的 GUID 后缀。有没有办法预测这个 GUID?根据文档,GUID 是使用以下逻辑生成的:

Dynamic Placeholders simply use the rendering ID to create a unique placeholder name. If more than one dynamic placeholder with the same name is in a rendering it will also append on an incrementing number

我尝试了另一种方法,使用自制的动态占位符库,它只是在动态占位符前面加上一个序列号,例如第 1 行,第 2 行,第 3 行。但是这种方法使得内容编辑器无法在体验编辑器中移动行,因为行内的内容绑定到一个固定的数字,移动行时该数字会发生变化。

由于这个问题已经在 sitecore.stackexchange.com 上得到了回答,我也想把答案也放在这里。非常感谢 Richard Seal and Thomas D

托马斯·D: 可以尝试用体验编辑器打开标准值项,添加自己喜欢的效果图

理查德·海尔: 这是 Thomas D.

提到的方法的替代方法

Fortis 解决方案将 UID 用于附加到您输入的占位符键的呈现。您可以通过更改为“原始值”视图并将 xml 从渲染或最终渲染字段中复制出来来实现。

找到包含您的占位符的渲染。会有一个像这样的 xml 元素:

<r id="{CA76EB6F-2934-4B8A-BB6A-508A8E44A7C5}" 
   ph="body" 
   uid="{0FD41EBD-43CF-4647-8A0F-F1F1D2E00CCD}" />

可能还有其他字段。重要的 2 个是 id,它是您渲染项目的项目 id 和 uid,这是添加到您的占位符键的唯一渲染 id。

密钥是这样构建的:string.Format("{0}_{1}", placeholderName, renderingId);

因此,如果您有一个名为 title 的占位符键,上述 xml 片段的键将是:title_{0FD41EBD-43CF-4647-8A0F-F1F1D2E00CCD}