matching.theme.inc in Quiz 8.5
Same filename and directory in other branches
Theme functions for the matching question type.
File
question_types/quiz_matching/theme/matching.theme.incView source
<?php
/**
* @file
* Theme functions for the matching question type.
*/
/**
* Theme the matching question form.
*
* @param $variables
*
* @return string
* An HTML string.
*/
function theme_matching_question_form($variables) {
$form = $variables['form'];
$rows = array();
$header = array(
'question' => t('Question'),
'answer' => t('Correct answer'),
'feedback' => t('Feedback'),
);
foreach (element_children($form) as $key) {
$rows[] = array(
'question' => drupal_render($form[$key]['question']),
'answer' => drupal_render($form[$key]['answer']),
'feedback' => drupal_render($form[$key]['feedback']),
);
}
// Theme output and display to screen.
return theme('table', array(
'header' => $header,
'rows' => $rows,
));
}
/**
* Theme the answering form.
*
* @param $variables
*
* @return string
* An HTML string.
*/
function theme_matching_subquestion_form($variables) {
$form = $variables['form'];
$out = '<table class = "matching-tbl">';
foreach ($form as $key => $value) {
if (is_int($key)) {
$out .= '<tr><td class = "matching-question">' . $value['#question'];
$out .= '</td><td class = "matching-select">' . drupal_render_children($value) . '</td></tr>';
}
}
$out .= '</table>';
return $out;
}
/**
* Theme the answer part of the node view.
*
* @param $variables
*
* @return string
* An HTML string.
*/
function theme_matching_match_node_view($variables) {
$subquestions = $variables['subquestions'];
// We know the correct answer for each subquestion.
if (isset($subquestions[0]['correct'])) {
$header = array(
t('Subquestion'),
t('Correct match'),
t('Feedback'),
);
}
else {
$header = array(
t('Subquestion'),
t('Possible match'),
);
}
return theme('table', array(
'header' => $header,
'rows' => $subquestions,
));
}
/**
* Theme the contents of the matching response form.
*
* @param $variables
*
* @return string
* An HTML string.
*/
function theme_matching_response($variables) {
$metadata = $variables['metadata'];
$data = $variables['data'];
if (isset($data[0]['is_correct'])) {
foreach ($data as $id => $match_data) {
if ($match_data['is_correct'] == 0) {
$theme = 'quiz_score_incorrect';
}
if ($match_data['is_correct'] == 1) {
$theme = 'quiz_score_correct';
}
if ($match_data['is_correct'] == 2) {
$theme = 'quiz_score_unknown';
}
// TODO Please change this theme call to use an associative array for the $variables parameter.
$data[$id]['is_correct'] = array(
'data' => theme($theme),
'class' => 'quiz-summary-qcell',
);
}
}
return theme('table', array(
'header' => $metadata,
'rows' => $data,
));
}
Functions
Name | Description |
---|---|
theme_matching_match_node_view | Theme the answer part of the node view. |
theme_matching_question_form | Theme the matching question form. |
theme_matching_response | Theme the contents of the matching response form. |
theme_matching_subquestion_form | Theme the answering form. |