0

ユーザーが特定のページを開きたいときはいつでも、履歴という名前のコンテンツ タイプを作成し、コンテンツ履歴を新しい行に挿入する必要があります。

私はルールを使用していますが、クエリで立ち往生しています。

データを挿入するための簡単なクエリを作成しましたが、それは機能しますが、表示されているデータをフェッチするときの問題は表示されません。

4

3 に答える 3

0

ログのコンテンツタイプを作成する良い方法ではありません。次の列を持つ単純なテーブルを作成するだけです: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);
    }
  }
}

そしてどこかでこのノードのリストを表示できます。
その他の例については。上記のように統計モジュールを見てください。

于 2010-01-26T23:43:18.080 に答える
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 などをそのまま使用することはできませんか?

于 2010-01-26T17:26:30.933 に答える
0

統計モジュールが役に立ちませんか? 「各投稿が閲覧された回数と場所をカウントします」。

于 2010-01-26T16:09:49.913 に答える