2015-10-14 53 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); 

然後創建分機和部署,並按照同一個克隆的過程,但現在這它會生成文章的副本,以便克隆網站內容的更改不會反映到原始頁面。