如何設置由programmatically.PFA圖像的文件夾,文件的根文件夾,媒體展示portlet的一個 怎麼點DAM顯示portlet的根文件夾編程
回答
Liferay的主版本
你問題標記爲Liferay 6 and Liferay 7。這兩個版本有很大的不同。此答案假定您使用的是Liferay 6.x,因爲您詢問的是DDM portlet,而不是OSGI模塊。
編程設置,輸入資源默認爲您選擇的文件夾需要您在文檔庫展示 Portlet創建一個JavaServer頁面掛鉤的JSP。我將在詳細介紹之前簡要介紹如何創建JSP鉤子。
創建掛鉤
從你的命令行終端,瀏覽到您的插件SDK的鉤子文件夾。要創建鉤子項目,您必須執行創建腳本。下面是執行該腳本遵循格式:
create.[sh|bat] [project-name] "[Hook Display Name]"
在Linux和Mac OS X,你會進入一個類似於在這個例子中的命令:
./create.sh doc-lib-disp-hook "Document Library Display Hook"
在Windows上,您需要輸入類似於此示例中的命令:
create.bat doc-lib-disp-hook "Document Library Display Hook"
的Liferay IDE的新建項目嚮導和創建腳本生成插件SDK的鉤子鉤夾項目。插件SDK自動將「-hook」附加到您的項目名稱。
您需要安裝Apache ANT才能正常工作。如果您需要安裝它,請參考以下文檔。
一旦鉤創建開放在你的Liferay IDE或Liferay的開發者工作室(或者Eclipse)。
- 在IDE中點擊右下方文件(左上角)
- 從現有的源
- 雙擊該DOC-LIB-DISP鉤選擇Liferay的插件項目的向下箭頭文件夾在您的插件的SDK Hook目錄中打開。
您應該看到與此類似的內容(使用不同的名稱)。
覆蓋JSP
現在你已經成功創建了一個鉤插件,我們需要重寫必要的文件。有兩個特別的文件,我們需要爲這個鉤子
- HTML /門戶/ document_library_display/configuration.jsp
- HTML /門戶/ document_library/init.jsp
我們既需要文件從邏輯上遍歷這個例子,儘管我們只需要實際覆蓋其中的一個。
要覆蓋JSP的執行以下步驟
- 在您的META-INF文件夾中創建名爲custom_jsp
- 打開了Liferay的-hook.xml新目錄概述模式
- 單擊綠色加號(在定製JSP標籤的右側)
- 搜索上面列出的兩個文件(將URL複製並粘貼到窗口中),然後單擊保存。
您現在會注意到您具有以下目錄結構。
讓我們先打開configuration.jsp。這是生成您拍攝屏幕截圖的GUI的代碼。找到以下代碼塊。
<aui:field-wrapper label="root-folder">
<div class="input-append">
<liferay-ui:input-resource id="rootFolderName" url="<%= rootFolderName %>" />
<aui:button name="openFolderSelectorButton" value="select" />
<%
String taglibRemoveFolder = "Liferay.Util.removeFolderSelection('rootFolderId', 'rootFolderName', '" + renderResponse.getNamespace() + "');";
%>
<aui:button disabled="<%= rootFolderId <= 0 %>" name="removeFolderButton" onClick="<%= taglibRemoveFolder %>" value="remove" />
</div>
</aui:field-wrapper>
在該塊內部,您將看到您希望設置的根文件夾元素。
<liferay-ui:input-resource id="rootFolderName" url="<%= rootFolderName %>" />
正如你可以看到該文件夾的網址已經被默認設置爲可變rootFolderName。我們需要找到變量首先被初始化的位置。
我們根本不需要修改這個文件。我已經包含它並打開它,以便您可以按照邏輯進行操作。
如果您發現rootFolderName沒有在configuration.js P檔的任何地方進行初始化。因此,我們需要調查init.jsp文件,因爲它是包含在頁面頂部的文件。如果你打開這個文件,你會注意到下面的塊。
String portletResource = ParamUtil.getString(request, "portletResource");
if (layout.isTypeControlPanel()) {
portletPreferences = PortletPreferencesLocalServiceUtil.getPreferences(themeDisplay.getCompanyId(), scopeGroupId, PortletKeys.PREFS_OWNER_TYPE_GROUP, 0, PortletKeys.DOCUMENT_LIBRARY, null);
}
long rootFolderId = PrefsParamUtil.getLong(portletPreferences, request, "rootFolderId", DLFolderConstants.DEFAULT_PARENT_FOLDER_ID);
String rootFolderName = StringPool.BLANK;
if (rootFolderId != DLFolderConstants.DEFAULT_PARENT_FOLDER_ID) {
try {
Folder rootFolder = DLAppLocalServiceUtil.getFolder(rootFolderId);
rootFolderName = rootFolder.getName();
}
catch (NoSuchFolderException nsfe) {
}
}
這段代碼基本上是說我們要初始化rootFolderName爲空。但是,如果rootFolderId由
- Portlet首,或
- 請求設置高於0或者參數
然後我們會進行相應的設置rootFolderName。
結論
如果你想rootFolderName默認情況下,您可以在幾件事情編程設置爲您選擇的文件夾。最容易做的事情是獲得該文件夾的ID和修改這樣
long folderIdConstant = 999999L; // place folder id here
long rootFolderId = PrefsParamUtil.getLong(portletPreferences, request, "rootFolderId", folderIdConstant);
這將編程設置默認的根文件夾中的代碼。現在就構建並部署。
- 1. 顯示從根文件夾到子文件夾的請求
- 2. Netbeans仍顯示根文件夾
- 3. 以編程方式獲取按顯示項目顯示的portlet的portlet分配顯示動態視圖
- 4. 顯示訪問文件夾的進程
- 5. 如何在DocumentLibrary顯示portlet中設置特定的文件或文件夾顯示liferay
- 6. htaccess重寫文件夾url以顯示根文件夾中的內容
- 7. 使用Google Drive API - 如何顯示根文件夾中的文件夾列表
- 8. 文件不會顯示在文件夾中,但會顯示在根目錄中?
- 9. jquery文件樹 - 如何顯示根文件夾圖標?
- 10. 顯示子域根目錄下的域文件夾的內容
- 11. 顯示所有文件和每個文件的根文件夾遞歸
- 12. 將modx站點從子文件夾移動到根文件夾
- 13. 碼頭顯示從Eclipse根文件夾中的index.html
- 14. 顯示空文件夾
- 15. Apache文件夾未顯示
- 16. 顯示文件夾項目
- 17. HTML顯示文件夾
- 18. jFilechooser顯示文件夾
- 19. 我怎麼能測試lib文件夾
- 20. OOP怎麼辦類 「文件夾」
- 21. DDMS Android文件資源管理器顯示點文件夾
- 22. 機器人怎麼辦我克里特文件夾,並在屏幕上顯示
- 23. PSQL你怎麼pg_dumpall到遠程服務器上的文件夾
- 24. 我怎麼能對文本文件的標題顯示時間
- 25. 根文件夾的asp.net處理程序
- 26. 爲什麼團隊基礎爲沒有子文件夾的文件夾顯示「+」
- 27. AEM CQ 6.1 DAM文件夾返回0兒童發佈
- 28. .git文件夾顯示爲.git文件?
- 29. 文件與根文件夾
- 30. 文件夾sql編程
我有一個很好的指針,但會一直等到你採取行動http://meta.stackexchange.com/questions/141823/why-is-cross-posting-wrong-on-an-external-site –