当用户想要打开特定页面时,我创建了一个名为 history 的内容类型,内容历史记录应该插入新行。
我正在使用规则,但坚持查询。
我编写了一个简单的查询来插入它甚至可以工作的数据,但是当我在视图中获取数据时出现问题,它没有显示出来。
当用户想要打开特定页面时,我创建了一个名为 history 的内容类型,内容历史记录应该插入新行。
我正在使用规则,但坚持查询。
我编写了一个简单的查询来插入它甚至可以工作的数据,但是当我在视图中获取数据时出现问题,它没有显示出来。
统计模块不能帮助您吗?“它计算了多少次,以及从哪里查看您的每个帖子”。
嗯,为您的观看历史记录使用内容类型似乎有点奇怪,但我会同意的。因此,您希望历史记录在查看某个页面时创建一个新节点,对吗?您将不得不为此使用自定义模块。
您可以编写一个实现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)
}
}
显然这真的很粗糙,但它会让你开始。
你确定你不能只使用谷歌分析或类似的东西吗?
不要为日志创建内容类型的好方法。只需创建带有列的简单表:nid(节点 id),visited(访问日期时间),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);
}
}
}
您可以在某处显示此节点的列表。
举个例子。如上所述查看统计模块。