我想问一个关于liferay主题的问题。什么会更容易和更好?创建新主题或修改已经存在于 liferay 页面的主题?
感谢您的任何建议。
那是一样的:通过使用 Liferay SDK 创建一个新主题,默认主题将被克隆,然后您可以覆盖一些 css、模板等。
创建新主题:http ://www.liferay.com/documentation/liferay-portal/6.1/development/-/ai/creating-a-the-4
当您在 sdk 中创建主题时,它是基于父主题或经典主题构建的。
作为参考,请查看主题的 build.xml。
作为制作了几个自定义主题的人,最好修改现有主题。您应该修改的所有文件都在 /docroot/diffs/* 下
对于图像,我在图像下创建了一个 /custom 文件夹,我将所有这些文件夹放在其中。
对于模板,我主要修改了navigation.vm和portal_normal.vm文件。我完全改变了导航的处理方式。
我还彻底修改了 css 以实现我们想要的外观。我为此创建了一个 custom.css 文件。
这是我创建的自定义子导航菜单,它允许在子元素上出现过度状态。
<nav id="navigation_sub_menu">
<ul>
#foreach ($nav_item in $nav_items)
#if ($nav_item.isSelected() && $nav_item.hasChildren())
<ul class="child-menu">
#foreach ($nav_child in $nav_item.getChildren())
#set ($nav_child_upper = $nav_child.getName())
#if ($nav_child.isSelected())
<li class="sub_menu">
<a class="selected" href="$nav_child.getURL()" $nav_child.getTarget()>$nav_child_upper.toUpperCase()</a>
</li>
#else
<li>
<a href="$nav_child.getURL()" $nav_child.getTarget()>$nav_child_upper.toUpperCase()</a>
</li>
#end
#end
</ul>
#end
#end
</ul>