drupal 6:如何编写插入内容类型的查询

时间:2010-01-26 15:51:45

标签: drupal drupal-modules

我创建了一个名为history的内容类型 当用户想要打开特定页面时,应该用新行插入内容历史记录。

我正在使用规则,但坚持使用查询。

我编写了一个简单的查询来插入它甚至可以工作的数据,但是当我在视图中获取数据时它没有显示出来的问题。

3 个答案:

答案 0 :(得分:0)

the Statistics module无法帮助你吗? “它计算了多少次,以及每个帖子的查看位置。”

答案 1 :(得分:0)

嗯,在您的观看历史中使用内容类型似乎有点奇怪,但我会继续使用它。因此,您希望历史记录在查看某个页面时创建新节点,对吗?您将不得不使用自定义模块。

您可以编写一个实现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等吗?

答案 2 :(得分:0)

不是为日志创建内容类型的好方法。只需创建包含列的简单表: 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);
    }
  }
}

在某处您可以显示此节点的列表 更多例子。看看统计模块如上所述。