使用TAL语言在Plone中按用户查找信息

使用TAL语言在Plone中按用户查找信息,plone,zope,Plone,Zope,我已经安装了collective.portlet.tal。 我的目标是通过这个portlet为每个用户显示他自己文件夹中的信息。 现在我想展示一个福克斯的例子:用户名和电子邮件 默认情况下,我有一个portlet,它不显示任何特殊内容: <dl class="portlet portlet${portlet_type_name}" tal:define="portal_state context/@@plone_portal_state; context_state

我已经安装了collective.portlet.tal。 我的目标是通过这个portlet为每个用户显示他自己文件夹中的信息。 现在我想展示一个福克斯的例子:用户名和电子邮件

默认情况下,我有一个portlet,它不显示任何特殊内容:

<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>

如何显示该文件夹的创建者?
如何才能获得该文件夹用户的电子邮件?

您正在查找文件夹的
创建者:

<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用户,则显示用户名。

我在正文部分尝试了您的代码,但没有显示任何内容,只是显示空白,尽管我在成员文件夹中,我应该看到“author\u name”。怎么了?您的
创建者
条目为空;检查
编辑
选项卡以确认。如何设置文件夹的所有权?我的创建者选项卡上有创建者的名称,在本例中是正确的用户名,看起来还可以。该文件夹是用户首次登录时创建的,我在Plone中设置了该选项;
context/listcreator
是否在portlet中显示任何内容?@user840718:那么
context/Creator
也应该可以工作,在这种情况下,作者的
fullname
为空。我将更新答案,改为使用创建者id。