function print_result_detail_table($answers, $data) { $theses_count = sizeof($data['theses']); for ($i = 0; $i < sizeof($data['lists']); $i = $i + 1) { $classname = string_to_css_classname($data['lists'][$i]['name']); echo "<th class='hidden-xs hidden-sm list-{$classname}'>{$data['lists'][$i]['name_x']} (" . calculate_points($data['answers'][$i], $answers) . ")</th>"; } echo "</tr>\n"; for ($i = 0; $i < $theses_count; $i = $i + 1) { char_to_multiply($answers[$i]) == 2 ? $star = '<span class="glyphicon glyphicon-star" title="Doppelte Gewichtung"></span>' : ($star = ''); char_to_multiply($answers[$i]) == 2 ? $tdcl = ' class="warning"' : ($tdcl = ''); $labelclass = code_to_labelclass(char_to_value($answers[$i])); echo "<tr{$tdcl}>\n"; echo '<td><p class="text-center">' . $star . '</p></td>'; echo '<td><a id="thesis' . $i . '" class="btn ' . code_to_btnclass(char_to_value($answers[$i])) . ' btn-block" onclick="toggleNext(this)">' . $data['theses'][$i]['s'] . '</a></td>'; for ($listid = 0; $listid < sizeof($data['lists']); $listid = $listid + 1) { echo get_list_result_td($data, $listid, $i); } echo "</tr>\n"; // Statements echo "<tr class='multheseslong'><td class='mtl'></td><td class='mtl' colspan='" . (sizeof($data['lists']) + 1) . "'><!--<span class='label {$labelclass}'>Thesis " . ($i + 1) . ": " . $data['theses'][$i]['s'] . "</span><br>--> <p class='well'>" . $data['theses'][$i]['l'] . "</p>"; for ($listid = 0; $listid < sizeof($data['lists']); $listid = $listid + 1) { echo get_list_statement($data, $listid, $i); } echo "</td></tr>\n"; } }
function calculate_points($list, $answers) { $max = max(sizeof($answers), sizeof($list)); $pointvector = array(); /* my = skip: skip / skip * my != skip && list = skip: +0 / +0 * |my - list| = 0: +2 / +4 * |my - list| = 1: +1 / +2 * |my - list| = 2: +0 / +0 */ for ($i = 0; $i < $max; $i = $i + 1) { $pointvector[$i] = 0; $value = char_to_value($list[$i]['selection']); if (char_to_value($answers[$i]) === 'skip') { continue; } elseif (!('skip' === char_to_value($answers[$i])) and $value === 'skip') { $pointvector[$i] = 0; } else { $pointvector[$i] = 2 - abs(char_to_value($answers[$i]) - $value); } } $multiply = array(); for ($i = 0; $i < sizeof($answers); $i++) { $multiply[$i] = char_to_multiply($answers[$i]); } $pointvector = vec_mul($pointvector, $multiply); return vectorsum($pointvector); }