You are here

function hashtags_add_filter in Hashtags 7

Same name and namespace in other branches
  1. 6 hashtags.module \hashtags_add_filter()
2 calls to hashtags_add_filter()
hashtags_enable in ./hashtags.install
Implementation of hook_enable().
hashtags_update_7001 in ./hashtags.install
Integrate Hashtag filter with Filter HTML and Full HTML input formats.

File

./hashtags.module, line 1066

Code

function hashtags_add_filter() {
  $added_status = array();
  $format_id = 'filtered_html';
  $is_hashtag_filter_exists = db_query('SELECT COUNT(*) FROM {filter} WHERE format = :format AND module = :module AND name = :name', array(
    ':format' => $format_id,
    ':module' => 'hashtags',
    ':name' => HASHTAGS_FILTER_NAME,
  ))
    ->fetchField();
  if (!$is_hashtag_filter_exists) {
    $max_filter_weight = db_query('SELECT MAX(weight) FROM {filter} WHERE format = :format', array(
      ':format' => $format_id,
    ))
      ->fetchField();
    db_insert('filter')
      ->fields(array(
      'format',
      'name',
      'weight',
      'status',
      'module',
      'settings',
    ))
      ->values(array(
      'format' => $format_id,
      'name' => 'filter_hashtags',
      'weight' => $max_filter_weight + 1,
      'status' => 1,
      'module' => 'hashtags',
      'settings' => serialize(array()),
    ))
      ->execute();
    $added_status[] = $format_id;
    drupal_set_message(t('Hashtags filter has been added to "Filter HTML" input format'));
    watchdog('Input format', t('Hashtags filter has been added to "Filter HTML" input format'));
  }
  $format_id = 'full_html';
  $is_hashtag_filter_exists = db_query('SELECT COUNT(*) FROM {filter} WHERE format = :format AND module = :module AND name = :name', array(
    ':format' => $format_id,
    ':module' => 'hashtags',
    ':name' => HASHTAGS_FILTER_NAME,
  ))
    ->fetchField();
  if (!$is_hashtag_filter_exists) {
    $max_filter_weight = db_query('SELECT MAX(weight) FROM {filter} WHERE format = :format', array(
      ':format' => $format_id,
    ))
      ->fetchField();
    db_insert('filter')
      ->fields(array(
      'format',
      'name',
      'weight',
      'status',
      'module',
      'settings',
    ))
      ->values(array(
      'format' => $format_id,
      'name' => 'filter_hashtags',
      'weight' => $max_filter_weight + 1,
      'status' => 1,
      'module' => 'hashtags',
      'settings' => serialize(array()),
    ))
      ->execute();
    $added_status[] = $format_id;
    drupal_set_message(t('Hashtags filter has been added to "Full HTML" input format'));
    watchdog('Input format', t('Hashtags filter has been added to "Full HTML" input format'));
  }

  // clear filter caches
  filter_formats_reset();
  if (sizeof($added_status)) {
    return TRUE;
  }
  return FALSE;
}