使用portal_normal.vm
中的代码
<img alt="$logo_description" height="$site_logo_height" src="$site_logo" width="$site_logo_width" />
我想知道我的自定义插件portlet中变量$site_logo
的值。
我正在显示列表中的所有网站,并希望显示除网站名称之外的公共和私人网页的不同徽标。
任何指针都会有所帮助。
由于
答案 0 :(得分:4)
基本上,liferay会显示ThemeDisplay对象的图像徽标。
我试着查看ServicePreAction.java
themeDisplay
对象准备的地方,我在下面找到了对你有帮助的事情。
使用下面的代码,您可以为任何可以设置为html图片代码的网站的公共或私人网页获取logourl
。
LayoutSet siblingLayoutSet = LayoutSetLocalServiceUtil.getLayoutSet(
groupId, isPrivatePages);
if (siblingLayoutSet.isLogo()) {
logoId = siblingLayoutSet.getLogoId();
}
StringBundler sb = new StringBundler(5);
String imagePath=PortalUtil.getPathImage();
sb.append(imagePath);
sb.append("/layout_set_logo?img_id=");
sb.append(logoId);
sb.append("&t=");
sb.append(WebServerServletTokenUtil.getToken(logoId));
layoutSetLogo = sb.toString();
答案 1 :(得分:3)
有一种更简单的方法:
String logoPath = PortalUtil.getPortalURL(themeDisplay) + themeDisplay.getLayoutSetLogo();
答案 2 :(得分:0)
我正在使用Liferay 7.3.1。如果要在主题中使用上载的徽标(公共页面->徽标),请执行以下操作:
在templates/init_custom.ftl
中(如果没有此文件,请创建它)
<#assign logo_img_path = themeDisplay.getLayoutSetLogo()/>
在header.ftl
中或添加文件的任何地方
<img
src="${logo_img_path}"
alt="My logo"
title="My site"
/>
我提供了这个答案,因为可能有人认为有用。