質問

私は現在、私のDrupal 6がインストール上の統計モジュール(コア)を使用します。この増分{node_counter}テーブルのカウントノードが表示されるたびに、この作品。

私の質問は - 私は、プログラムだけでなく、このカウンタをインクリメントすることができますか?私は理想的であるAJAXを持つテーブルを更新することができること、ビューから作成されたコンテンツと対話するユーザーが(ライトボックスをクリックしてくださいと言う)する場合、これを達成するために探しています。

私はd.oのクイック検索を行っているとすぐに突き出す任意のモジュールがあるように表示されません。誰もがこれでどんな経験を持っていますか?

役に立ちましたか?

解決

これは、このためのカスタムモジュールを作ることが難しいことではありません。

統計が実行をモジュールというクエリがあります:

db_query('UPDATE {node_counter} SET daycount = daycount + 1, totalcount = totalcount + 1, timestamp = %d WHERE nid = %d', time(), arg(1));
// If we affected 0 rows, this is the first time viewing the node.
if (!db_affected_rows()) {
  // We must create a new row to store counters for the new node.
  db_query('INSERT INTO {node_counter} (nid, daycount, totalcount, timestamp) VALUES (%d, 1, 1, %d)', arg(1), time());
}

私たちが行う必要がある唯一のものは、私たちがこれに数を追加したいノードIDとarg(1)を置き換えることですが、カスタムモジュールにこのような何かを行うことができます。

function custom_module_menu() {
  $items['custom/ajax/%node'] = array(
    'title' => 'Update count',
    'page callback' => 'custom_module_update_counter',
    'page arguments' => array(2),
    'access callback' => array('custom_module_access_control'),
  );

 function custom_module_update_counter($node) {
   db_query('UPDATE {node_counter} SET daycount = daycount + 1, totalcount = totalcount + 1, timestamp = %d WHERE nid = %d', time(), $node->nid);
   // If we affected 0 rows, this is the first time viewing the node.
   if (!db_affected_rows()) {
     // We must create a new row to store counters for the new node.
     db_query('INSERT INTO {node_counter} (nid, daycount, totalcount, timestamp) VALUES (%d, 1, 1, %d)', $node->nid, time());
   }
 }
左の

すべての要求はAJAXまたはあなたは、機能だけでTRUEまたはFALSEを返す必要があります好きな制御どんなメイクがある場合は、チェックすることができ、カスタムアクセス制御機能を実装することです。また、あなたの設定でノードIDとAJAXイベントをする必要があるが、それはどちらか、あまりにも難しいことではありません。

あなたは、ID 2などで更新ノードへのURL custom/ajax/2をヒットする必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top