2016-07-06 14 views

Trả lời

1

Lớp học gần nhất với journalContentUtilJournalContentImpl và nó có hầu hết các phương pháp tương tự liên quan đến getContent. Bạn có thể xem mã tại đây JournalContentImpl

+0

'JournalContentImpl' không phải là dịch vụ truy cập trong ngữ cảnh freemarker/vận tốc –

+0

Bạn đã thử với lớp dịch vụ' JournalContent', đúng không ?! – KLajdPaja

1

Để nhúng WebContent trong Liferay 7, trước hết, bạn phải bật serviceLocator trong Pa-nen điều khiển -> Cấu hình -> Cài đặt hệ thống -> Foundation -> FreeMarker Engine -> Biến hạn chế. Ở đó bạn có thể loại bỏ serviceLocator

Bây giờ bạn có thể sử dụng nó ví dụ như trong Mẫu đơn đăng ký hiển thị (Freemarker):

<#assign liferay_ui = taglibLiferayHash["/META-INF/liferay-ui.tld"] /> 

<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 

và sau đó sử dụng journalArticleLocalService để lấy WebContent làm

getArticleContent(long groupId, String articleId, double version, String viewMode, String ddmTemplateKey, String languageId, ThemeDisplay themeDisplay) 
+0

Về mặt kỹ thuật, tôi nghĩ câu trả lời này chính xác hơn tuy nhiên tôi thích câu trả lời từ @ abhishek-suthar vì nội dung sẽ được thêm vào với các điều khiển portlet và nó dễ dàng hơn cho quản trị viên chỉnh sửa. Nếu bạn chỉ muốn thêm html, phương pháp này hoạt động tốt nhất. Chỉ để bổ sung dòng cuối cùng của mã, đây là một ví dụ về cách gọi phương thức '' '<#assign article = journalArticleLocalService.fetchArticle (group_id," FOOTER ")>' '' sau đó '' '$ {journalArticleLocalService.getArticleContent (article, article.getDDMTemplateKey(), "VIEW", locale, themeDisplay)} '' ' – gus3001

4

tôi đã tìm ra cách sửa nội dung web thông qua mẫu ftl tùy chỉnh trong Liferay 7/DXP.

Dưới đây là đoạn code mẫu,

<#assign VOID = freeMarkerPortletPreferences.setValue("portletSetupPortletDecoratorId", "barebone") /> 
<#assign theme_groupID = htmlUtil.escape(theme_display.getCompanyGroupId()?string) /> 
<#assign VOID = freeMarkerPortletPreferences.setValue("groupId", '${group_id}') /> 
<#assign VOID = freeMarkerPortletPreferences.setValue("articleId", "yourarticleid") /> 



     <@liferay_portlet["runtime"] 
     defaultPreferences="${freeMarkerPortletPreferences}" 
     portletProviderAction=portletProviderAction.VIEW 
     instanceId="footercontent" 
     portletName="com_liferay_journal_content_web_portlet_JournalContentPortlet" /> 
     ${freeMarkerPortletPreferences.reset()} 

Hãy chắc chắn rằng ArticleID mà bạn đang cung cấp trong tùy chọn là dưới groupId.Means nhóm/trang web nên chứa WebContent.

+0

Điều này thật tuyệt vời, phù hợp với tôi! Câu hỏi của tôi là, làm thế nào bạn tìm ra cách để làm điều này? Tôi không thể tìm thấy bất kỳ tài liệu nào về cách sử dụng @liferay_portlet ["runtime"] – gus3001

Các vấn đề liên quan