具有liferay主题设置的多个导航菜单

具有liferay主题设置的多个导航菜单,liferay,liferay-6,velocity,liferay-theme,liferay-aui,Liferay,Liferay 6,Velocity,Liferay Theme,Liferay Aui,我正在使用主题设置为一个主题创建一个具有多个导航菜单的主题,在liferay look-and-feel.xml中,我添加了以下代码: <settings> <setting configurable="true" key="navigation" type="select" options="left-vertical,right-vertical,horizontal" value="horizontal" /> </settings>

我正在使用主题设置为一个主题创建一个具有多个导航菜单的主题,在liferay look-and-feel.xml中,我添加了以下代码:

<settings>
    <setting configurable="true" key="navigation" type="select" 
options="left-vertical,right-vertical,horizontal" value="horizontal" />
    </settings>
portal_normal.vm文件:

<!DOCTYPE html>

#parse ($init)

<html class="$root_css_class" dir="#language ("lang.dir")" lang="$w3c_language_id">

<head>
    <title>$the_title - $company_name</title>

    <meta content="initial-scale=1.0, width=device-width" name="viewport" />

    $theme.include($top_head_include)
</head>

## navigation menu selection related code

    #set ($navigationLeft = $theme.getSetting("navigation"))

    #if ($navigationLeft == "left")
        #set ($css_class = "${css_class} navigation-left")
    #end

    #if ($navigationLeft == "left-right")
        #set ($pull1 = "")
        #set ($pull2 = "pull-right")
    #else
        #set ($pull1 = "pull-right")
        #set ($pull2 = "")
    #end



<body class="$css_class">

<a href="#main-content" id="skip-to-content">#language ("skip-to-content")</a>

$theme.include($body_top_include)


    #dockbar()

## docbar settings 

#set ($dockbar = $theme.getSetting("dockbar-mode"))

#if ($dockbar == "split")
    #set ($css_class = "${css_class} dockbar-split")
#end

#set ($navigationLeft = $theme.getSetting("logo-menu-direction"))

#if ($navigationLeft == "left-right")
    #set ($pull1 = "")
    #set ($pull2 = "pull-right")
#else
    #set ($pull1 = "pull-right")
    #set ($pull2 = "")
#end


<div class="container-fluid" id="wrapper">
    <header id="banner" role="banner">
        <div id="heading">
            <h1 class="site-title">
                <a class="$logo_css_class" href="$site_default_url" title="#language_format ("go-to-x", [$site_name])">
                    <img alt="$logo_description" height="$site_logo_height" src="$site_logo" width="$site_logo_width" />

                #*  #if ($show_site_name)
                        <span class="site-name" title="#language_format ("go-to-x", [$site_name])">
                            $site_name
                        </span>
                    #end
                *#
                </a>

            </h1>
            <div class="navigation-menu $pull2">
                <div class="line1"></div>
                <div class="line2"></div>
                <div class="line3"></div>
            </div>


            <h2 class="page-title">
                <span>$the_title</span>
            </h2>

        </div>

        #if ($has_navigation || $is_signed_in)
            #parse ("$full_templates_path/navigation.vm")
        #end
    </header>

    <div id="content">
        <nav id="breadcrumbs">#breadcrumbs()</nav>

        #if ($selectable)
            $theme.include($content_include)
        #else
            $portletDisplay.recycle()

            $portletDisplay.setTitle($the_title)

            $theme.wrapPortlet("portlet.vm", $content_include)
        #end
    </div>

    <footer id="footer" role="contentinfo">
        <p class="powered-by">
            #language ("powered-by") <a href="http://www.liferay.com" rel="external">Liferay</a>
        </p>
    </footer>
</div>

$theme.include($body_bottom_include)

$theme.include($bottom_include)

</body>

</html>
默认情况下,我显示水平菜单

现在,当用户选择left vertical(左垂直)或right vertical(右垂直)时,我将正确显示导航菜单,但每当用户选择水平时,我都需要显示默认的水平导航菜单。我如何做到这一点

在上面的代码中,我没有写任何关于“水平”的代码,因为我同样需要为它编写CSS。当我第一次应用主题时,它将显示水平菜单,当我选择水平时,我需要应用这些设置


如何实现它?

使用getterul,直到您可以拥有一个默认值,以防select尚未选择任何值

这是一个例子:

#set ($navigation = $getterUtil.getString($theme.getSetting("navigation"),"horizontal"))

抱歉,请求不是很清楚。@DanieleBaggio当主题应用于站点时,您可以加入这里吗?默认情况下,它将显示水平菜单。当站点管理员不需要水平菜单时,站点管理员可以从主题设置中选择左垂直或右垂直菜单,为此,我创建了一个选择框,用户可以在其中选择导航的类型。根据导航值选择用户后,我在custom.css中更改了css,现在,我的要求是,当用户不想同时使用左垂直或右垂直时,我需要向他显示默认的水平导航菜单。您可以共享使用设置的速度部分吗?我不知道如何使用您的代码,我编写的代码如下,如果$navigationLeft==水平集$css_class=${css_class}水平端