auto_index.module in Auto Index 7
Same filename and directory in other branches
Auto-index: Automatically indexes node content on update.
Uses Drupal's search module to automatically index updated nodes as and when they are updated. This means that a user can update node content and that content is immediately searchable, by users of the site.
@author Steve Osguthorpe <steve@futurate.com>
File
auto_index.moduleView source
<?php
/**
 * @file
 * Auto-index: Automatically indexes node content on update.
 * 
 * Uses Drupal's search module to automatically index updated nodes as and when they are updated.
 * This means that a user can update node content and that content is immediately searchable,
 * by users of the site.
 * 
 * @author Steve Osguthorpe <steve@futurate.com>
 */
/**
 * Implementation of hook_node_delete
 */
function auto_index_node_delete($node) {
  // Update search totals to reflect deleted node content.
  search_update_totals();
}
/**
 * Implementation of hook_node_update
 */
function auto_index_node_update($node) {
  _auto_index_index_node($node);
}
/**
 * Implementation of hook_node_insert
 */
function auto_index_node_insert($node) {
  _auto_index_index_node($node);
}
/**
 * Implementation of hook_comment_insert
 */
function auto_index_comment_insert($comment) {
  _auto_index_index_node($comment);
}
/**
 * Implementation of hook_comment_update
 */
function auto_index_comment_update($comment) {
  _auto_index_index_node($comment);
}
/**
 * Implementation of hook_comment_delete
 */
function auto_index_comment_delete($comment) {
  _auto_index_index_node($comment);
}
/**
 * Implementation of hook_comment_publish
 */
function auto_index_comment_publish($comment) {
  _auto_index_index_node($comment);
}
/**
 * Implementation of hook_comment_unpublish
 */
function auto_index_comment_unpublish($comment) {
  _auto_index_index_node($comment);
}
function _auto_index_index_node(&$node) {
  // Static variable to keep track of any node ids already indexed.
  static $indexed_nodes = array();
  // Extract the node ID
  $node_id = is_array($node) ? $node['nid'] : $node->nid;
  // Check if the node ID has already been indexed.
  if (array_search($node_id, $indexed_nodes) === false) {
    // Ensure we force the cache to be updated so latest content is indexed.
    $node_obj = node_load($node_id, NULL, TRUE);
    // Do the indexing of this node only.
    _node_index_node($node_obj);
    // Update search totals.
    search_update_totals();
    // Append to array to ensure node only indexed once per action.
    $indexed_nodes[] = $node_id;
  }
}Functions
| Name   | Description | 
|---|---|
| auto_index_comment_delete | Implementation of hook_comment_delete | 
| auto_index_comment_insert | Implementation of hook_comment_insert | 
| auto_index_comment_publish | Implementation of hook_comment_publish | 
| auto_index_comment_unpublish | Implementation of hook_comment_unpublish | 
| auto_index_comment_update | Implementation of hook_comment_update | 
| auto_index_node_delete | Implementation of hook_node_delete | 
| auto_index_node_insert | Implementation of hook_node_insert | 
| auto_index_node_update | Implementation of hook_node_update | 
| _auto_index_index_node | 
