2

WCM Parsys コンポーネントを使用して、AEM 6 で別の特定のコンポーネントの複数のインスタンスの順序付けられていないリストを作成するにはどうすればよいですか?

リストがulタグでラップされていること、各内部コンポーネントがタグであること、またはの周りにli余分なタグがラップされていないこと、および各内部コンポーネントのプロパティが作成者モードで編集できることを確認する必要があります。divulli

(これまでの私の試みでは、余分なdivタグが大量にあり、既に構築されたレイアウトとセマンティクスが台無しになっているかdecorationTagName='li'、コンポーネントにエディターボックスを使用している場合、作成者モードですべてが重なり合っているため、最上位のコントロールのみを編集できます)。

4

4 に答える 4

2

OOTB parsys コンポーネントは div を使用して内部コンポーネントをラップするため、完全に異なる構造が必要な場合は、既存の parsys を拡張し、別のラッピング マークアップを使用するカスタム parsys を使用する必要があります。

于 2014-08-04T16:23:19.333 に答える
1

私が通常行うことは、作成者モードと公開/プレビュー モードを切り替える独自のコンテナー コンポーネントを作成することです。たとえば、作成者モードでは、div を使用して通常の parsys で子コンポーネントを表示し、プレビュー/公開モードで正しいマークアップのみをレンダリングします。

<c:choose>
    <c:when test="${isEditMode}">
        <cq:include path="par" resourceType="foundation/components/parsys" />
    </c:when>
    <c:otherwise>
        <ul>
            <c:forEach items="${m.components}" var="comp">
                <li><cq:include path="${comp.path}" resourceType="${comp.resourceType}" /></li>
            </c:forEach>
        </ul>
    </c:otherwise>
</c:choose>

一方m、はコントローラでありcomponents、子のリストですResource

于 2014-08-04T11:00:46.213 に答える
1

parsys 内のコンポーネントがリスト項目コンポーネントである (そしてその方法でのみ使用される) と仮定すると、コンポーネントをcq:htmlTag/cq:tagNameプロパティでラップする要素をオーバーライドし、parsys に<ul>要素をレンダリングさせることができます。

詳細については、ComponentDivを参照してください。

于 2014-08-05T04:09:50.677 に答える