gpt4 book ai didi

tridion - 我应该使用 tcdl、Tridion 标签还是 RenderComponentPresentation?

转载 作者:行者123 更新时间:2023-12-04 20:14:30 25 4
gpt4 key购买 nike

使用 Tridion 管理“全局” Logo

例如,要使用 SDL Tridion 管理网站范围的 Logo 及其文本元素,我希望它在一个组件中,由(动态)组件模板呈现,并由页面模板放置。我的要求包括:

  • Logo 作为组件 --image 作为多媒体 (mm) 组件和链接、alt(即“home”)以及可选容器组件中的其他文本
  • 动态组件演示 (DCP) --无需发布每一页即可管理 Logo 的标记表示和发布更改
  • 可分享 --能够在较低的出版物中本地化组件中的多媒体和文本,而不是模板

  • 作者不需要将 Logo 作为组件演示 (CP) 放置在每个页面上,尽管仅在主页上的 Logo CP 可以提供动态链接。
    RenderComponentPresentation() , TCDL , 或 Tridion “非 CP”的标签

    对于这种无 CP 的方法,我认为 RenderComponentPresentation() 或 TCDL tag将是正确的“不可知论”方法。一个比另一个更受欢迎吗?

    例如,我的模板输出:

    <h3>By tridion: (ASP.NET) tag</h3>
    <tridion:ComponentPresentation runat="server"
    PageURI="tcm:7-1535-64"
    ComponentURI="tcm:7-1533"
    TemplateURI="tcm:7-1532-32"/>

    <h3>By tcdl: tag</h3>
    <tcdl:ComponentPresentation
    PageURI="@@Page.ID@@"
    type="Dynamic"
    ComponentURI="tcm:7-1533"
    TemplateURI="tcm:7-1532-32"/>

    <h3>by render component presentation</h3>
    @@RenderComponentPresentation('tcm:7-1533','tcm:7-1532-32')@@

    这些在文件系统上转换为以下内容。

    <h3>By tridion: (ASP.NET) tag</h3>
    <tridion:ComponentPresentation runat="server"
    PageURI="tcm:7-1535-64"
    ComponentURI="tcm:7-1533"
    TemplateURI="tcm:7-1532-32"/>

    <h3>By tcdl: tag</h3>
    <tridion:ComponentPresentation runat="server"
    PageURI="tcm:7-1535-64"
    ComponentURI="tcm:7-1533"
    TemplateURI="tcm:7-1532-32"/>

    <h3>by render component presentation</h3>
    <tridion:ComponentPresentation runat="server"
    PageURI="tcm:7-1535-64"
    ComponentURI="tcm:7-1533"
    TemplateURI="tcm:7-1532-32"/>

    每个都呈现交付端,以便用户在浏览器中看到正确的 CP。

    问题):
  • 任何方法都可以让我们获得从 PT 引用的 DCP,其格式不可知,可以在演示端检索,避免全站点发布。它实际上不在页面上,因此我们必须确保使用动态 CT 发布 Logo (在本例中为 html 片段)。 我错过了什么吗?
  • RenderComponentPresentation() 是优先于 TCDL 还是特定的表示端语法? 我真正想要的任何理由<tridion:ComponentPresentation runat="server">反而?

  • 编辑:我错过了 Type="Dynamic"属性和值,还一度认为 RenderComponentPresentation 没有创建正确的 CP 引用。

    最佳答案

    基本上你已经自己回答了你的第一个问题,除了你想如何在你的模板中写出来之外,你还有你的 DCP。

    我的偏好是使用 @@RenderComponentPresentation('tcm:7-1533','tcm:7-1532-32')@@但我实际上不会将它与硬编码的 TCMURI 一起使用。我可能会编写一个 TBB,它从某个配置组件或发布元数据中读取多媒体组件 TCMURI 及其模板 URI,然后您的模板可能类似于:

    @@RenderComponentPresentation(${LogoUri}, ${LogoTemplateUri})@@

    在为您的布局使用 Dreamwever TBB 时,我会将此作为首选项。如果您使用另一种布局方式,那么下一个最好的方法是使用 TCDL 标签。确实要尝试使您的模板代码不可知。我唯一一次会自己写出 tridion 控制代码,就是当我无法以另一种方式实现它的时候。

    关于tridion - 我应该使用 tcdl、Tridion 标签还是 RenderComponentPresentation?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14005206/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com