You are here

function xmlsitemap_term_nodeapi in XML sitemap 5.2

Implementation of hook_nodeapi().

File

xmlsitemap_term/xmlsitemap_term.module, line 78
Adds taxonomy terms to the sitemap.

Code

function xmlsitemap_term_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
  switch ($op) {
    case 'insert':
      if (!empty($node->taxonomy)) {
        $terms = array_keys($node->taxonomy);
        $query_args = array_merge(array(
          $node->changed,
        ), $terms);
      }
      break;
    case 'update':
      $taxonomy = empty($node->taxonomy) ? array() : array_keys($node->taxonomy);
      $xmlsitemap_term_taxonomy = empty($node->xmlsitemap_term_taxonomy) ? array() : array_keys($node->xmlsitemap_term_taxonomy);
      $terms = array_merge(array_diff($taxonomy, $xmlsitemap_term_taxonomy), array_diff($xmlsitemap_term_taxonomy, $taxonomy));
      $query_args = array_merge(array(
        $node->changed,
      ), $terms);
      break;
    case 'delete':
      if (!empty($node->taxonomy)) {
        $terms = array_keys($node->taxonomy);
        $query_args = array_merge(array(
          REQUEST_TIME,
        ), $terms);
      }
      break;
  }
  if (!empty($terms)) {
    db_query("UPDATE {xmlsitemap_term}\n      SET previously_changed = last_changed, last_changed = %d WHERE tid IN(" . xmlsitemap_placeholders($terms, 'int') . ")", $query_args);
    xmlsitemap_flag_sitemap();
  }
}