【发布时间】:2012-07-01 01:48:31
【问题描述】:
我正在专门使用 Tridion 2011 的 PowerTools 扩展,但这适用于任何带有仪表板按钮的 Anguilla 扩展。
我们可以设置<ext:title> 来获得悬停工具提示。用户将鼠标悬停在 GUI 扩展按钮上以查看此文本。请参阅config 中的“计数项目”扩展名示例。
<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 按钮处于非活动状态时,我应该/应该如何更改工具提示文本?
我可能也需要澄清这些。
- 在 Anguilla(或 PowerTools)中,
$()是否与jQuery()相同?我试过$("div#CountItems > div.text").text()并得到Object #<HTMLDivElement> has no method 'text' - 当按钮被禁用时,是否有首选或可配置的方式来设置该工具提示?我确信我们可以在 DOM 中找到一个元素,但我可能遗漏了一些东西。
最后,
- 一般来说,
{NameSpace}.Commands.{ExtensionName}.prototype.isValidSelection = function(selection) { }是更改此工具提示的正确位置吗? - 对于上下文菜单,我相信我们有 _isAvailable 代替。
【问题讨论】:
-
您可以扩展现有命令并调用它们的“_isAvailable”或“_isEnabled”方法,检查它们是否返回false,然后更改工具提示?
-
谢谢,根据@Nuno 和@Frank 的反馈,我将使用
$controls.getControl($("#CountItems"), "Tridion.Controls.Button").setTooltip("Count Item is...");设置工具提示,它适用于PowerTools.Commands.CountItems.prototype.isValidSelection = function (selection) { }。 -
@Frank 还提到了离线创建事件侦听器的选项,例如
$evt.addEventListener("onitemselected", function(selected) { PowerTools.Button1.setTooltip(...); PowerTools.Command1._isItEnabled = ...; });。接下来我得试试这个。
标签: tridion tridion-2011