繁体   English   中英

drupal 6:如何编写查询以插入到内容类型中

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM