4

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

我们可以设置<ext:title>获得悬停工具提示。用户将鼠标悬停在 GUI 扩展按钮上以查看此文本。请参阅配置中的“计数项目”扩展名的示例。

<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>

当未启用扩展程序时,我们要求将此工具提示更改为一些有用的文本。

我可以在 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>

同样在控制台中,我可以选择包含文本的 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 代替。
4

1 回答 1

6

$() 和 jQuery() 一样吗?

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

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

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

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

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

按钮确实有一个 public setTooltip,所以一旦你检测到某种情况,你就可以自己改变它。如果您搜索 Anguilla 源代码,setTooltip您会发现一些如何使用它的示例(在欢迎屏幕中,向页面添加组件演示文稿时以及在 BluePrint 查看器中)。

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

不要问“我可以在显示工具提示时更改它吗?”,而是尝试将其改写为“哪个状态导致哪个工具提示?我可以检测到状态更改并在那个时候设置正确的工具提示吗?”。

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

当然,这只会将您的问题推到其他地方:如何检测这种或那种情况。但是您会发现为此类“应用程序状态更改”查找事件通常比为“ontooltip”查找事件更容易。

于 2012-07-01T11:15:09.037 回答