<?PHP
session_start();
/**
\file
\ingroup Dictees
\~french
\brief le texte est divisé en mots
\details : on ajoute un espace avant les ponctuations simples pour que la fonction strtok puisse les identifier.
Le créateur de la dictée peut préciser un nivea présumé (soit en termes de classes françaises, soit en termes de degrés 
Dubois Buyse. (J'avais initialement prévu d'évaluer ce degré, mais, l'échelle ne comportant pas les formes fléchies, 
j'ai préféré abandonner cette idée.)
\~english
\brief The text is parsed  into words.
\details A space character is added before simple punctuations to let strtok identify them.
The creator can specify a level of difficulty (either using the names of french scoling, either using the Dubois-Buyse's 
levels.
*/
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head>
	<meta http-equiv="content-type" content="text/html;charset=utf-8" />
	<link rel="stylesheet" type="text/css" href="styles.css" media="screen" />
	<meta name='statut' content='final' />
	<meta name='description' content='Correcteur de dict&eacute;es' />
	<meta name='keywords' content='tutoriel training ' />
	<title>Kaligraphe analyse de saisie</title>	
    
    <!--
    ___________________________________________________________________________________________________________________
    Kaligraphe : un correcteur de dictées
    Copyright (C) 20011-2012. Michel Billard Sirakawa
    Site officiel : sirakawa.fr
    contact : BillardMchl@aol.com
    Ce programme est un logiciel libre ; vous pouvez le redistribuer et/ou le modifier au titre des clauses de la 
    Licence Publique   G&eacute;n&eacute;rale GNU, 
    telle que publi&eacute;e par la Free Software Foundation.
    Ce programme est distribu&eacute; dans l'espoir qu'il sera utile, mais SANS AUCUNE GARANTIE ; sans m&ecirc;me 
    une garantie implicite  de COMMERCIABILITE 
    ou DE CONFORMITE A UNE UTILISATION PARTICULIERE. 
    Voir la Licence Publique G&eacute;n&eacute;rale GNU pour plus de d&eacute;tails. 
    Vous devriez avoir re&ccedil;u un exemplaire de la Licence Publique G&eacute;n&eacute;rale GNU avec ce programme ; 
    si ce n'est pas le cas,  &eacute;crivez &agrave; la Free Software Foundation Inc.,
    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
    
    --> 
 </head>
