伙计们我有这个节点类型 - >电影。这部电影有投影。所以现在我被要求显示电影中的演员数量。我如何通过使用nodeapi实现这一目标?请有人指导通过这个。我对这里的drupal编码很新。这是我到目前为止所做的:
function count_cast_nodeapi(&$node, $op) {
switch ($op) {
case 'update index':
if ($node->type == 'movie') {
$text = '';
$q = db_query('SELECT count(field_movie_cast_nid) FROM content_field_movie_cast ' .
'WHERE nid = %d', $node->nid);
if ($r = db_fetch_object($q)) {
$text = $r->count;
}
drupal_set_message($text);
}
}
}
但我不知道在哪里放这个代码。在哪里保存它。我制作一个模块吗?这个代码甚至是正确的吗?
我也只复制了这段代码。所以我不知道'更新索引'是什么意思。以及谁或什么函数将设置该参数$ op
答案 0 :(得分:1)
我建议你按照解决方案:
更新演员数量的代码可以按照以下方式进行:
function count_cast_nodeapi(&$node, $op) {
switch ($op) {
case 'update':
case 'insert':
if ($node->type == 'movie') {
$result = db_result(db_query('
SELECT count(field_movie_cast_nid) cnt
FROM {content_field_movie_cast}
WHERE nid = %d
', $node->nid));
$node->field_movie_cast_number[0]['value'] = $result->cnt;
}
}
}