<?php

/**
 * @file
 * Node access password module.
 */

// These files make up the bulk of the module, so include them.
module_load_include('inc', 'nodeaccess_password', 'nodeaccess_password.realm');
module_load_include('inc', 'nodeaccess_password', 'nodeaccess_password.user');
module_load_include('inc', 'nodeaccess_password', 'nodeaccess_password.node');
module_load_include('inc', 'nodeaccess_password', 'nodeaccess_password.field');


/**
 * Implements hook_menu().
 */
function nodeaccess_password_menu() {
  $items = array();
  $items['admin/config/people/nodeaccess_password'] = array(
    'title' => 'Node access password',
    'description' => 'Change default settings for the Node access password module.',
    'page callback' => 'drupal_get_form',
    'page arguments' => array('nodeaccess_password_admin_form'),
    'access arguments' => array('administer node access passwords'),
    'file' => 'nodeaccess_password.admin.inc',
  );
  $items['admin/config/people/nodeaccess_password/%nodeaccess_password_realm'] = array(
    'title' => 'Edit realm',
    'page callback' => 'drupal_get_form',
    'page arguments' => array('nodeaccess_password_admin_realm_form', 4),
    'access arguments' => array('administer node access passwords'),
    'file' => 'nodeaccess_password.admin.inc',
    'type' => MENU_CALLBACK,
  );
  $items['admin/config/people/nodeaccess_password/%nodeaccess_password_realm/delete'] = array(
    'title' => 'Delete realm',
    'page callback' => 'drupal_get_form',
    'page arguments' => array('nodeaccess_password_admin_realm_delete', 4),
    'access arguments' => array('administer node access passwords'),
    'file' => 'nodeaccess_password.admin.inc',
    'type' => MENU_CALLBACK,
  );
  $items['nodeaccess_password_403'] = array(
    'title' => 'Node access password 403 access denied page',
    'description' => 'Node access password custom 403 page.',
    'page callback' => 'nodeaccess_password_403',
    'file' => 'nodeaccess_password.403.inc',
    'type' => MENU_CALLBACK,
    'access callback' => TRUE,
  );
  return $items;
}

/**
 * Implements hook_permission().
 */
function nodeaccess_password_permission() {
  return array(
    'administer node access passwords' => array(
      'title' => t('Administer Node access passwords'),
    ),
    'view node access passwords' => array(
      'title' => t('View Node access passwords'),
    ),
  );
}

/**
 * Implements hook_theme().
 */
function nodeaccess_password_theme() {
  return array(
    'nodeaccess_password_formatter_default' => array(
      'render element' => 'element',
      'file' => 'nodeaccess_password.field.inc',
    ),
  );
}

/**
 * Implements hook_hook_info().
 */
function nodeaccess_password_hook_info() {
  return array(
    'form_system_site_information_settings_alter' => array('group' => 'system'),
  );
}

/**
 * Implements hook_views_api().
 */
function nodeaccess_password_views_api() {
  return array(
    'api' => 3,
    'path' => drupal_get_path('module', 'nodeaccess_password'),
  );
}