PHP_GJ

Nuestro objetivo con este post es mostrarte la manera de hacer una sencilla página como esta en php para incorporar a tu sitio web.

En esta página podrás incluir ejercicios de ortografía como los que hay en el Ortógrafo de Gominolabs

Para ello vamos a necesitar:

  • Acceso a un sitio web para subir mi página que permita ejecutar php
  • Cuenta en APIcultur para obtener mi “Access key”

En este caso los ejercicios se referirán a las dudas con las letras G y J. Para usar otras letras sólo hay que cambiar el nombre de la función invocada. No obstante hemos creado un post para cada uno de estos casos (ver Tutoriales)

Ten en cuenta:

  • api ortografiaLos ejercicios cambian cada vez que se ejecute el programa. Esto es debido a que los ejercicios serán suministrados por la API de APIcultur. La ventaja es que los ejercicios son siempre nuevos.

Entonces… ¿cómo hago mi página de ejercicios?

1. Introducción de los parámetros de cada ejercicio

Con esto podemos modificar los parámetros que queremos que tenga nuestro examen (nº de preguntas, niveles de dificultad, nivel de dominio de español…) O podemos hacer que quede fijo, no tendríamos más que sustituir la expresión “$_REQUEST” por un símbolo = como ves en el ejemplo siguiente:

[php autolinks=”false” gutter=”true” collapse=”false” firstline=”4″ highlight=”true” light=”true” smarttabs=”true” tabsize=”4″ toolbar=”true”]

//recogemos los parámetros
if (isset($_REQUEST[‘dificultad’])){
$dificultad = $_REQUEST[‘dificultad’];
} else {
$dificultad = 0;
}
if (isset($_REQUEST[‘nivel’])){
$nivel= $_REQUEST[‘nivel’];
} else {
$nivel = 0;
}

$numPreguntas = 10;
[/php]

2. Obtenemos las preguntas del banco de ejercicios

Debemos introducir la clave (Access key) que la plataforma Apicultur nos dio cuando nos registramos. A continuación se genera una URL con los ejercicios.

[php autolinks=”false” gutter=”true” collapse=”false” firstline=”4″ highlight=”true” light=”true” smarttabs=”true” tabsize=”4″ toolbar=”true”]

function obtenerPreguntas($numPreguntas,$dificultad,$nivel) {
#API Key de nuestra aplicación en APICultur. Para más informacion: http://www.apicultur.com/instrucciones/
$access_key = "PON_TU_ACCESS_KEY_AQUI";

$url="http://store.apicultur.com/api/ejercicioortografiagj/1.0.0/".$numPreguntas."/".$dificultad."/".$nivel;

[/php]

3. Llamada a la API

De esta manera, la API accede al banco de ejercicios y devuelve resultados extraídos de él. Lo que nos devuelve es un objeto JSON, es decir, texto sin formato, sin botones, cajas o cualquier tipo de diseño.

[php autolinks=”false” gutter=”true” collapse=”false” firstline=”4″ highlight=”true” light=”true” smarttabs=”true” tabsize=”4″ toolbar=”true”]

#Iniciamos curl
$ch = curl_init();

#Pasamos nuestro API Key y señalamos que lo que nos van a devolver es JSON
curl_setopt($ch,CURLOPT_HTTPHEADER,array( ‘Accept: application/json’, ‘Authorization: Bearer ‘ . $access_key ));

#Pasamos la url de la api
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

#Introducimos en una variable el valor que nos devuelve la api
$respuesta = curl_exec($ch);

$http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);

#Cerrar el recurso cURL y liberar recursos
curl_close($ch);
[/php]

4. Comprobación del proceso

Si nos devuelve “200” es que todo ha funcionado correctamente y habremos obtenido nuestras preguntas. Si ocurre cualquier problema obtendremos un mensaje de error.

[php autolinks=”false” gutter=”true” collapse=”false” firstline=”4″ highlight=”true” light=”true” smarttabs=”true” tabsize=”4″ toolbar=”true”]

#Comprobamos el código devuelto por la API para ver que todo ha salido correctamente y en caso positivo devolvemos ok
switch ($http_status) {
case ‘200’:
$obj = json_decode($respuesta);
break;
default:
echo "<br/>error al obtener las preguntas.";
echo "<br/>Error:" .$http_status ;
break;
[/php]

5. Para dar formato a nuestros ejercicios

Tendremos que introducir el código según lo que queramos mostrar (cajas, botones…) El ejemplo para la plantilla que hemos visto anteriormente sería el siguiente:

[php autolinks=”false” gutter=”true” collapse=”false” firstline=”4″ highlight=”true” light=”true” smarttabs=”true” tabsize=”4″ toolbar=”true”]

$pregunta = $cuestion->{‘pregunta’};
$correcta = $cuestion->{‘correcta’};
$respuestas = $cuestion->{‘respuestas’};

echo "<div class=’pregunta’ id=’pregunta".$i."’>".$i."." .$pregunta."</div>";

foreach ($respuestas as $respuesta){

if ($respuesta==$correcta){
echo"<input type=’button’ value=’".$respuesta."’ onclick=’corregir("pregunta".$i."","".str_replace("_",$correcta,$pregunta)."",true)’ />";
} else {
echo"<input type=’button’ value=’".$respuesta."’ onclick=’corregir("pregunta".$i."","".str_replace("_",$correcta,$pregunta)."",false)’ />";
}

}

$i++;

echo "</p>";

}
?><div><a href="ejercicio_ortografia.php">Volver</a></div><?
}
} else {

?>

<p>
<form action="ejercicio_ortografia.php" method="POST" name="theform">
dificultad: <input type="text" name="dificultad" />
<h6>(Deberá tomar un valor entre 1 y 4)</h6><br/>
nivel: <input type="text" name="nivel" />
<h6>(Deberá tomar un valor entre 1 y 4)</h6><br/>
<input type="submit" value="¡Dame ejercicios!" />
[/php]

Esto nos permite configurar el diseño como queramos. Cada usuario puede cambiarlo según sus necesidades, incluir mensajes de acierto y error, cambiar el color de la fuente, etc.

Para acceder al código fuente completo

Si quieres acceder al código fuente completo puedes descargarlo en este enlace.

Enlaces recomendados
Tagged with →  
Share →