作成者の名前表示

アイテムの作成者の表示を、ID からニックネーム(またはフルネーム)を表示するように変更します。

takanori

目次

概要[overview]

plone ではアイテムを作成した人の ID を作成者として表示します。

しかし、ある程度の人数が集まるサイトだと、ID は社員(会員)番号などで一括で取得してしまったりするので、番号が表示されても誰だかわからずあまりうれしくありません。

Displauy creator id

そこで、プロフィール のところで設定したプロフィール情報を元に、作成者としてニックネームまたはフルネームを表示するようにします。

ちなみに、plone 2.1 では ID ではなくフルネームが作成者として表示されるようになりました。

Display creator name in plone 2.1

カスタマイズ[custom]

それでは、作成者としてニックネームまたはフルネームを表示するように設定します。

作成者の部分を表示しているのは /portal_skins/plone_content/document_byline です。 この Page Template をカスタマイズ用にコピーします。

表示用の名前(ニックネーム、ニックネームが設定されてなければフルネーム)を取得するためには、プロフィール表示ポートレット のところで説明した getDispname Python Script を使用します。

まず、作成者として表示する文字列を取得するために、最初の tal:define に getDispname を実行する部分を追加します。:

    <div class="documentByLine"
         metal:define-macro="byline"
         i18n:domain="plone"
         tal:condition="python: site_properties.allowAnonymousViewAbout or not isAnon"
         tal:define="creator here/Creator;
                     creator_home python:mtool.getHomeUrl(creator);
                     dispname python:here.getDispname(id=creator);">

そして、作成者として今までは creator を表示していた部分を dispname を表示するように書き換えます。:

    <a href="#" tal:condition="creator_home"
       tal:attributes="href creator_home"
       tal:content="dispname">
      bob
    </a>

    <span tal:condition="not: creator_home"
          tal:content="dispname">
      bob
    </span>

このように書き換えると、作成者としてニックネームまたはフルネームが表示されるようになります。

Display creator name