2

私はliferayのカレンダーポートレットのカスタマイズに取り組んでおり、このためのフックを作成しました。

カレンダーイベントに関連付けられているすべての「関連アセット」を、イベントの詳細ビューページではなく、すべてのイベントが表示されるリストページ自体に直接表示したいと思います。

現在、liferayは、イベントをクリックしてそのイベントの詳細を表示した場合にのみ「関連アセット」を表示します。

ここに画像の説明を入力してください

誰か助けてもらえますか?

環境:Liferay 6.1

どうもありがとうサブリナ

4

1 に答える 1

2

あなたはすでにliferayのソースコードを持っていて、フックを作成する方法を知っていると思います。

変更するJSPは、次のパスにあります。

portal-web/docroot/html/portlet/calendar

したがって、クエリを解決するのに役立ついくつかの手順を次に示します。

  1. event_iterator.jspf:を変更する必要がありますrow.addText(event.getTitle(), rowURL);
  2. view_event.jspから取得した次のコードを調整する必要がありますevent_iterator.jspf

    <% 
    AssetEntry layoutAssetEntry = AssetEntryLocalServiceUtil.getEntry(CalEvent.class.getName(), event.getEventId());
    %>
    
    <%-- <liferay-util:buffer> is a tag which stores all that is written inside
         its body in a single variable string, in this case "relatedAssetsLinksBuffer"
    --%>
    
    <liferay-util:buffer var="relatedAssetsLinksBuffer">
        <c:if test="<%= enableRelatedAssets %>">
                <%=event.getTitle() %>
            <div class="entry-links">
                <liferay-ui:asset-links
                    assetEntryId="<%= layoutAssetEntry.getEntryId() %>"
                />
            </div>
        </c:if>
    </liferay-util:buffer>
    
  3. これで、ステップ1の行は次のようになります。row.addText(relatedAssetsLinksBuffer, rowURL);

私はこれを試していませんが、うまくいくか、少なくともクエリを解決するのに役立つと思います。

フックのヒント(将来的に役立つ可能性があります) LiferayはJSPを保存する際の規則に従うため、custom-jspsフック(つまり、liferayのJSPを変更するために作成されたフック)の場合は、特定のJSPを検索して変更するだけです。

例:カレンダーポートレットの最初のページを変更したい。したがって、liferayポートレットの最初のページは常に、この場合は「カレンダー」のポートレット名と同じ名前のフォルダにあるview.jspであり、view.jspには、コンテンツを表示する他のファイルのよう<%@ include />なタグが含まれます。<liferay-util:include />したがって、いつでもview.jspから始めて、先に進むことができます。ちなみに、JSPの名前もほとんどの場合自明です。

お役に立てれば。

于 2012-05-19T06:00:28.903 に答える