2016-07-06 22 views

risposta

1

La classe più vicina a journalContentUtil è JournalContentImpl e ha quasi gli stessi metodi relativi a getContent. È possibile vedere il codice qui JournalContentImpl

+0

'JournalContentImpl' non è un servizio accessibile nel contesto di freemarker/velocità –

+0

Hai provato con la sua classe di servizio' JournalContent', giusto ?! – KLajdPaja

1

Per l'incasso WebContent in Liferay 7, prima di tutto, è necessario attivare ServiceLocator nel Pannello di controllo -> Configurazione -> Impostazioni di sistema -> Fondazione -> FreeMarker motore -> Variabili limitati. C'è possibile rimuovere ServiceLocator

Ora si può utilizzare ad esempio nella domanda di visualizzazione Template (Freemarker):

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

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

e quindi utilizzare il journalArticleLocalService per recuperare il WebContent facendo

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

Tecnicamente, penso che questa risposta sia più accurata, tuttavia mi piace la risposta di @ abhishek-suthar poiché il contenuto verrà aggiunto con i controlli del portlet ed è più semplice per l'amministratore modificare. Se vuoi solo aggiungere l'html, questo metodo funziona al meglio. Solo per completare l'ultima riga di codice, questo è un esempio di come chiamare il metodo '' '<#assign article = journalArticleLocalService.fetchArticle (group_id," FOOTER ")>' '' then '' '$ {journalArticleLocalService.getArticleContent (articolo, article.getDDMTemplateKey(), "VIEW", locale, themeDisplay)} '' ' – gus3001

4

I hanno trovato il modo di correggere il contenuto web tramite un modello ftl personalizzato in Liferay 7/DXP.

Di seguito è riportato il codice di esempio,

<#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()} 

Assicurarsi che l'articleId che si sta fornendo nelle preferenze è sotto il gruppo/sito groupId.Means dovrebbe contiene il webcontent.

+0

Questo è fantastico, lavora per me! La mia domanda è, come hai capito come farlo? Non ho trovato alcuna documentazione su come usare @liferay_portlet ["runtime"] – gus3001