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

时间:2014-05-07 12:15:10

标签: liferay liferay-6 graphical-logo

使用portal_normal.vm中的代码

,主题中会显示网站徽标
<img alt="$logo_description" height="$site_logo_height" src="$site_logo" width="$site_logo_width" />

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

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

任何指针都会有所帮助。

由于

3 个答案:

答案 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"
/>

我提供了这个答案,因为可能有人认为有用。