2012-03-15 142 views
1

我有一个Portlet,其中将Portlet添加到页面的管理员必须对其进行配置(执行一些数据库配置,以便Portlet工作)。这是在首选项(编辑模式)中完成的只有管​​理员才能看到。它迄今为止效果很好,在管理员完成首选项后,所有用户都可以看到Portlet。我只有一个问题:其他用户覆盖的用户的个人价值观等等。所以我在Liferay论坛上发现了如何使Portlet保存其用户特定的首选项。它适用于但如果我将Portlet配置为管理员,那么只有我可以看到正在工作的Portlet,其他用户才会看到未配置的Portlet。有没有办法在编辑模式下将Portlet配置为管理员,这样Portlet可以为所有用户工作,并保留Liferay的用户特定的Portlet首选项功能?Liferay:用户特定的portlet首选项

+2

阅读本subjet:如何保存到portlet用户信息?] [1] [1]:http://stackoverflow.com/questions/7015508/liferay-how-to-save- to-portlet-user-information/7015682#7015682 – 2012-03-15 19:37:58

+0

虽然frant.hartm已经回答了您的问题,但Julien的解决方案实际上是一项解决方案,可以帮助您实现您的目标。 – Jonny 2012-03-16 08:09:07

+0

@Jonny是的,我已经尝试过,工作正常,我认为即时通讯离开它,因为它现在在门户网站的用户数量实际上非常小,所以它是我的情况的完美解决方案。 – Kiesa 2012-03-16 08:33:16

回答

3

您必须了解偏好的范围。

要么你让他们的门户宽,这意味着基本上用于所有用户PortletPreferences的同一实例,

,或者你让他们的用户特定的每个用户都有自己的实例。

因此,您不能拥有由管理员设置的部分首选项 - 门户网站范围和用户特定的其他部分用于存储用户的数据。

您有几种选择取决于你是否想改变他们作为管理员后:

如果不是那么portlet.xml中定义的首选项的默认值。

如果是,那么你必须使它们成为门户网站并将用户数据存储在其他地方(例如数据库)。

如果您需要存储更大量的数据,第二种解决方案会更好,因为首选项会被序列化为XML并作为文本存储在一列中。例如。在oracle数据库上,您限制为4000个字符。

0

我想你可以用liferay的自定义“配置模式”(portlet标题栏中的小扳手图标)做到这一点。然后可以使用编辑模式来存储用户特定的偏好。