2011-09-15 1 views
1

cmsu:simpleSearchとcmsu:searchResultSnippetリンクが正しく表示されません。MAGNOLIA CMS - cmsu:simpleSearchとcmsu:searchResultSnippetリンクが正しく表示されず、日付を判読可能な形式に変換できない

これは私のコードです:

<c:if test="${!empty param.contentSearchPattern}"> 
    <h1>xx results for "${fn:escapeXml(param.contentSearchPattern)}"</h1> 
    <ol> 
     <cmsu:simpleSearch query="${param.contentSearchPattern}" var="results" startLevel="1" /> 
     <c:if test="${empty results}"> 
      <p>No results</p> 
     </c:if> 
     <c:forEach var="node" items="${results}"> 
      <li> 
       <h2><a href="${pageContext.request.contextPath}${node.handle}.html">${node.title}</a></h2> 
       <p class="pageResultUrl">drintranet-testdev${node.handle}.html</p> 
       <p><cmsu:searchResultSnippet query="${param.contentSearchPattern}" page="${node}" chars="120"/></p> 
      </li> 
     </c:forEach> 
    </ol> 
</c:if> 

だから、これはテキストだけであれば、それは正しくスニペットを表示します、のは、私が検索パターンに一致するページを持っているとしましょう。しかし、パターンにマッチするテキストがリンクの場合、リンクされていない ""などのスニペットが表示されます。

私は同じフォーマットを維持したいと考えています。すなわち、テキストがリンクでもある場合は、そのリンクでテキストを表示します。


cmsu使用する場合にも、:simpleSearchとcmsu:searchResultSnippetを私はページ/記事が作成された日付を表示したいです。ここで

はコードです:

<c:if test="${!empty param.contentSearchPattern}"> 
    <h1>xx results for "${fn:escapeXml(param.contentSearchPattern)}"</h1> 
    <ol> 
     <cmsu:simpleSearch query="${param.contentSearchPattern}" var="results" startLevel="1" /> 
     <c:if test="${empty results}"> 
      <p>No results</p> 
     </c:if> 
     <c:forEach var="node" items="${results}"> 
      <li> 
       <h2><a href="${pageContext.request.contextPath}${node.handle}.html">${node.title}</a></h2> 
       <p class="pageResultUrl">drintranet-testdev${node.handle}.html</p> 
       <p><cmsu:searchResultSnippet query="${fn:escapeXml(param.contentSearchPattern)}" page="${node}" chars="120"/></p> 
       <p>Creation Date: ${node.metaData.creationDate}</p> 
      </li> 
     </c:forEach> 
    </ol> 
</c:if> 

しかし、それは作成日の行を返します。

作成日: java.util.GregorianCalendar [時間= 1307354223649、真areFieldsSet =、最初のDAYOfWeek(最初のDAYOfWeek)がtrueの場合はtrue、lenient = falseの場合はfalse、zone = sun.util.calendar.ZoneInfo(初期値はGMT + 01:00、オフセット= 3600000、dstSavings = 0、useDaylight = false、transition = 0、lastRule = null) = 2、minimalDaysInFirstWeek = 4、ERA = 1、YEAR = 2011、MONTH = 5、WEEK_OF_YEAR = 23、WEEK_OF_MONTH = 2、DAY_OF_MONTH = 6、DAY_OF_YEAR = 157、DAY_ OF_WEEK = 2、DAY_OF_WEEK_IN_MONTH = 1、AM_PM = 0、HOUR = 10、HOUR_OF_DAY = 10分= 57、SECOND = 3ミリ秒= 649、ZONE_OFFSET = 3600000、DST_OFFSET = 0]

私はしようとしています、どのようにこの権利を取得する任意のアイデアを

<cms:ifNotEmpty nodeDataName="date"> 
    <cms:out nodeDataName="date" datePattern="MM/dd/yyyy hh:mm a" var="eventDate"/> 
    </cms:ifNotEmpty> 

しかし、このpageDateとして機能していないが、私が想定しnodeDataNameではありません。この種のコードを使用して、人間が読める形式にこの日付に変換するには?

答えて

0

SearchResultSnippetTagは、それが最初の120個の文字にあります< >タグを表示した位置であなたを残すことを望んでいないとしても</>タグを表示せず、故意にHTMLをneuters(これはよく、またはかもしれません最初の120文字以内でなければなりません)。これをうまく動作させるには、最初の120文字で開いたタグをすべて追跡して、そのクラスを書き直す必要があります。これにより、対応する終了タグが出力されるようにすることができます。

< CMS:アウトnodeDataName = "mgnl:のCreationDate" contentNodeNameこのよう>タグアウト:日付の問題については

は、wikiに this pageごとに、それはあなたが< CMSを使用することができるはずのように見えます= "MetaData"/>

1

代わりに<p>Creation Date: ${node.metaData.creationDate.time}</p>を試してみてください。しかし、それがうまくいくかどうかわかりません。 node.metaData.creationDateは、タイプがjava.util.Calendarで、java.util.Dateではありません。 まず、カレンダーから日付に変換します。

+0

お返事ありがとうございます。申し訳ありませんがあなたの答えを確認することができないため、この質問はかなり古い&私は今他のものに取り組んでいます。 A. –

関連する問題