我在Tridion中有一个嵌入式组件,它有Image字段(名为leadImage)。使用自定义弹出窗口我想在此图像字段(leadImage)中链接图像。可能吗?这必须通过单击组件的“保存”事件来完成,因此主要是jquery / javascript。
要链接的图像已在CMS系统中。默认情况下,它会通过在自定义弹出窗口中执行其他操作来创建。我将为图像提供tcmid /图像名称等。
无法找到关于Anguilla Api的大量文档来帮助我实现这一目标。
答案 0 :(得分:6)
是的,可以使用Anguilla框架覆盖SDL Tridion GUI中的“插入组件”按钮。
关于anquilla框架有很多帖子......我建议你使用http://albertromkes.com/2012/01/30/tridion-gui-extensions-how-to-load-a-javascript-without-showing-a-gui-element/来向你展示如何将自己的javascript注入特定的“视图”
要覆盖插入组件按钮,只需删除事件处理程序:
// remove the default insert behavior which is to open up the item select dialog
$log.message("Removing handlers for the insert event");
$evt.removeAllEventHandlers(fieldBuilder, "insert");
然后,您可以通过添加自己的事件处理程序将自己的功能放在那里:
// add our own insert behavior
$log.message("Adding a custom handler for the insert event");
$evt.addEventHandler(fieldBuilder, "insert", function(event) {
// whatever it is you wish to do :)
}
希望这有帮助!
答案 1 :(得分:0)
我假设“嵌入式组件”为Component Link
,允许Multimedia Links
或可能Multimedia Link
本身(在架构字段选项中)。
除了您使用“自定义弹出窗口中的其他操作”创建图像以设置默认链接组件之外,您可以:
Default Value
Default
否则,使用多种方法之一创建图像之间的关系:
作者希望能够控制他们链接到哪些图像或自动添加它们以进行渲染。它不一定必须在组件中。
虽然特定字段的扩展名肯定是可能的,但是为特定架构字段中的特定字段创建此扩展程序存在风险。确保您的方法适用于新组件,新逻辑和架构更改。
如果您有编程要求添加leadimage
,请考虑将其置于模板逻辑中,可以在所有组件演示文稿中跨出版物轻松更改,而无需重新访问每个组件。 还要确保您的组件ID使用正确的发布ID来创建这些组件的位置。
例如,您需要处理本地化版本,其中tcm-id来自较低的出版物,而不是020内容出版物。
听起来像一个有趣的要求,请对其他行动应做的事情发表评论。
答案 2 :(得分:0)
感谢John的快速回复。这符合我的要求。
由于我的字段构建器将包含许多字段,因此我修改了代码,如下所示:
var imageField = fieldBuilder.getField("lead_image"); // Where lead_image is the name for ImageField in this component
// remove the default insert behavior which is to open up the item select dialog
$log.message("Removing handlers for the insert event");
$evt.removeAllEventHandlers(imageField "insert");
// add our own insert behavior
$log.message("Adding a custom handler for the insert event");
$evt.addEventHandler(imageField , "insert", function(event) {
}
在addeventhandler中可以根据需要设置Title和ImageIcon吗?无法在Anquilla Api或其他任何地方找到它。