当我将鼠标悬停在 Liferay 的主菜单项上时,我希望有工具提示。默认情况下,没有办法做到这一点。即使在*.vm
文件中,标记也不包括链接的任何标题属性。
我试图解决的方法是为页面定义一个自定义属性。这给了我一个 Liferay 本身的界面来输入我可能想要的标题值。然后我打算使用这个值作为菜单链接的标题值。不确定这是否会起作用。
有没有更好的方法我不知道?
当我将鼠标悬停在 Liferay 的主菜单项上时,我希望有工具提示。默认情况下,没有办法做到这一点。即使在*.vm
文件中,标记也不包括链接的任何标题属性。
我试图解决的方法是为页面定义一个自定义属性。这给了我一个 Liferay 本身的界面来输入我可能想要的标题值。然后我打算使用这个值作为菜单链接的标题值。不确定这是否会起作用。
有没有更好的方法我不知道?
那我觉得可以用HTML Title
for页面描述如图:
正如@Sharana 所提到的,您可以在自定义主题的标签属性中使用此($nav_item.getTitle()
) :title
<a>
navigation.vm
<a title="$nav_item.getTitle()" href="$nav_item.getURL()" $nav_item.getTarget()><span>$nav_item.icon() $htmlUtil.escape($nav_item.getName())</span></a>
您也可以使用此 ( $nav_item.getLayout().getHTMLTitle($locale)
):
<a title="$nav_item.getLayout().getHTMLTitle($locale)" href="$nav_item.getURL()" $nav_item.getTarget()><span>$nav_item.icon() $htmlUtil.escape($nav_item.getName())</span></a>
我更喜欢这种方法,因为它更干净,因为它不涉及添加新的自定义字段,并且工作是使用 liferay 中已经存在的内容完成的,并且减少了对expando
(可能这无关紧要)的调用。
希望这有助于为您提供一些指导。
两种解决方案都很好。
这仅取决于工具提示文本是否需要与 html 页面标题不同。如果是这样,请转到自定义属性路线。如果没有,请重用 html 标题方法。
如果我在这里遗漏了什么,请原谅我。如果我是,请澄清。
为什么你认为在 navigation.vm 中没有办法做到这一点?
下面是来自navigation.vm 的代码
<a href="$nav_item.getURL()" $nav_item.getTarget()><span>$nav_item.icon() $htmlUtil.escape($nav_item.getName())</span></a>
如果您为此添加标题属性,
<a title="$htmlUtil.escape($nav_item.getName())" href="$nav_item.getURL()" $nav_item.getTarget()><span>$nav_item.icon() $htmlUtil.escape($nav_item.getName())</span></a>
有用。
对于儿童物品也是如此。
正确的答案是我最初要去的方向。创建与页面相关的自定义字段,然后在速度模板中使用它。这是导航菜单的完整代码,其中menuTitle
是我的自定义变量的名称:
<nav class="$nav_css_class" id="navigation">
<h1>
<span>#language("navigation")</span>
</h1>
<ul>
#foreach ($nav_item in $nav_items)
#if ($nav_item.isSelected())
<li class="selected">
#else
<li>
#end
<a title="$nav_item.getLayout().getExpandoBridge().getAttribute("menuTitle")" href="$nav_item.getURL()" $nav_item.getTarget()><span>$nav_item.icon() $nav_item.getName()</span></a>
#if ($nav_item.hasChildren())
<ul class="child-menu">
#foreach ($nav_child in $nav_item.getChildren())
#if ($nav_child.isSelected())
<li class="selected">
#else
<li>
#end
<a title="$nav_child.getLayout().getExpandoBridge().getAttribute("menuTitle")" href="$nav_child.getURL()" $nav_child.getTarget()>$nav_child.getName()</a>
</li>
#end
</ul>
#end
</li>
#end
</ul>
</nav>