queue_nodeapi

Implementation of hook_nodeapi().

File

modules/queue.module, line 257
Enables content to be moderated by the community.

Code

function queue_nodeapi(&$node, $op) {
  switch ($op) {
    case 'load':
      $result = db_query("SELECT uid, vote FROM {queue} WHERE nid = %d", $node->nid);
      $node->voters = array();
      $node->score = 0;
      while ($voter = db_fetch_object($result)) {
        $node->voters[$voter->uid] = $voter->vote;
        $node->score += $voter->vote;
      }
      break;
    case 'validate':
      if ($node->nid && $node->moderate) {
        // Reset votes when node is updated:
        $node->score = 0;
        $node->voters = array();
        $node->votes = 0;
      }
      break;
    case 'insert':
      if ($node->moderate) {
        db_query("INSERT INTO {queue} (nid, uid) VALUES (%d, %d)", $node->nid, $node->uid);
      }
    case 'update':
      if ($node->moderate && user_access('access submission queue')) {
        drupal_set_message(t('The post is queued for approval. You can check the votes in the <a href="%queue">submission queue</a>.', array('%queue' => url('queue'))));
      }
      else if ($node->moderate) {
        drupal_set_message(t('The post is queued for approval. The editors will decide whether it should be published.'));
      }
      break;
  }
}
Login or register to post comments