禁用仪表板按钮时,我们可以显示不同的工具提示吗?

Alv*_*yes 4 tridion tridion-2011

我正在专门研究Tridion 2011的PowerTools扩展,但这适用于任何带有仪表板按钮的Anguilla扩展.

我们可以设置<ext:title>一个悬停工具提示.用户将鼠标悬停在GUI扩展按钮上以查看此文本.请参阅配置中 "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>
Run Code Online (Sandbox Code Playgroud)

我们要求在未启用扩展时将此工具提示更改为某些有用的文本.

我可以使用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">&nbsp;</div>
    <div class="text">Count Items</div>
</div>
Run Code Online (Sandbox Code Playgroud)

此外,在控制台上,我可以选择的div文字周围:$("div#CountItems > div.text").我不知道如何获取文本.

问题: 当GUI按钮处于非活动状态时,如何/应该如何更改工具提示文本?

我可能也需要澄清这些.

  • 在安圭拉(或PowerTools),是$()一样的jQuery()吗?我尝试$("div#CountItems > div.text").text()并获得 Object #<HTMLDivElement> has no method 'text'
  • 当按钮被禁用时,是否有首选或可配置的方法来设置该工具提示?我确信我们可以在DOM中找到一个元素,但我可能会遗漏一些东西.

最后,

  • {NameSpace}.Commands.{ExtensionName}.prototype.isValidSelection = function(selection) { }是改变这一提示,一般正确的地方?
  • 对于上下文菜单,我相信我们有_isAvailable.

Fra*_*len 6

$()与jQuery()相同吗?

不.Tridion UI包含一个jQuery库的子集:sizzle CSS选择器引擎.

因此,选择一组元素的所有常用jQuery技巧都可以使用,但其他jQuery方法(AJAX东西,事件处理程序,实用程序方法)将无法使用.

请注意,如果您想在扩展中使用完整的jQuery,可以通过将其包含在所谓的noConflict模式中来实现.

我可以在禁用按钮时设置工具提示吗?

据我所知,Tridion GUI中的按钮只有一个工具提示,并且每个按钮状态都会显示工具提示.ontooltip当GUI即将显示时,也没有事件可以用来计算工具提示.

按钮确实有一个公共setTooltip,所以你可以在检测到某种情况后自己更改它.如果您搜索安圭拉源代码,setTooltip您将找到一些如何使用它的示例(在欢迎屏幕中,向页面和BluePrint查看器添加组件演示时).

isValidSelection是否是更改此工具提示的正确位置?

不要问"我可以在显示时更改工具提示吗?",尝试将其改为"哪个状态导致哪个工具提示?我能检测到状态变化并在那时设置正确的工具提示吗?".

如果仅在选择某种类型的项目时启用了工具/命令,则应检测该条件,然后在此时设置工具提示.然后,当GUI需要显示工具提示时,您将不必执行任何操作.

当然,这只会在其他地方推动你的问题:如何检测这种或那种情况.但是你会发现找到这种"应用程序状态变化"的事件比"整个体内"更容易.