[英]drupal 6: how to write a query to insert into the content type
当用户想要打开特定页面时,我已经创建了一个名为历史的内容类型,该内容历史应该以新行插入。
我使用的是规则,但卡在查询中。
我编写了一个简单的查询来插入甚至可以正常工作的数据,但是在视图中获取数据时却没有出现问题。
统计模块不能帮助您吗? “它计数多少次,以及从何处查看您的每个帖子”。
嗯,在您的观看记录中使用内容类型似乎有点奇怪,但我会继续讲下去。 因此,您希望历史记录在每次查看特定页面时都创建一个新节点,对吗? 您将必须为此使用自定义模块。
您可以编写一个实现hook_init()的模块来执行以下操作:
<?php
MODULENAME_init() {
if (drupal_get_path_alias($_GET['q']) == 'the_path_alias_of_your_page') {
// create your node here, see http://api.drupal.org/api/function/node_submit/6 for example
// then save it using node_save($node)
}
}
显然,这确实很粗糙,但这会让您入门。
您确定不能只使用Google Analytics(分析)等吗?
创建日志内容类型的好方法。 只需创建具有以下列的简单表:nid(节点ID),已访问(访问日期),uid(用户ID,用于来宾= 0)
在您的模块中添加以下内容:
/**
* Implementation of hook_exit().
*/
function YOURMODULENAME_exit() {
drupal_bootstrap(DRUPAL_BOOTSTRAP_PATH);
if ((arg(0) == 'node') && is_numeric(arg(1)) && (!arg(2))) {
global $user;
$node = node_load(arg(1));
if (in_array($node->type, array('some_content_types'))) {
db_query('INSERT INTO {somelogtable} VALUES(%d, %d, %d)', $node->nid, time(), $user->uid);
}
}
}
在某个地方可以显示此节点的列表。
有关更多示例。 看统计模块如上所述。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.