我应该使用tcdl、Tridion标记还是RenderComponentPresentation? 使用Tridion管理“全球”徽标

我应该使用tcdl、Tridion标记还是RenderComponentPresentation? 使用Tridion管理“全球”徽标,tridion,tridion-content-delivery,Tridion,Tridion Content Delivery,例如,要使用SDL Tridion管理网站范围的徽标及其文本元素,我希望它位于组件中,由(动态)组件模板呈现,并按页面模板放置。我的要求包括: 作为组件的徽标——作为多媒体(mm)组件和链接的图像、alt(即“主页”)以及可选容器组件中的其他文本 动态组件演示文稿(DCP)——能够管理徽标的标记演示文稿并发布更改,而无需发布每个页面 可共享——能够在较低级别的出版物中本地化组件中的多媒体和文本,而不是模板 作者不需要将徽标作为组件展示(CP)放在每个页面上,尽管仅在主页上的徽标CP可以提供动态链

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

  • 作为组件的徽标——作为多媒体(mm)组件和链接的图像、alt(即“主页”)以及可选容器组件中的其他文本
  • 动态组件演示文稿(DCP)——能够管理徽标的标记演示文稿并发布更改,而无需发布每个页面
  • 可共享——能够在较低级别的出版物中本地化组件中的多媒体和文本,而不是模板
  • 作者不需要将徽标作为组件展示(CP)放在每个页面上,尽管仅在主页上的徽标CP可以提供动态链接

    RenderComponentPresentation()
    TCDL
    ,或
    Tridion
    标记表示“非CPs” 对于这种无CP的方法,我认为RenderComponentPresentation()或将是正确的“不可知论”方法。一个优先于另一个吗?

    例如,我的模板输出:

    By tridion:(ASP.NET)标记
    通过tcdl:tag
    按渲染组件表示
    @@RenderComponentPresentation('tcm:7-1533','tcm:7-1532-32')@@
    
    这些文件在文件系统上转换为以下内容

    By tridion:(ASP.NET)标记
    通过tcdl:tag
    按渲染组件表示
    
    每个渲染交付端,以便用户在浏览器中看到正确的CP

    问题:
  • 任何方法都可以从PT获得一个引用的DCP,其格式不可知,可以从表示端获取,从而避免整个站点发布。它实际上不在页面上,所以我们必须确保使用动态CT(在本例中是html片段)发布徽标我遗漏了什么吗?

  • RenderComponentPresentation()比TCDL或特定的表示端语法更受欢迎吗?有什么理由我想改为


  • 编辑:我丢失了
    Type=“Dynamic”
    属性和值,也有一段时间认为RenderComponentPresentation没有创建正确的CP引用。

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

    我倾向于使用
    @@RenderComponentPresentation('tcm:7-1533','tcm:7-1532-32')@
    ,但实际上我不会将其用于硬编码的tcmuri。我可能会编写一个TBB,从某个地方读取多媒体组件TCMURI及其模板URI,例如配置组件或发布元数据,然后您的模板可能看起来像:

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

    当在布局中使用Dreamwever TBB时,我会将其作为首选项。如果您使用的是另一种布局方式,那么接下来最好使用TCDL标记。事实上,要尝试保持模板代码的不可知性。我唯一一次回写tridion控制代码,是当我无法用另一种方法把它写出来时。

    Nice,+1并且被接受。是的,我做了更多的工作,我发现了主要的问题。我同意技术不可知论的方法是可行的。