2012-03-27 114 views
1

我已经开始学习与Liferay 6.1在liferay的不同页面上显示导航菜单?

我想实现的是:在几页上显示导航菜单。

我所做的是:

    在页面上
  • 添加导航门户,并配置它来显示网页所有链接(也标志着当前页面链接为粗体)

我研究是:

  • 我已经阅读几个论坛,在liferay-portlet.xml文件导航portlet的scopeable标签更改为真。

但我面临的问题是:

  • 我找不到地方Liferay的导航门户存在。就像我在liferay-portal-6.1.0-ce-ga1/tomcat-7.0.23/webapps/ROOT/html/portlet/navigation中发现它的存在一样,但是它不包含任何liferay-portlet.xml文件。

请帮忙!

回答

1

好了,终于我找到了一些解决方案,这使得稳定的导航菜单上显示所需的页面。

  • 首先添加一个导航菜单到所需的页面。

  • Goto Dockbar-> Add - > Page。 (添加你的页面的菜单名称)。

  • 转到Dockbar-> Manage->页

  • 这里你可以找到的选项“从页面添加门户” - >点击 - >选择您有您的导航菜单的设置页面。

  • 选择您的页面,然后按“复制”,然后按“保存”。

最后你会看到加载在现有的portlet中发现的所有portlet的新页面,以及相关菜单链接被选中了。

就是这样。

你也会看到所有的portlet都被复制,所以你可以删除你不需要的。而且这些可以让你保持布局而不需要修改主题文件中的任何内容。

谢谢!

0

你要找的文件是在

ROOT/WEB-INF/liferay-portlet.xml 

导航门户是门户与71名(不要问我为什么)。

无论如何,我不明白你想要达到什么样的行为?

+0

我希望能够在不同的portlet上显示相同的导航。我使用drupal进行工作,就像创建菜单并指定希望显示的页面一样。 liferay如何做到这一点?像在不同的页面上显示相同的导航portlet,而不是在这些页面上单独添加它们中的每一个? – linuxeasy 2012-03-28 05:30:46

0

也许你想做一个主题?也许我在这里很愚蠢,但是在主题中有整个门户布局的速度模板(例如,页脚,页眉和中间的空间,用于portlet),还有导航的速度代码。在实践中它是这样的:

<nav> 
    #foreach($nav_item in $nav_items) 
     ##do things with nav items for example get a child item: 
     #if($nav_item.isSelected) 
      #set($nav_childs = $nav_item.getChild() 
     #end 
    #end 

    #foreach($child in $nav_childs.getChildren) 
     ##do stuff with sub items 
    #end 
</nav> 
+0

它不能在主题中完成。考虑它是大型门户网站而不是某个网站,在主题中修改它会使它成为所有网页的授权,而这不是我们所要求的。 – linuxeasy 2012-03-29 07:19:21

+0

我认为不能从liferay门户框架中分离出“核心”portlet。也许你可以使用liferay-taglibs(http://www.liferay.com/community/wiki//wiki/Main/UI+Taglib#section-UI+Taglib-breadcrumb)? – Aparaatti 2012-03-29 12:42:25

+0

您可能会以某种方式获得com.liferay.portal.theme.NavItem服务类。我现在也在学习liferay .. – Aparaatti 2012-03-29 13:03:07

2

您可以创建一个PageTemplate来容纳公共Portlet。然后,当您创建页面时,您可以选择PageTemplate,并且您的页面将从该模板中获取所有portlet