2013-12-11 2 views
2

Привет Я пытаюсь создать собственный шаблон для портлета Asset Publisher, чтобы показать свои статьи базы знаний. Для делать это, мне нужно, чтобы получитьLiferay portal 6.2 - шаблон издателя для показа статей базы знаний

  1. название запись
  2. Содержание Вступление
  3. Дата создания

я могу найти название и дату, но нет никакого способа, чтобы получить содержание. Любая помощь?

## 
## This template can be used to modify the look of a specific 
## application. 
## 
## Please use the left panel to quickly add commonly used variables. 
## Autocomplete is also available and can be invoked by typing "$". 
## 

#if (!$entries.isEmpty()) 
    #foreach ($curEntry in $entries) 
     <div> 
     <p>News 1:<br/> 
     $curEntry.getTitle($locale) <br /> 
     $curEntry.getCreateDate() <br /> 
     $curEntry.getDescription()<br /></p> 
     </div> 
    #end 
#end 

Как вы можете видеть в приведенном выше коде, я попытался «getDescription()», но это не сработает.

ответ

1

$curEntry - это экземпляр AssetEntry, это не статья базы знаний.

Вы можете использовать $curEntry.getClassPK() для извлечения экземпляра статьи базы знаний, используя службу статьи базы знаний.

1

Если вы проверите таблицу AssetEntry в базе данных, столбец описания будет пуст, поэтому вы не получите никаких данных.

Вы можете получить данные активов, используя ниже код:

#foreach ($curEntry in $entries) 
    Title: $curEntry.getTitle($locale)<br/> 
    Published date: $entry.getPublishDate()<br/> 
    Summary: **$entry.getAssetRenderer().getSummary($locale)** <br/> 
#end 

Теперь, как выше код работает. Резюме, которое мы хотим, должны лежать в классе JournelArticle (таблица). Интерфейс AssetRender реализуется классом JournalArticleAssetRenderer. Этот класс наследует метод getSummary (Locale locale). Этот метод содержит объект класса JournetArticle.

JournelContent obj; 
public String getSummary(Locale locale) { 
    return obj.getDescription(locale); 
} 
0

Вы можете использовать следующий код:

#if (!$entries.isEmpty()) 
<div class="news"> 
#foreach ($entry in $entries) 
#set($renderer = $entry.getAssetRenderer()) 
#set($className = $renderer.getClassName()) 
#if($className == "com.liferay.portlet.journal.model.JournalArticle") 
#set($journalArticle = $renderer.getArticle()) 
#set($document = $saxReaderUtil.read($journalArticle.getContent())) 
#set($rootElement = $document.getRootElement()) 
#set($xPathSelector = $saxReaderUtil.createXPath("dynamic-element[@name='image']")) 
#set($image = $xPathSelector.selectSingleNode($rootElement).getStringValue()) 
#set($link = $renderer.getURLViewInContext($renderRequest, $renderResponse, '')) 
<div class="new""> 
<h1 class="title">$entry.getTitle($locale)</h1> 
<div"><img src="$image" ></div> 
<a href="$link">Read More</a>   
</div> 
#end 
#end 
</div> 
#end 
Смежные вопросы