'0'), $atts ) ); return self::rendertest($atts['id']); } public static function rendertest($itest) { global $wpdb; $template = get_option('selectedTemplate', 'default'); $iCurrentOption = empty($_POST['lastselectedoption']) ? 1 : ( (int) $_POST['lastselectedoption'] + 1 ); if ( $_SERVER['REQUEST_METHOD'] == 'POST') { $responses = $_POST['optresponses'] . $_POST['voteoption']; if ( strlen($responses) < $iCurrentOption) { /* L'utente ha inviato senza selezionare una risposta. Ritorna allo step relativo al numero di risposte fornite. */ $iCurrentOption = strlen($responses) +1; } } $SQL = "SELECT * FROM " . $wpdb->prefix . "abctest_main"; $SQL .= sprintf(' WHERE id_test = %d', $itest); $rslt = $wpdb->get_results($SQL); // titolo e descrizione test ob_start(); // Verifica se esiste un template diverso da quello di default $tmplHTML = file_get_contents('wp-content/plugins/abctest/templates/' . $template . '/main.html'); $tmplHTML = preg_replace("/%QUIZTITLE%/", $rslt[0]->test_title, $tmplHTML); $tmplHTML = preg_replace("/%QUIZDESCRIPTION%/", stripslashes($rslt[0]->test_text), $tmplHTML); // opzioni $SQL = "SELECT * FROM " . $wpdb->prefix . "abctest_options"; $SQL .= sprintf(' WHERE id_test = %d', $itest); $SQL .= " ORDER BY options_order ASC"; $options = $wpdb->get_results($SQL); $optindex = $iCurrentOption -1; $totaloptions = count($options); if ($iCurrentOption <= $totaloptions ) { // mostra domanda successiva $tmplHTML = preg_replace("/%QUIZSTEPS%/", "domanda " . $iCurrentOption . " di " . $totaloptions, $tmplHTML); $tmplHTML = preg_replace("/%QUESTIONNUMBER%/", $iCurrentOption, $tmplHTML); $tmplHTML = preg_replace("/%QUESTIONTEXT%/", stripslashes($options[$optindex]->options_introduction), $tmplHTML); $tmplHTML = preg_replace("/%A_RESPONSE%/", stripslashes($options[$iCurrentOption -1]->option_a), $tmplHTML); $tmplHTML = preg_replace("/%B_RESPONSE%/", stripslashes($options[$iCurrentOption -1]->option_b), $tmplHTML); $tmplHTML = preg_replace("/%C_RESPONSE%/", stripslashes($options[$iCurrentOption -1]->option_c), $tmplHTML); $controls = sprintf('', $iCurrentOption); $controls .= "\n"; $controls .= sprintf('', $responses); $controls .= "\n"; $controls .= sprintf('', 'Rispondi'); $controls .= "\n"; $tmplHTML = preg_replace("/\[CONTROLS\]/", $controls, $tmplHTML); echo $tmplHTML; } else { // esito test $count_resp[0] = substr_count($responses, 'a'); $count_resp[1] = substr_count($responses, 'b'); $count_resp[2] = substr_count($responses, 'c'); $arrLett = array('A', 'B', 'C'); for($i =0; $i <= 3; $i++) { if ( $count_resp[$i] == max($count_resp) ) { $exitus = $arrLett[$i]; } } $tmpResltlHTML = file_get_contents('wp-content/plugins/abctest/templates/' . $template . '/results.html'); $tmpResltlHTML = preg_replace("/%QUIZTITLE%/", $rslt[0]->test_title, $tmpResltlHTML); $tmpResltlHTML = preg_replace("/%QUIZDESCRIPTION%/", stripslashes($rslt[0]->test_text), $tmpResltlHTML); $tmpResltlHTML = preg_replace("/%RESULT_TITLE_0%/", "Hai risposto prevalentemente $exitus", $tmpResltlHTML); $tmpResltlHTML = preg_replace("/%RESULT_DESCRIPTION_0%/", stripslashes($rslt[0]->{'test_result_' . strtolower($exitus) }), $tmpResltlHTML); for($i =0; $i < 3; $i++) { if ( $arrLett[$i] != $exitus) { $arrTitles[] = " prevalenza " . $arrLett[$i]; $arrDescript[] = stripslashes($rslt[0]->{'test_result_' . strtolower($arrLett[$i]) }); } } } $tmpResltlHTML = preg_replace("/%RESULT_TITLE_1%/", $arrTitles[0], $tmpResltlHTML); $tmpResltlHTML = preg_replace("/%RESULT_DESCRIPTION_1%/", $arrDescript[0], $tmpResltlHTML); $tmpResltlHTML = preg_replace("/%RESULT_TITLE_2%/", $arrTitles[1], $tmpResltlHTML); $tmpResltlHTML = preg_replace("/%RESULT_DESCRIPTION_2%/", $arrDescript[1], $tmpResltlHTML); echo $tmpResltlHTML; return ob_get_clean(); } public static function frontscripts() { $template = get_option('selectedTemplate', 'default'); wp_register_style('abctest_css', plugins_url('templates/' . $template . '/style.css', __FILE__)); wp_enqueue_style( 'abctest_css' ); } } ?>