1

好的,假设我有一个基本的人口统计内容类型(客户端),我将其保存为节点。

我需要为我们偶尔需要使用的外部数据库创建一个密钥。

我希望 Drupal 获取客户端内容类型中收集的三个字段的片段,并将它们连接到单个字段中以保存在客户端内容类型中。理想情况下,这应该在我创建一个新的(客户端)节点时完成。

新字段应包含以下名字的前 3 个字母姓氏的前 3 个字母和社会安全号码的最后 4 位数字。

例如
名字:John
姓氏:Doe
SSN:123-45-6789

应该创建一个新字段,我们称之为 fk_database。使用上面的示例字段 >created 将是 -> johdoe6789

这可以通过规则模块完成,还是我应该以不同的方式处理?如果我需要通过 PHP 脚本执行此操作,那么应该在 Drupal 结构中的哪个位置添加?

4

2 回答 2

1

最简单的方法可能是使用Computed Field模块,它几乎是为您想要做的事情而构建的:

Computed Field 是一个非常强大的 CCK 字段模块,可让您将自定义“计算字段”添加到您的内容类型。这些计算字段由您通过 PHP 代码定义的值填充。您可以利用 Drupal 可用的任何内容,包括其他字段、当前用户、数据库表,等等。

如果您确实需要在代码中执行此操作,请查看hook_entity_presave()哪个可能是运行代码的最佳位置。

于 2012-08-07T15:41:31.627 回答
-2

如果您想即时构建自定义字段,我个人会构建一个自定义模块来处理此问题并使用节点 API 来处理自定义字段?

模块可以在“根”的模块目录中创建,也可以在站点 > 所有 > 模块中创建

您必须在站点构建>模块下的后端打开它才能启用它

您将能够连接到 API 并通过案例语句处理请求,例如

function hook_node_load($node, $types) {
    //do something on node load
}

function hook_node_update($node) {
    //do something on node update
}

function hook_node_insert($node) {
    //do something on node insert
}
于 2012-08-07T15:40:58.450 回答