Definition

abuse_menu($may_cache)
abuse/abuse.module, line 34

Description

Implementation of hook_menu().

Code

<?php
function abuse_menu($may_cache) {
  $items = array();

  if ($may_cache) {
    // Menu callbacks
    $items[] = array(
      'path' => 'abuse/report', 
      'title' => t('Flag'),
      'callback' => 'abuse_report', 
      'type' => MENU_CALLBACK,
      'access' => (user_access('report abuse') || user_access('direct flag')),
    );
    $items[] = array(
      'path' => 'abuse/warn', 
      'title' => t('Warn user'),
      'callback' => 'abuse_warn', 
      'type' => MENU_CALLBACK,
      'access' => user_access('moderate abuse'),
    );
    $items[] = array(
      'path' => 'abuse/ban', 
      'title' => t('Ban user'),
      'callback' => 'abuse_ban', 
      'type' => MENU_CALLBACK,
      'access' => user_access('moderate abuse'),
    );
    $items[] = array(
      'path' => 'abuse/update', 
      'title' => t('Update'),
      'callback' => 'abuse_update', 
      'type' => MENU_CALLBACK,
      'access' => user_access('moderate abuse'),
    );
        
    // Abuse moderation
    $items[] = array(
      'path' => 'admin/content/abuse', 
      'title' => t('Abuse moderation'),
      'description' => t('Manage abuse reports submitted for nodes and comments.'),
      'callback' => 'abuse_admin_pending',
      'access' => user_access('moderate abuse'),
    );

    // Abuse Configuration Settings
    $items[] = array(
      'path' => 'admin/settings/abuse',
      'title' => t('Abuse configuration'),
      'description' => t('Configure settings for abuse reporting and moderation.'),
      'callback' => 'drupal_get_form',
      'callback arguments' => 'abuse_admin_settings',
      'access' => user_access('administer abuse'),
      'type' => MENU_NORMAL_ITEM, // optional
    );
    $items[] = array(
      'path' => 'admin/settings/abuse/settings',
      'title' => t('Default settings'),
      'description' => t('Configure settings for abuse reporting and moderation.'),
      'access' => user_access('administer abuse'),
      'type' => MENU_DEFAULT_LOCAL_TASK, // optional
      'weight' => 0,
    );
    $items[] = array(
      'path' => 'admin/settings/abuse/reasons',
      'title' => t('Abuse reporting categories'),
      'description' => t('Administer list of abuse reporting categories.'),
      'callback' => 'drupal_get_form',
      'callback arguments' => 'abuse_admin_configure_reasons',
      'access' => user_access('administer abuse'),
      'type' => MENU_LOCAL_TASK,
      'weight' => 1,
    );
    
    /* Implement multiple deletes
    $items[] = array(
      'path' => 'admin/abuse/multi', 'title' => t('item'),
      'type' => MENU_CALLBACK, 'callback' => 'abuse_admin_multi',
      'access' => $admin_abuse_access,
    );
    */
  } 
  elseif (arg(0) == 'admin' && arg(1) == 'content' && arg(2) == 'abuse' && user_access('moderate abuse')) {
    $pending = _abuse_get_pending_count();
    $hidden = _abuse_get_hidden_count();
    $removed = _abuse_get_removed_count();
    
    $items[] = array(
      'path' => 'admin/content/abuse/pending', 
      'title' => t('Pending (!num)', array('!num' => $pending)),
      'type' => MENU_DEFAULT_LOCAL_TASK,
      'access' => user_access('moderate abuse'),
      'weight' => 0,
    );
    $items[] = array(
      'path' => 'admin/content/abuse/hidden', 
      'title' => t('Hidden (!num)', array('!num' => $hidden)),
      'type' => MENU_LOCAL_TASK, 'callback' => 'abuse_admin_hidden',
      'access' => user_access('moderate abuse'),
      'weight' => 1,
    );
    $items[] = array(
      'path' => 'admin/content/abuse/removed', 
      'title' => t('Removed (!num)', array('!num' => $removed)),
      'type' => MENU_LOCAL_TASK, 'callback' => 'abuse_admin_removed',
      'access' => user_access('moderate abuse'),
      'weight' => 2,
    );
  }
  return $items;
}
?>