2015-10-14 77 views
0

我尝试使用现有网页复制Liferay网页并按照以下步骤复制Liferay网页。复制具有未引用网页内容的Liferay网页

登录到Liferay - >添加(单击加号图像) - >选择页面 - >输入新的页面名称 - >选择任何页面布局 - >选择本页的页面副本 - >选择从下拉菜单中选择一个现有页面 - >添加页面

复制完网页后,我编辑了新网页的内容。编辑完成后,我发现原始网页的网页内容也同时更新。如何我复制Liferay网页而不参考现有的网页内容?我需要在新的页面中有新的内容。我的Liferay版本是6.2 CE GA4。

回答

1

我发现了这个问题的部分解决方案。我必须手动复制每个网页内容,并用新网页中的新内容替换现有内容。

重复每个网页内容,

登录到Liferay的 - >管理 - >内容 - >点击上下各有网页内容箭头图标 - >点击复制选项上

然后更改每一个新内容的标题。(要确定单独重复内容​​)

0

EditLayoutsActionYes,

我已经找到了你想要的克隆这种特定情况下的解决方案如果您更改了克隆页面上Web内容显示portlet中的内容,则该内容不会更改原始页面Web内容。

我都做到了通过分机,

创建一个分机插件,然后复制下面的文件,它包含了需要将网页内容复制为well.Deploy这个内线,再次克隆页面的变化。您必须覆盖包含克隆逻辑的“EditLayoutsAction.java”(包是com.liferay.portlet.layoutsadmin.action)文件。

在UpdateLayout请(ActionRequest里,ActionResponse的)方法,找到下面的代码下找到代码

if (copyLayout != null) { 
       if (copyLayout.isTypePortlet()) { 
        ActionUtil.copyPreferences(
         actionRequest, layout, copyLayout); 

下面的代码复制

long companyId = themeDisplay.getCompanyId(); 
        long ownerId = PortletKeys.PREFS_OWNER_ID_DEFAULT; 
        int ownerType = PortletKeys.PREFS_OWNER_TYPE_LAYOUT; 

        for (String portletId : portletllist) { 

         if(portletId.startsWith("56_INSTANCE")) 
         { 

          javax.portlet.PortletPreferences prefs = PortletPreferencesLocalServiceUtil.getPreferences(companyId, 
            ownerId, 
            ownerType, 
            copyLayout.getPlid(), 
            portletId); 

          String articleId = prefs.getValue("articleId", "1234"); 

          if(!(articleId.equalsIgnoreCase("1234"))){ 

          JournalArticle jArticle=JournalArticleServiceUtil.copyArticle(themeDisplay.getScopeGroupId(), articleId, "0", true, Double.parseDouble("1")); 


          javax.portlet.PortletPreferences newPrefs = PortletPreferencesLocalServiceUtil.getPreferences(companyId, 
            ownerId, 
            ownerType, 
            layout.getPlid(), 
            portletId); 

          newPrefs.setValue("articleId", jArticle.getArticleId()); 


          PortletPreferencesLocalServiceUtil.updatePreferences(ownerId, ownerType, layout.getPlid(), portletId , newPrefs); 

然后创建分机和部署,并按照同一个克隆的过程,但现在这它会生成文章的副本,以便克隆网站内容的更改不会反映到原始页面。