コメントの投稿者とリンク

コメントの投稿者の表示を、ID からニックネーム表示に変更してホームへのリンクを追加します。

takanori

目次

概要[overview]

コメントの フラット化ページ化 によって、それぞれのアイテムを掲示板のように使用できるようになりました。

しかし、コメントの投稿者としては ID のみが表示されていて、しかもその ID にはメンバーのホームへのリンクがされていません。

Display comment creator

そこで、作成者の名前表示 と同様に、コメントの投稿者の名前を表示して、ホームへのリンクを貼るようにします。

カスタマイズ[custom]

それでは、投稿者の名前とホームへのリンクを貼るようにするために plone_templates/viewThreadsAtBottom をカスタマイズします。

カスタマイズする場所は documentByLine の部分です。変更前は以下のようなコードです。:

    <div class="documentByLine"
         tal:define="anonymous_creator python:reply.Creator()=='Anonymous User'">
        <span i18n:translate="label_comment_by">Posted by</span>
        <span tal:content="reply/Creator"
              tal:condition="not:anonymous_creator">Poster Name</span>

この部分を、作成者の名前表示 で修正した document_byline の記述を参考にして、以下のように変更します。 getHomeUrl でメンバーのホームを取得し、 getDispname で表示用の名前を取得しています。:

    <div class="documentByLine"
         tal:define="anonymous_creator python:reply.Creator()=='Anonymous User'">
        <span i18n:translate="label_comment_by">Posted by</span>
        <span tal:condition="not:anonymous_creator"
              tal:define="creator reply/Creator;
                          creator_home python:mtool.getHomeUrl(creator);
                          dispname python:here.getDispname(id=creator);">
            <a href="#" tal:condition="creator_home"
                        tal:attributes="href creator_home"
                        tal:content="dispname">
                Poster Name
            </a>
            <span tal:condition="not: creator_home"
                  tal:content="dispname">
                Poster Name
            </span>
        </span>

上記のように変更すると、このようにコメント投稿者のニックネームが表示され、ホームへのリンクが貼られるようになります。

Display comment creator name and link home

このように表示することにより、コメントを書き込んだ人のプロフィール情報へアクセスしやすくなります。