【问题标题】:Populate Page Metadata Schema on selection of Page Template在选择页面模板时填充页面元数据架构
【发布时间】:2012-11-28 05:25:27
【问题描述】:

在 Tridion 2011 中 - 实现以下目标的最佳方法是什么: 在创建编辑现有页面的新页面时,当编辑器选择页面模板时,我们可以自动为其设置关联的页面元数据架构。因此,基本上定义一个 PT 和元数据模式的一对一关联以使用它。

【问题讨论】:

  • 问得好,我们是否有兴趣提交Area 51 Tridion specific proposal。如果有时间,请使用同一个 SO 帐户注册。
  • 已经完成了 Bart :) 我完全支持

标签: metadata tridion tridion-2011


【解决方案1】:

我可以看到这些选项:

  1. 事件处理程序,请参阅文档here(需要登录)
  2. 数据扩展器,请参阅文档here(需要登录)
  3. 客户端 GUI 扩展

这些扩展点中的每一个也已在 StackOverflow 中的先前问题和外部博客文章中进行了介绍。这些可以作为很好的附加“文档”,说明它们每个可能/可行的情况。

所有这些都有自己的优点和缺点。哪一个最适合您实际上取决于您的确切要求、您对用户进行一些教育的意愿以及最终实施和维护它的开发人员的技能。

事件处理程序和数据扩展程序在服务器上运行并使用 C# 编写,这意味着它们通常更易于开发和调试。客户端 GUI 扩展让您可以完全控制用户界面,但这种控制是有代价的:对于大多数开发人员来说,它们的学习曲线更高。

更新 要响应 GUI 中页面模板的更改,您可以使用以下内容:

var c = $display.getView().properties.controls;
$evt.addEventHandler(c.PageTemplate, 'change', function() { 
  console.log(c.PageTemplate.getValue()); // the newly selected Page Template
  c.MetaSchemaDropdown.setValue('tcm:10-2103-8'); // the corresponding Metadata Schema
});

【讨论】:

  • 谢谢弗兰克。事件系统没有什么像:OnPagetemplateSelectPre。所以这可能不是钩子。第二个地方是数据扩展器,它看起来像是一个很好的挂钩来放置我的代码并为每个 PT 返回一个称为元数据模式的额外字段。问题是关于如何从数据扩展器返回的内容修改元数据模式的问题。我有一些关于客户端安圭拉示例的链接,并且也写了一些。但是在这个主题附近还没有任何安圭拉的例子,即关于自动更新元数据模式。如果您有或可以找到任何东西,那就太好了。
  • 您可能可以创建一个 Anguilla 事件处理程序来侦听页面模板下拉列表(“更改”事件)上的更改,然后基于此执行。一旦编辑器已经选择了一个模板,填写了一些元数据,然后选择了一个不同的模板(你可能会覆盖以前的数据),请小心你所做的更改
  • 关于事件系统:我要检查的事件是 LoadEventArg。
  • 这将有助于初始值。但是当我昨天检查时,当您更改页面模板时,没有进行客户端到服务器的调用。因此,您能否在LoadEventArgs 中处理更新似乎值得怀疑。这意味着唯一的选择是将其作为保存事件中的验证调用处理 (nunolinhares.blogspot.com/2012/07/…)。
猜你喜欢
  • 2011-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-22
  • 2020-05-06
  • 1970-01-01
相关资源
最近更新 更多