Blog

Mostrar número de pregunta en Quizzin

Maite, directora de la Escuela Parla, me ha pedido que implemente las pruebas de nivel en la página web de la escuela.

En principio se había planteado utilizar la simplicidad y flexibilidad de formularios de Contact Form 7 aprovechando que el complemento ya estaba instalado. La idea era programar en PHP un sistema que calculase respuestas correctas en base a los valores que devolviera un formulario de Contact Form 7. Pero la recursividad de código dentro de campos dentro de plugins dentro de plantillas.... me estaba dando demasiados problemas como para intentar tenerlo para principios de septiembre (las vacaciones están aquí mismo).

La solución, después de estar unas cuantas horas rebuscando entre plugins, ha sido Quizzin para Wordpress. Un plugin que implementa la gestión de formularios con preguntas tipo test y devuelve los resultados como variables (score, total, percentage, grade, wrong_answers, rating, quiz_name y description).

Una vez instalado el plugin y funcionando tengo dos problemas a resolver. El primero es cómo enviar los resultados por correo electrónico añadiendo tanto los resultados de la prueba tipo test como los datos de contacto que la identifiquen. Este problema lo trataré en otro artículo después de (o durante las vacaciones). El segundo problema es como mostrar los números de pregunta.

La solución no es para nada complicada, solo hay que romperse la cabeza averiguando qué fichero del plugin hace qué y rebuscar entre el código.

El fichero show_quizzin.php gestiona tanto la muestra de las preguntas y respuestas como la muestra de los resultados. Cerca del final del fichero, bajo el comentario // Show The Quiz se inicia la variable $question_count como contador para utilizarla en el atributo id del div class="quizzin-question". Vamos a utilizar esta variable que incrementa en 1 por cada pregunta para insertarla antes de mostrar la pregunta.

Cuatro lineas por debajo encontraréis la linea

echo "<div class='question-content'>". stripslashes($ques->question) . "</div><br />";

sustitúyela por

echo "<div class='question-content'>". $question_count . ". " . stripslashes($ques->question) . "</div><br />";

Asunto arreglado.

2010

<< Página anterior