【问题标题】:multiple navigation menus with liferay theme-settings带有liferay主题设置的多个导航菜单
【发布时间】:2015-09-08 21:28:20
【问题描述】:

我正在使用主题设置为一个主题创建一个带有多个导航菜单的主题,在 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>

默认情况下,我显示的是水平菜单。

现在,当用户选择左垂直或右垂直时,我会正确显示导航菜单,但每当用户选择水平时,我都需要显示默认的水平导航菜单。我如何实现这一目标?

在上面的代码中,我没有编写任何关于 'horizo​​ntal' 的代码,因为我再次需要为它编写 CSS。当我选择horizo​​ntal时,它将显示我需要应用的设置,而不是当我第一次应用主题时。

如何实现?

【问题讨论】:

  • 对不起,请求不是很清楚..
  • @DanieleBaggio 你能加入这里吗chat.stackoverflow.com/rooms/77184/java-crazy-coders
  • 当站点应用主题时,默认显示水平菜单。当站点管理员不想要水平菜单时,站点管理员可以选择左垂直或右垂直菜单从主题设置中,为此我创建了选择框,用户可以选择导航类型。根据导航的值选择用户后,我更改了 custom.css 中的 css,现在我的要求是当用户不想要左垂直或右垂直时,我需要向他显示默认的水平导航菜单。
  • 可以分享一下使用设置的速度部分吗?

标签: liferay liferay-6 velocity liferay-theme liferay-aui


【解决方案1】:

使用 GetterUtil,您可以在 select 尚未选择任何值的情况下获得默认值。

这是一个例子:

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

【讨论】:

  • 我不知道如何使用你的代码 我已经编写了如下代码 #if ($navigationLeft == "horizo​​ntal") #set ($css_class= "${css_class} Horizo​​ntal") #结束
猜你喜欢
  • 2021-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多