<?PHP
	include ("kaligraphe.php");
	error_reporting(NIVEAU);
	include ("scripts.js");
	extract ($_SESSION);
	extract ($_POST);
	$auteur_dictee=htmlentities($auteur_dictee, ENT_QUOTES, "UTF-8");
	$titre_dictee=htmlentities($titre_dictee,ENT_QUOTES, "UTF-8");		
	/** \~ brief $ok booleen : autorisation correcte*/	
	$ok = verifier_autor ($autorisation_clair, $autorisation);
	if ($ok == false)
	{
		print "$retour_accueil";
		exit;
	}
	/**
	\~french
	\brief $texte string le texte de la dictée	
	\details Les fonction tokeniser() et normaliser_ponctuation() l'ont modifié pour le rendre utilisable par strtok de PHP
	\~english
	\brief $texte string text of the dictation
	\details  Fonctions tokeniser() and normaliser_ponctuation()modify it to let it be used by strtok de PHP	
	*/
	$texte = tokeniser(normaliser_ponctuation($le_texte));
	
	/**
	\~french	
	 \brief $mot string chaque mot isolé par la fonction strtok
	\details On constitue une chaine contenant une chaîne \<input\> pour chaque mot.
	\~english
	 \brief $mot string each word parsed by function strtok
	\details We build a string with a string  \<input\> for each word.	
	*/
	$mot = strtok($texte, " \n\t' ");
	
	/**
	\~french
	\brief $inputs string contenant le code html de l' \<input\> de chaque mot
	\details Tous les input on pour nom mots[]: ce tableau est transformé en chaine avant l'enregistrement dans la BDD.
	\~english
	\brief $inputs string: html code of the \<input\> of each word.
	\details All input are named mots[]:tjhis array is transformed to string before saving into the  BDD.	
	*/
	$inputs = "";
	
	/**
	\~french
	\brief $longueur_ligne integer longueur en pixels de la ligne d'inputs
	\~english
	\brief $longueur_ligne integer length in pixels of a line of inputs	
	*/
	$longueur_ligne = 0;

	while ($mot !== false) 	//___________________________________________________________________tant qu on trouve un mot
	{
		$mot = str_replace("$","&apos;", $mot); //on remplace l'apostrophe par l'entité (si on le fait avant, strtok fonctionne mal 
		$mot = str_replace("_","&hellip;", $mot); //on remplace le _ par l'entité ... 		
		/**
		$nombre_col integer nombre de colonnes nécessaire pour que l'input affiche le mot avec un minimum d'espaces en trop 
		*/		
 
  		if (trim($mot) != "")//______________________________si le mot n'est pas vide 
 		{
  			if (strpos($mot, "--") == true)
			{	
				print "il faut redécouper $mot";
			}
			$nombre_col = colonnes_de_texte($mot,12);
  			$longueur_ligne += $nombre_col;

 			if ($longueur_ligne >= 60)//___estimation
 			{
 				
				if (in_array($mot, $ponctuations) === false)
				{ 				
 					$saut = "<br />";
 					$longueur_ligne = 0	;
 				}
 				else
 				{
 					$saut = "";
 				} 
 			}
 			else
 			{
 				$saut = "";
 		 	}	
 			$inputs .= "<input name = 'mots[]' value = '$mot' size ='$nombre_col' />$saut";
  		}
 		$mot = strtok(" \n\t ");
	}
$le_texte = str_replace("$","'", $le_texte);
/**
\~french
\brief $le_texte string le texte de la dictée simplement passé par HTMLENTITIES
\~english
\brief $le_texte string text of the dictation after HTMLENTITIES
*/
$le_texte = htmlentities ($le_texte, ENT_QUOTES, "utf-8");


/**
\~french
\brief $chaine string
\details La chaine contenant l'affichage  de la page.
\~english
\brief $chaine string
\details String containing all that will be displayed.
*/	
$chaine = "<body>
	$Titres[10]
	<form method = 'post' id ='dictees' action = 'enregistrer.php'>
		<input type = 'hidden' name ='autorisation_clair' value = '$autorisation_clair' />
		<input type = 'hidden' name ='media' value = '$media' />
		<input type = 'hidden' name ='degre' value = '$degre' />
		<input type = 'hidden' name ='introduction' value = '$introduction' />
		<div class='tableau'>
			<div class='ligne'>
					$Labels[15] <input id = 'auteur_dictee' name = 'auteur_dictee' size='30' rows='1' value = '$auteur_dictee' />
					$Labels[14] <input id = 'titre_dictee' name = 'titre_dictee' size='30' rows='1' value = '$titre_dictee' />
			</div>
			<div class='ligne'>
				$Labels[16]<br /><textarea name = 'introduction'  cols='120' rows='3'>$introduction</textarea>
			</div>
			<div class='ligne'>$Indications[120]</div>
		</div>
		<div class='tableau'>		
			<div class='ligne'>
				$Labels[17]<br /><textarea  name ='le_texte' cols= '120' rows='6' readonly='readonly'>$le_texte</textarea>
			</div>
			<div class='ligne'>$Indications[121]</div>
			<div class='ligne'>$Labels[20]<br />$inputs</div>
			<div class='ligne'>$Indications[122]</div>
		</div>
		<div class='tableau'>			
		$Boutons[19]
		$Boutons[18]
	</form>
	</div>
	$copyright
	</body>";
	print "$chaine";
?>
</html>