You are here

function quiz_quiztake in Quiz 7.4

Same name and namespace in other branches
  1. 7.6 plugins/page_manager/tasks/quiztake.inc \quiz_quiztake()
  2. 7.5 plugins/page_manager/tasks/quiztake.inc \quiz_quiztake()

Entry point for our overridden quiz.

This function asks its assigned handlers who, if anyone, would like to run with it. If no one does, it passes through to the main node draft page.

1 string reference to 'quiz_quiztake'
quiz_quiztake_menu_alter in plugins/page_manager/tasks/quiztake.inc
Callback defined by quiz_quiztake_page_manager_tasks().

File

plugins/page_manager/tasks/quiztake.inc, line 66

Code

function quiz_quiztake($node) {

  // Load my task plugin
  $task = page_manager_get_task('quiztake');

  // Load the node into a context.
  ctools_include('context');
  ctools_include('context-task-handler');
  $contexts = ctools_context_handler_get_task_contexts($task, '', array(
    $node,
  ));
  $output = ctools_context_handler_render($task, '', $contexts, array(
    $node->nid,
  ));
  if ($output !== FALSE) {
    return $output;
  }
  module_load_include('inc', 'quiz', 'quiz.node');
  $function = 'quiz_take';
  foreach (module_implements('page_manager_override') as $module) {
    $call = $module . '_page_manager_override';
    if (($rc = $call('quiz')) && function_exists($rc)) {
      $function = $rc;
      break;
    }
  }

  // Otherwise, fall back.
  return $function($node);
}