我正在专门研究Tridion 2011的PowerTools扩展程序,但这适用于任何带有按钮的Anguilla扩展程序。
我们可以设置<ext:title>
来获得悬停工具提示。用户将鼠标悬停在GUI扩展按钮上以查看此文本。请参阅config中“count items”扩展名的示例。
<ext:extension assignid="CountItems" name="Count Items"
pageid="Power Tools" groupid="Tools">
<ext:command>PT_CountItems</ext:command>
<ext:title>Count Items</ext:title>
<ext:issmallbutton>false</ext:issmallbutton>
<ext:dependencies>
<cfg:dependency>PowerTools.Commands</cfg:dependency>
</ext:dependencies>
<ext:apply>
<ext:view name="DashboardView" />
</ext:apply>
</ext:extension>
如果未启用扩展程序,我们会向change this tooltip to some helpful text发出请求。
我可以在Chrome控制台的按钮中看到“计数项目”文本。
<div id="CountItems" class="tridion button PT_CountItems ribbonitem disabled"
title="Count Items" c:command="PT_CountItems"
c:controltype="Tridion.Controls.RibbonButton"
style="-webkit-user-select: none; ">
<div class="image"> </div>
<div class="text">Count Items</div>
</div>
同样在控制台中,我可以选择文本周围的div:$("div#CountItems > div.text")
。我不确定如何获取文本。
问题: 当GUI按钮处于非活动状态时,如何/应该如何更改工具提示文本?
我可能也需要澄清这些。
$()
是否与jQuery()
相同?我尝试$("div#CountItems > div.text").text()
并获得Object #<HTMLDivElement> has no method 'text'
最后,
{NameSpace}.Commands.{ExtensionName}.prototype.isValidSelection = function(selection)
{ }
一般是改变此工具提示的正确位置吗?答案 0 :(得分:6)
没有。 Tridion UI包含jQuery库的子集:sizzle CSS selector engine。
因此,选择一组元素的所有常用jQuery技巧都可以使用,但其他jQuery方法(AJAX东西,事件处理程序,实用程序方法)将不可用。
请注意,如果您想在扩展程序中使用完整的jQuery,可以将其包含在所谓的noConflict
mode中。
据我所知,Tridion GUI中的按钮只有一个工具提示,并且每个按钮状态都会显示工具提示。当GUI即将显示时,您也可以使用ontooltip
事件来计算工具提示。
按钮确实有公共setTooltip
,因此一旦检测到某种情况,您就可以自行更改。如果您搜索setTooltip
的Anguilla源代码,您将找到一些如何使用它的示例(在欢迎屏幕中,向页面和BluePrint查看器添加组件演示时)。
不要问“我可以在显示时更改工具提示吗?”,请尝试将其改为“哪个状态导致哪个工具提示?我可以检测状态更改并在那时设置正确的工具提示吗?”。
如果仅在选择某种类型的项目时启用了工具/命令,则应检测该条件,然后在此时设置工具提示。然后,当GUI需要显示工具提示时,您将不必执行任何操作。
当然这只会在其他地方推动你的问题:如何检测这个或那个条件。但是你会发现找到这种“应用程序状态变化”的事件通常比“tooltip”更容易。