用途:在 Umbraco 后台中实现 Dynamic Root,让内容选择器(Content Picker)的起始节点不再固定,而是根据上下文动态确定。包含两类扩展:Dynamic Root Origin 定义选择器起点(如当前页、站点根、特定类型最近祖先);Dynamic Root Query Step 定义从起点出发的导航步骤(如查找最近祖先、获取特定类型子节点)。
主要能力:可注册多个 Origin 与 Query Step,各自通过别名与后端逻辑对应。Origin 元属性为 originAlias、label、description、icon;Query Step 元属性为 queryStepAlias、label、description、icon。前端清单类型分别为 dynamicRootOrigin 与 dynamicRootQueryStep,导入自 @umbraco-cms/backoffice/extension-registry。
使用方式:实现前先用 WebFetch 获取官方最新文档(扩展类型、内容选择器、Foundation 页面);确认起点逻辑与所需查询步骤后,按最新文档生成清单文件;前端清单需配套后端 C# 实现,例如实现 IDynamicRootOrigin 的 GetOriginAsync 与 IDynamicRootQueryStep 的 ExecuteAsync,并在 Composer 中通过 builder.DynamicRootSteps().AddOrigin<T>().AddQueryStep<T>() 注册。最后说明创建内容与测试方法。
适用场景:需要在后台配置随当前编辑页面变化的动态内容选择起点时使用。
限制:仅有前端清单不足以生效,动态根依赖后端 C# 处理实际查询逻辑;示例中的 GetSiteRootForContent、FindNearestBlogAncestors 为实现占位,资料未给出具体实现;资料要求始终获取最新文档,且未提供收费、价格或平台信息。