2015-10-15 57 views
1

当我在Liferay中创建一个页面(我使用6.2)时,它接收到一个自动生成的友好URL,遵循几条内部规则。Liferay页面友好的URL生成URL

因此,例如,如果我创建了一个名为aaa的页面,它将自动接收/aaa友好的URL。

此外,如果我创建页面“aaa”作为页面xxx,的子项,它将收到相同的/aaa友好URL。

对于搜索引擎优化问题,我需要按照不同的模式创建:parent_friendlyURL + page_friendlyURL

这意味着,如果xxx父页的/xxx友好的URL,它的孩子aaa应该有,而不是仅仅/aaa/xxx/aaa友好的URL。

我搜索了portal.properties选项,但是我找不到任何解决方案。 您是否认为有一个快速的方法来实现这一点,或者我必须通过钩子来完成?

感谢

回答

1

我已经通过LayoutLocalServiceImpl.java后者从LayoutLocalServiceHelper.java自动生成的链接如果用户不能在friendlyURL传看。

因此,您可以采取两种方法。

  1. 您可以通过管理页面简单地编辑页面的friendlyURL。
  2. 您可以编写一个挂钩来包装LayoutLocalService类,如果friendlyURL param为null或空白字符串,请编写自己的逻辑以生成friendlyURL。如果您不确定如何,请参阅此问题:How to replace a function on a Liferay native portlet
+0

如果使用方法2,扩展Liferay的服务包装器'LayoutLocalServiceWrapper'甚至更容易。 [查看Liferay文档](https://dev.liferay.com/develop/tutorials/-/knowledge_base/6-2/overriding-a-portal-service-using-a-hook) –

+0

我不'相信你可以不使用ext插件,并且我会亲自避免使用EXT插件。 –

+0

是的,在问我已经看到助手类之前...我的问题是,如果“有一个快速的方法,或者我应该使用一个钩子?”...阅读你的答案似乎钩是唯一的方法。谢谢。 –