【发布时间】:2010-07-24 16:40:23
【问题描述】:
请用简单的话解释一下什么是CCK计算场?
【问题讨论】:
请用简单的话解释一下什么是CCK计算场?
【问题讨论】:
它是一个 CCK 字段,它提供一个“计算”结果,您可以添加到任何节点。您可以编写自定义 php 代码以从节点或数据库中的任何其他位置获取一些值,并生成结果。假设您在某人输入生日的节点上有一个字段。您可以拥有一个使用 php 自动计算人员年龄的 CCK 计算字段,而无需要求他们输入其他信息:
<?php
$birthday_date = date_make_date($node->field__[0]['value']);
$birthday = $birthday_date->db->parts;
//compute age
$bdayunix = mktime(0, 0, 0, $birthday['mon'], $birthday['mday'], $birthday['year']);
$nowunix = time();
$unixage = $nowunix - $bdayunix;
$age = floor($unixage/ (365 * 24 * 60 * 60));
$node_field[0]['value'] = $age;
?>
代码来源:Timur Gilfanov
drupal.org 上的详细手册页面可以在http://drupal.org/node/126522找到
【讨论】:
计算的 CCK 字段是在保存记录时填写的字段。它是数据库中的实际字段,而不是仅在显示时才计算的字段。
当用户输入他/她的名字和姓氏时,我用它来创建一个 FullName 字段。
计算域的内容可以是您喜欢的任何内容,正如上面 AdamG 所指出的(尽管年龄示例不是一个好的示例,因为除非更新记录,否则年龄将永远不会改变)。您输入自己的 PHP 代码,该代码将在保存记录时执行。
通常您不需要计算 CCK 字段;计算/更改可以在模块或模板中完成。
【讨论】: