Contributions API

pingback_nodeapi

Definition

pingback_nodeapi(&$node, $op, $teaser = NULL, $page = NULL)
contributions/pingback/pingback.module, line 123

Code

<?php
function pingback_nodeapi(&$node, $op, $teaser = NULL, $page = NULL) {
  
  if (_pingback_valid_for_node_type($node->type)) {
    switch ($op) {
      case 'insert':
      case 'update':
          if (variable_get('pingback_mode', 'off') == 'submit') {
            global $_pingback_nid;
            $_pingback_nid = $node->nid;
          }
          else { //mode == 'cron'
            //queue this nid in variable pingback_nid_queue, but take care for not queuing existing nids
            $q = variable_get('pingback_nid_queue', array());
            if (!in_array($node->nid, $q)) {
              $q[] = $node->nid;
              variable_set('pingback_nid_queue', $q);
            }
          }
        break;
      case 'view':
        // Insert pingback header when a node is being viewed.
        if (arg(0) == 'node' && is_numeric(arg(1)) && arg(3) == NULL) {
          drupal_set_header('X-Pingback: '. $GLOBALS['base_url'] .'/xmlrpc.php');
        }
        break;
    }
  }
}
?>