当用户想要打开特定页面时,应创建一个名为history 的内容历史记录,并在新行中插入内容历史记录。drupal 6:如何编写查询插入到内容类型中
我正在使用规则,但与查询stucked。
我已经写了一个简单的查询来插入它甚至可以工作的数据,但是当我在视图中获取数据时它并没有显示出来。
当用户想要打开特定页面时,应创建一个名为history 的内容历史记录,并在新行中插入内容历史记录。drupal 6:如何编写查询插入到内容类型中
我正在使用规则,但与查询stucked。
我已经写了一个简单的查询来插入它甚至可以工作的数据,但是当我在视图中获取数据时它并没有显示出来。
不要为日志创建内容类型。只要创建简单的表列: 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);
}
}
}
而且您可以在某处显示此节点的列表。
更多示例。看看上面的统计模块。
不能the Statistics module对您有帮助吗? “它会统计多少次,以及每个帖子的查看位置。”
没有它不能帮助我 – rakeshakurathi 2010-01-26 17:07:20
嗯,对于您的观看历史记录使用内容类型看起来有点奇怪,但我会随它去。所以你想要历史记录创建一个新的节点,无论何时查看某个页面,对吧?你将不得不为此使用自定义模块。
你可以写一个实现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)
}
}
显然,这真的很粗糙,但它会帮助您开始。
你确定你不能只使用谷歌分析或类似的?
我已经这样做了,但是当我创建一个节点不会出现在视图中可能是我必须使用node_save CCK filds这是有点棘手... – rakeshakurathi 2010-01-27 12:31:58
您应该添加在你的模块“views.api”支持。请阅读http://views-help.doc.logrus.com/help/views/api-tables – Nikit 2010-01-28 00:30:53