1

当我将鼠标悬停在 Liferay 的主菜单项上时,我希望有工具提示。默认情况下,没有办法做到这一点。即使在*.vm文件中,标记也不包括链接的任何标题属性。

我试图解决的方法是为页面定义一个自定义属性。这给了我一个 Liferay 本身的界面来输入我可能想要的标题值。然后我打算使用这个值作为菜单链接的标题值。不确定这是否会起作用。

有没有更好的方法我不知道?

4

4 回答 4

1

那我觉得可以用HTML Titlefor页面描述如图:

在此处输入图像描述

正如@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(可能这无关紧要)的调用。

希望这有助于为您提供一些指导。

于 2013-01-04T15:21:12.227 回答
0

两种解决方案都很好。

这仅取决于工具提示文本是否需要与 html 页面标题不同。如果是这样,请转到自定义属性路线。如果没有,请重用 html 标题方法。

如果我在这里遗漏了什么,请原谅我。如果我是,请澄清。

于 2013-01-07T09:26:19.123 回答
0

为什么你认为在 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>

有用。

对于儿童物品也是如此。

于 2013-01-04T00:18:00.107 回答
0

正确的答案是我最初要去的方向。创建与页面相关的自定义字段,然后在速度模板中使用它。这是导航菜单的完整代码,其中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>
于 2013-01-04T17:30:00.950 回答