2

collective.portlet.talをインストールしました。私の目標は、各ユーザーに対して、このポートレットによって自分のフォルダーにあるユーザーの情報を表示することです。Foxの例を表示したいのは、ユーザー名と電子メールです。

デフォルトでは、特別なことを何も表示しないこのポートレットがあります。

<dl class="portlet portlet${portlet_type_name}"
tal:define="portal_state context/@@plone_portal_state;
            context_state context/@@plone_context_state;">

<dt class="portletHeader">
    <span class="portletTopLeft"></span>
    <span>
       Header
    </span>
    <span class="portletTopRight"></span>
</dt>

<dd class="portletItem odd">
    Body text
</dd>

<dd class="portletFooter">
    <span class="portletBotomLeft"></span>
    <span>
       Footer
    </span>
    <span class="portletBottomRight"></span>
</dd>

この行を本文に挿入してフォルダーのユーザー名を取得しましたが、訪問者の名前が返されます。私が管理者の場合は「admin」と表示され、メンバーの場合はメンバーの名前が表示されます...など。

<p tal:content="user/getUserName"></p>

そのフォルダの作成者を表示するにはどうすればよいですか?そのフォルダのそのユーザーの電子メールを取得するにはどうすればよいですか?

4

1 に答える 1

2

フォルダの を探していCreatorます:

<p tal:define="creator context/Creator;
               mtool context/@@plone_tools/membership;
               author python:mtool.getMemberInfo(creator)"
   tal:content="python:author and author['fullname'] or creator">Author name</p>

上記のスニペットは、作成者のユーザー ID (デフォルトではコンテンツ オブジェクトの所有者) を検索し、メンバーシップ ツールを使用してそのユーザーのメンバー情報オブジェクトを検索します。次に、ユーザーのフルネームを表示するか、作成者が Plone ユーザーでない場合はユーザー ID のみを表示します。

于 2012-09-20T10:17:26.897 に答える