You are here

function quiz_menu in Quiz 7.6

Same name and namespace in other branches
  1. 8.6 quiz.module \quiz_menu()
  2. 8.4 quiz.module \quiz_menu()
  3. 8.5 quiz.module \quiz_menu()
  4. 5.2 quiz.module \quiz_menu()
  5. 5 quiz.module \quiz_menu()
  6. 6.6 quiz.module \quiz_menu()
  7. 6.2 quiz.module \quiz_menu()
  8. 6.3 quiz.module \quiz_menu()
  9. 6.4 quiz.module \quiz_menu()
  10. 6.5 quiz.module \quiz_menu()
  11. 7 quiz.module \quiz_menu()
  12. 7.4 quiz.module \quiz_menu()
  13. 7.5 quiz.module \quiz_menu()
  14. 6.x quiz.module \quiz_menu()

Implements hook_menu().

File

./quiz.module, line 319
quiz.module Main file for the Quiz module.

Code

function quiz_menu() {

  // Take quiz.
  $items['node/%quiz_menu/take'] = array(
    'title' => 'Take',
    'page callback' => 'quiz_take_page',
    'page arguments' => array(
      1,
    ),
    'access callback' => 'quiz_take_access',
    'access arguments' => array(
      1,
    ),
    'type' => MENU_LOCAL_TASK,
  );

  // Take question.
  // @todo Thought - the 4th argument could be a "page" instead of a question
  // number
  $items['node/%quiz_menu/take/%question_number'] = array(
    'title' => 'Take',
    'page callback' => 'quiz_take_question',
    'page arguments' => array(
      1,
      3,
    ),
    'access callback' => 'quiz_access_question',
    'access arguments' => array(
      1,
      3,
    ),
  );

  // Feedback
  $items['node/%quiz_menu/take/%question_number/feedback'] = array(
    'title' => 'Feedback',
    'page callback' => 'quiz_take_question_feedback',
    'page arguments' => array(
      1,
      3,
    ),
    'access callback' => 'quiz_question_feedback_access',
    'access arguments' => array(
      1,
      3,
    ),
  );

  // Admin pages.
  $items['admin/quiz'] = array(
    'title' => '@quiz',
    'title arguments' => array(
      '@quiz' => QUIZ_NAME,
    ),
    'description' => 'View results, score answers, run reports and edit configurations.',
    'page callback' => 'system_admin_menu_block_page',
    'access arguments' => array(
      'administer quiz configuration',
      'score any quiz',
      'score own quiz',
      'view any quiz results',
      'view results for own quiz',
    ),
    'access callback' => 'quiz_access_multi_or',
    'type' => MENU_NORMAL_ITEM,
    'file' => 'system.admin.inc',
    'file path' => drupal_get_path('module', 'system'),
  );
  $items['admin/quiz/settings'] = array(
    'title' => '@quiz settings',
    'title arguments' => array(
      '@quiz' => QUIZ_NAME,
    ),
    'description' => 'Change settings for the all Quiz project modules.',
    'page callback' => 'system_admin_menu_block_page',
    'access arguments' => array(
      'administer quiz configuration',
    ),
    'type' => MENU_NORMAL_ITEM,
    'file' => 'system.admin.inc',
    'file path' => drupal_get_path('module', 'system'),
  );
  $items['admin/quiz/settings/config'] = array(
    'title' => '@quiz configuration',
    'title arguments' => array(
      '@quiz' => QUIZ_NAME,
    ),
    'description' => 'Configure the Quiz module.',
    'page callback' => 'drupal_get_form',
    'page arguments' => array(
      'quiz_admin_settings',
    ),
    'access arguments' => array(
      'administer quiz configuration',
    ),
    'type' => MENU_NORMAL_ITEM,
    // optional
    'file' => 'quiz.admin.inc',
  );
  $items['admin/quiz/settings/quiz-form'] = array(
    'title' => '@quiz form configuration',
    'title arguments' => array(
      '@quiz' => QUIZ_NAME,
    ),
    'description' => 'Configure default values for the quiz creation form.',
    'page callback' => 'drupal_get_form',
    'page arguments' => array(
      'quiz_admin_node_form',
    ),
    'access arguments' => array(
      'administer quiz configuration',
    ),
    'type' => MENU_NORMAL_ITEM,
    // optional
    'file' => 'quiz.admin.inc',
  );
  $items['admin/quiz/reports'] = array(
    'title' => '@quiz reports and scoring',
    'title arguments' => array(
      '@quiz' => QUIZ_NAME,
    ),
    'description' => 'View reports and score answers.',
    'page callback' => 'system_admin_menu_block_page',
    'access arguments' => array(
      'view any quiz results',
      'view results for own quiz',
    ),
    'access callback' => 'quiz_access_multi_or',
    'type' => MENU_NORMAL_ITEM,
    'file' => 'system.admin.inc',
    'file path' => drupal_get_path('module', 'system'),
  );
  $items['admin/quiz/result'] = array(
    'title' => 'Quiz result',
    'description' => 'Configure Quiz result behaviors',
    'page callback' => 'quiz_result_page',
    'access arguments' => array(
      'administer quiz',
    ),
    'type' => MENU_NORMAL_ITEM,
  );
  $items['node/%quiz_menu/quiz-results/%quiz_rid/view'] = array(
    'title' => 'View',
    'type' => MENU_DEFAULT_LOCAL_TASK,
    'weight' => -10,
  );
  $items['node/%quiz_menu/quiz-results/%quiz_rid'] = array(
    'title' => 'User results',
    'page callback' => 'quiz_user_results',
    'page arguments' => array(
      3,
    ),
    'access callback' => 'quiz_access_my_result',
    'access arguments' => array(
      3,
    ),
    'file' => 'quiz.pages.inc',
  );
  $items['node/%quiz_menu/quiz/results/%quiz_rid/view'] = array(
    'title' => 'Results',
    'page callback' => 'quiz_admin_results',
    'page arguments' => array(
      1,
      4,
    ),
    'access callback' => 'quiz_access_results',
    'access arguments' => array(
      1,
      4,
    ),
    'file' => 'quiz.admin.inc',
  );

  // Add questions to quiz.
  $items['node/%quiz_menu/quiz/questions'] = array(
    'title' => 'Manage questions',
    'page callback' => 'quiz_questions',
    'page arguments' => array(
      1,
    ),
    'access callback' => 'quiz_type_confirm',
    'access arguments' => array(
      1,
      'update',
    ),
    'type' => MENU_LOCAL_TASK,
    'file' => 'quiz.admin.inc',
    'weight' => 2,
  );

  // User pages.
  $items['user/%/quiz-results/%/view'] = array(
    'title' => 'User results',
    'page callback' => 'quiz_user_results',
    'page arguments' => array(
      3,
    ),
    'access arguments' => array(
      3,
    ),
    'access callback' => 'quiz_access_my_result',
    'type' => MENU_CALLBACK,
    'file' => 'quiz.pages.inc',
  );
  $items['node/%quiz_menu/questions/term_ahah'] = array(
    //TODO: Add node access instead of user access...
    'page callback' => 'quiz_categorized_term_ahah',
    'type' => MENU_CALLBACK,
    'access callback' => 'node_access',
    'access arguments' => array(
      'create',
      'quiz',
    ),
    'file' => 'quiz.admin.inc',
  );
  if (module_exists('devel_generate')) {
    $items['admin/config/development/generate/quiz'] = array(
      'title' => 'Generate quiz',
      'description' => 'Generate a given number of quizzes and questions.',
      'access arguments' => array(
        'administer quiz configuration',
      ),
      'page callback' => 'drupal_get_form',
      'page arguments' => array(
        'quiz_generate_form',
      ),
      'file' => 'quiz.devel.inc',
    );
  }
  return $items;
}