You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Liferay 7.3 页面模板使用自定义ADT的方法及相关问题咨询

页面模板调用自定义ADT的解决方法

你的推测是正确的,站点级页面模板默认归属独立的隐藏站点,无法直接读取主站点的自定义ADT资源,可通过两种方式解决:

  • 将需要用到的横幅、面包屑自定义ADT的作用域调整为全局:进入站点构建器 > 应用程序显示模板,找到对应ADT编辑,在作用域设置中选择「全局」,保存后所有站点(包括页面模板所属隐藏站点)均可调用该ADT,之后编辑页面模板时就能在组件设置中选到对应的自定义ADT,保存模板后新创建的页面会自动继承配置。
  • 若不希望ADT全局生效,可进入对应页面模板集合的设置页,查询到模板所属的站点ID,再将自定义ADT共享到该站点即可。

直接在FTL模板中配置预置功能的方案

完全可以直接在subpage-1-column.ftl中实现所有预置需求,这种方案更稳定,不会受站点资源权限、模板配置丢失的影响。你可以将第一个投放位改为硬编码的预置内容,仅保留第二个可编辑投放位给用户自定义内容,修改后的FTL参考如下:

<div id="main-content" class="container-fluid subpage-1-column">
    <!-- 预置横幅+面包屑区域 无需用户配置 -->
    <div class="portlet-layout row no-gutters">
        <div class="col-12">
            <!-- 预置横幅组件,绑定全局ADT,可配置默认图片 -->
            <@liferay.asset_publisher
                displayStyle="ddmTemplate_[替换为你的横幅ADT唯一标识]"
                displayStyleGroupId="${company.getCompanyId()}"
                assetEntryIds="[替换为默认横幅图片的资产ID,无默认可不填]"
            />
            <!-- 预置面包屑组件,绑定全局ADT -->
            <@liferay.breadcrumbs
                displayStyle="ddmTemplate_[替换为你的面包屑ADT唯一标识]"
                displayStyleGroupId="${company.getCompanyId()}"
                showCurrentGroup="true"
            />
        </div>
    </div>
    <!-- 可编辑内容投放位,供用户添加自定义内容 -->
    <div class="portlet-layout row no-gutters">
        <div class="portlet-column portlet-column-only col-12" id="column-2">
            ${processor.processColumn("column-2", "portlet-column-content portlet-column-content-only")}
        </div>
    </div>
</div>

说明:ADT的唯一标识可在ADT编辑页面的「更多选项」中查询,displayStyleGroupId传入公司ID即可直接调用全局ADT,不受站点限制。

内容的提问来源于stack exchange,提问作者Miska Rantala

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 20:12:02