You are here

function theme_multichoice_form in Quiz 6.2

Same name and namespace in other branches
  1. 5.2 multichoice.module \theme_multichoice_form()
  2. 5 multichoice.module \theme_multichoice_form()
  3. 6.6 question_types/multichoice/multichoice.module \theme_multichoice_form()
  4. 6.3 question_types/multichoice/multichoice.module \theme_multichoice_form()
  5. 6.5 question_types/multichoice/multichoice.module \theme_multichoice_form()

Theme function for multichoice form.

Lays out answer field elements into a table.

Return value

string HTML output.

1 theme call to theme_multichoice_form()
multichoice_form in ./multichoice.module
Implementation of hook_form(). Admin for create/update of a multichoice question.

File

./multichoice.module, line 924
Multiple choice question type for the Quiz module.

Code

function theme_multichoice_form($form) {

  // Format table header.
  $scored_quiz = isset($form[0]['result_option']) ? FALSE : TRUE;
  $deleteable = isset($form[0]['aid']) ? TRUE : FALSE;
  if (user_access('allow multiple correct answers')) {
    $header = array(
      'data' => $scored_quiz ? t('Correct') : t('Result Option'),
    );
  }
  $header[] = array(
    'data' => t('Answer'),
  );
  if (user_access('allow feedback')) {
    $header[] = array(
      'data' => t('Feedback'),
      'style' => 'width:250px;',
    );
  }
  if ($deleteable) {
    $header[] = array(
      'data' => t('Delete'),
    );
  }

  // Format table rows.
  $rows = array();
  foreach (element_children($form) as $key) {
    $score_col = $scored_quiz ? $form[$key]['correct'] : $form[$key]['result_option'];
    $row = array();
    if ($score_col) {
      $row[] = drupal_render($score_col);
    }
    $row[] = drupal_render($form[$key]['answer']);
    if (user_access('allow feedback')) {
      $row[] = drupal_render($form[$key]['feedback']);
    }
    if ($deleteable) {
      drupal_render($form[$key]['delete']);
    }
    $rows[] = $row;
  }

  // Theme output and display to screen.
  $output = theme('table', $header, $rows);
  return $output;
}