我们如何以编程方式找到站点的站点徽标

Pra*_*h K 0 liferay liferay-6 graphical-logo

使用以下代码从主题中显示站点徽标portal_normal.vm

<img alt="$logo_description" height="$site_logo_height" src="$site_logo" width="$site_logo_width" />
Run Code Online (Sandbox Code Playgroud)

我想知道$site_logo自定义插件 portlet 中变量的值。

我在列表中显示所有站点,并希望显示除​​站点名称之外的公共和私人页面的不同徽标。

任何指针都会有所帮助。

谢谢

Pan*_*iya 5

基本上,liferay 显示来自 ThemeDisplay 对象的图像标志。

我试图寻找在ServicePreAction.java那里themeDisplay对象被准备,我发现下面的东西,这将是对您有所帮助。

使用下面的代码,您可以获得logourl任何站点的公共或私人页面,您可以将这些页面设置为 html 图像标签。

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();
Run Code Online (Sandbox Code Playgroud)