<?php

/*
 * @file
 * Filter Messages Module install file
 */

/**
 * Implements hook_install().
 */
function disable_messages_install() {
  variable_set('disable_messages_enable', '1');
  variable_set('disable_messages_ignore_patterns', '');
  variable_set('disable_messages_ignore_regex', array());
  variable_set('disable_messages_ignore_case', '1');
  variable_set('disable_messages_filter_by_page', 0);
  variable_set('disable_messages_page_filter_paths', '');
  variable_set('disable_messages_exclude_users', '');
  variable_set('disable_messages_enable_debug', '0');
  variable_set('disable_messages_debug_visible_div', '0');
  // Add the access message permission to all roles.
  $result = db_query('SELECT r.rid FROM {role} r');
  foreach ($result as $role) {
    // Add view all message permission for all users.
    $permissions = array('view status messages', 'view warning messages', 'view error messages');
    foreach ($permissions as $perm) {
      db_query("
        INSERT INTO {role_permission} (rid, permission, module)
          VALUES (:rid, :perm, :module)
        ",
        array(
          ':rid' => $role->rid,
          ':perm' => $perm,
          ':module' => 'disable_messages',
        )
      );
    }
  }
  drupal_set_message(st('Added view all status message permissions for all roles. You can change this in !link', array('!link' => l(st('administer permissions'), 'admin/people/permissions', array('fragment' => 'module-disable_messages')))));
}

/**
 * Implements hook_uninstall().
 */
function disable_messages_uninstall() {
  variable_del('disable_messages_enable');
  variable_del('disable_messages_ignore_patterns');
  variable_del('disable_messages_ignore_regex');
  variable_del('disable_messages_ignore_case');
  variable_del('disable_messages_filter_by_page');
  variable_del('disable_messages_page_filter_paths');
  variable_del('disable_messages_exclude_users');
  variable_del('disable_messages_enable_debug');
  variable_del('disable_messages_debug_visible_div');
  // Permission deletions are handled by core
}
