好吧,假设我有一个基本的人口统计内容类型(客户端),我将其保存为节点。
我需要为我们偶尔需要使用的外部数据库创建密钥。
我希望Drupal在客户端内容类型中收集三个字段的片段,并将它们连接到一个字段中以保存在Client内容类型中。理想情况下,这应该在我创建新的(客户端)节点时完成。
新字段应包含以下内容 名字的前3个字母 姓氏的前3个字母 社会安全号码的最后4位数。
例如
名字:约翰 姓氏:Doe
SSN:123-45-6789
应创建一个新字段,我们称之为fk_database。使用上面的示例,>创建的字段将是 - > johdoe6789
这可以通过规则模块完成,还是应该以不同的方式处理?如果我需要通过PHP脚本执行此操作,那么究竟应该在Drupal结构中添加它?
答案 0 :(得分:1)
最简单的方法可能是使用Computed Field模块,它几乎是为了你想要做的而构建的:
Computed Field是一个非常强大的CCK字段模块,可让您为内容类型添加自定义“计算字段”。这些计算字段使用您通过PHP代码定义的值填充。您可以使用Drupal可用的任何内容,包括其他字段,当前用户,数据库表,您可以为其命名。
如果您确实需要在代码中执行此操作,请查看hook_entity_presave()
,这可能是运行代码的最佳位置。
答案 1 :(得分:-2)
我个人会构建一个自定义模块来处理这个问题并使用节点API来处理自定义字段(如果你想动态构建它们)?
模块可以在'root'上的modules目录中创建,或者它们应该在站点>中创建。全部>模块
您必须在网站建设>下的后端打开它;启用它的模块
您将能够通过案例陈述(例如
)挂钩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
}