フラット化

コメントはネストできるので、これをネストできずフラットになるようにします。

takanori

目次

概要[overview]

plone では最初からアイテムにコメントがつけられる機能(discussion)が存在します。

このコメントがつけられる機能を使用して議論してもらうためには、以下の点が気になります。

そこで、コメントに対してのコメントを書き込めないようにし、結果的にコメントをフラットにします。

フラット化[flat]

コメントをフラットにするためには、そもそもコメントにぶらさがった(ネストした)コメントを作成できなくすればよいのです。

そこで、各コメントの下の「これに返答」ボタン(赤丸で囲んだ部分)を表示しないようにします。

Add comment to comment

このボタンを表示しないようにするために plone_templates/viewThreadsAtBottom をカスタマイズします。

カスタマイズする場所は、下記のコメントの本文を表示している場所です。:

    <div class="commentBody"
         tal:content="structure reply/CookedBody">
         This is the body text of the comment.
    </div>

その下にある、<form name="reply" から </form> までが これに返答 ボタンを表示している部分なので、この部分をまとめて削除します。:

    <form name="reply"
          action="discussion_reply_form"
          method="post"
          style="display: inline;"
          tal:attributes="action string:${reply/absolute_url}/discussion_reply_form"
          tal:condition="python:checkPermission('Reply to item', reply)">

        <input class="standalone"
               type="submit"
               value="Reply to this"
               i18n:attributes="value"
               />
    </form>

すると下記のように、各コメントの下の これに返答 ボタンが表示されないようになります。

Disable add comment button

また、コメントのみを表示するときに使用される plone_content/discussionitem_view についてもカスタマイズを行います。

ここでは、ボタンとネストしたコメントが表示されないようにするために、下記の行を削除します。:

    <metal:block use-macro="here/viewThreadsAtBottom/macros/discussionView" />

以上で、コメントのネストがされずフラットなコメントしか作成できなくなります。なお、すでにネストされたコメントが存在する場合はどうにもならないので、削除するが気にしないようにしてください。