0

我的用户配置文件中的一个字段是节点列表。(此列表是根据站点上的其他数据自动生成的。)目前,它显示如下:

节点

nid1, nid2, nid3

我希望它看起来像这样:

节点

$nid1->标题,$nid2->标题,$nid3->标题

其中每个标题都是指向其节点的链接。做这个的最好方式是什么?我尝试用 l() 生成的链接填充该字段,但 html 被过滤掉了。

另外,当使用 l() 时,有没有办法说:使用 $nid 创建到节点的链接,无论它在运行时恰好位于何处?

4

1 回答 1

0

关于第一个问题:

配置文件列表的字段值通过“check_plain() inprofile_view_field()”运行,因此您只能在加载后在其中获取标记,这使您至少有两个选项,具体取决于您要更改输出的位置:

  1. 实施hook_user()并在“查看”操作中修改 $account->content 数组中的字段值(确保您的模块权重低于配置文件模块的权重,否则这些值将不存在)。

  2. 为使用字段的所有模板添加您自己的预处理功能,并在那里进行调整。乍一看,这些应该如下,但列表可能不完整:

    1. yourModule_preprocess_profile_block()(配置文件模块)
    2. yourModule_preprocess_profile_listing()(配置文件模块)
    3. yourModule_preprocess_user_profile_item()(用户模块)

至于第二个问题:

另外,当使用 l() 时,有没有办法说:使用 $nid 创建到节点的链接,无论它在运行时恰好位于何处?

我不明白您所说的“无论它在运行时位于何处”是什么意思。以下内容未涵盖的任何内容?

l('SomeTitle', 'node/' . $nid)
于 2009-08-28T00:27:43.780 回答