Liferay 将Portlet标题编辑功能导入Portlet主体

Liferay 将Portlet标题编辑功能导入Portlet主体,liferay,liferay-6,Liferay,Liferay 6,正如标题所提到的,我想知道是否有一种相对简单的方法可以使用该功能在portlet中编辑portlet标题 也就是说,当单击portlet中包含的范围时,它将变得可编辑(通过输入框),以便更新portler首选项 这可能是从头开始就可以做到的,但是由于Liferay中已经存在该功能,因此可能有一种方法可以利用它。是的,您可以通过一个简单的ajax调用更新Portlet标题 PFB示例jQuerycode和用于更新Portlet标题的必需参数 $.ajax({ url: "/

正如标题所提到的,我想知道是否有一种相对简单的方法可以使用该功能在portlet中编辑portlet标题

也就是说,当单击portlet中包含的范围时,它将变得可编辑(通过输入框),以便更新portler首选项


这可能是从头开始就可以做到的,但是由于Liferay中已经存在该功能,因此可能有一种方法可以利用它。

是的,您可以通过一个简单的ajax调用更新
Portlet
标题

PFB示例
jQuery
code和用于更新Portlet标题的必需参数

$.ajax({
            url: "/c/portlet_configuration/update_title",
            method: "POST",
            data: { p_auth:'vcYb1DvX',
                    p_l_id:'10187',
                    portletId:'56_INSTANCE_hbJBswwx0rYg',
                    title:'My Webcontent'
            },
            success: function(data){

            },
            error: function(jqXHR, textStatus, errorThrown) {
            }
      }); 

听起来你想要一个“就地编辑器”。对于YUI(它是AlloyUI的底层JS库,捆绑在Liferay中),我得到的第一个结果是,但是使用这个搜索词,您将能够找到最适合您需要的组件。

我不清楚您的问题。不过,我还是在回答你的问题。 在我的项目中,我们提供了自定义标题,其中我们将通过使用以下代码在我的首选项页面的文本框中输入名称来更新portlet的自定义portlet标题: //用action方法编写此代码

PortletPreferences preferences = actionRequest.getPreferences();
String portletTitle= actionRequest.getParameter("portletTitle"); (title entered in text box)
preferences.setValue("portlet-setup-title-en_US",portletTitle); // update the portlet title      of  the portlet
preferences.setValue("portlet-setup-use-custom-title","true");// setting to receive custom title
preferences.store(); //stores the preference

希望这对您有所帮助

您使用的是什么版本的Liferay?很抱歉没有在前面提到,我使用的是Liferay 6.2 CE。是的,类似的东西,再加上serverResource,是我作为一种解决方法实现的。我试图实现的是使用Liferay的内置功能,即将标题克隆为portlet中的另一个元素,以利用已内置的UI编辑标题和相应的权限检查。是的,是这样的,但它利用了Liferay的权限检查。我最终从头开始构建了权限检查和JS代码,但检查用户是否是portlet的所有者似乎并不简单,因为检查布局所有者并没有按预期工作。添加权限检查意味着一些伪代码,如:
if(hasPermission){generate in place editor with content}否则{生成纯文本内容}
所以这不是真正的火箭科学。Liferay有一个权限检查器,它接受可配置的权限,例如绑定到您找到的基于角色的访问控制。我不确定你还需要什么,这样你就必须自己动手了是的,这就是我目前实现它的方式,问题在于检查后端的权限。我想检查当前用户是portlet的所有者还是站点管理员:
if(renderRequest.isUserInRole(“管理员”)| | | PortletKeys.PREFS_owner_TYPE_user==portalUtil.getUserId(renderRequest)){hasPermission=true;}
。不幸的是,我无法获得与添加portlet的用户匹配的所有者id。