我的建议是不要硬编码主题的名称,而是使用现成的主题设置。只需将您的主题配置为“桌面”或“移动”样式并检查此属性。这样您就可以涵盖许多不同的主题,而无需对特定主题进行硬编码。
此外,各种ThemeDisplay.getTheme*()
方法将帮助您在几乎任何地方获得所需的信息。
这是您的主题的一些未经测试的伪代码(我只是在这里输入它,从未编译/部署,您可能想为 VM 添加空检查)
<?xml version="1.0"?>
<!DOCTYPE look-and-feel PUBLIC "-//Liferay//DTD Look and Feel 6.0.0//EN" "http://www.liferay.com/dtd/liferay-look-and-feel_6_0_0.dtd">
<look-and-feel>
<compatibility>
<version>6.1.0+</version>
</compatibility>
<theme id="my-desktop-1" name="My First Desktop Theme">
<settings>
<setting key="mobile" value="false" />
</settings>
</theme>
</look-and-feel>
<?xml version="1.0"?>
<!DOCTYPE look-and-feel PUBLIC "-//Liferay//DTD Look and Feel 6.0.0//EN" "http://www.liferay.com/dtd/liferay-look-and-feel_6_0_0.dtd">
<look-and-feel>
<compatibility>
<version>6.1.0+</version>
</compatibility>
<theme id="my-mobile-1" name="My First Mobile Theme">
<settings>
<setting key="mobile" value="true" />
</settings>
</theme>
</look-and-feel>
然后,在 VM 或 JSP 或其他代码中:
#if( ! $themeDisplay.getSetting("mobile"))
## more resources, desktop only, here.
#end
#if( $themeDisplay.getSetting("mobile")
## mobile only stuff here.
#end
最后,您可能还想考虑使用设备检测 API以更精细的粒度确定当前设备的实际功能