xmlsitemap_node_nodeapi

Definition

xmlsitemap_node_nodeapi(&$node, $op, $teaser = NULL, $page = NULL)
contributions/modules/xmlsitemap/xmlsitemap_node/xmlsitemap_node.module, line 254

Description

Implmentation of hook_nodeapi().

Related topics

Namesort iconDescription
XML SitemapNotify search engines of site updates.

Code

function xmlsitemap_node_nodeapi(&$node, $op, $teaser = NULL, $page = NULL) {
  switch ($op) {
    case 'prepare':
      $priority = db_result(db_query("SELECT priority_override FROM {xmlsitemap_node} WHERE nid = %d", $node->nid));
      $node->priority_override = isset($priority) && $priority !== FALSE ? $priority : 'NULL';
      break;
    case 'insert':
      $node->priority_override = isset($node->priority_override) ? $node->priority_override : 'NULL';
      db_query("INSERT INTO {xmlsitemap_node} (nid, last_changed, priority_override) VALUES (%d, %d, %s)", $node->nid, $node->changed, $node->priority_override);
      if ($node->status) {
        xmlsitemap_update_sitemap();
      }
      break;
    case 'update':
      if (!isset($node->priority_override)) {
        $priority = db_result(db_query("SELECT priority_override FROM {xmlsitemap_node} WHERE nid = %d", $node->nid));
        $node->priority_override = isset($priority) && $priority !== FALSE ? $priority : 'NULL';
      }
      db_query("
        UPDATE {xmlsitemap_node}
        SET previously_changed = last_changed, last_changed = %d, priority_override = %s
        WHERE nid = %d
      ", $node->changed, $node->priority_override, $node->nid);
      if ($node->status || $node->xmlsitemap_node_status) {
        xmlsitemap_update_sitemap();
      }
      break;
    case 'delete':
      db_query("DELETE FROM {xmlsitemap_node} WHERE nid = %d", $node->nid);
      if ($node->status) {
        xmlsitemap_update_sitemap();
      }
      break;
  }
}