Commit 358d18a6 authored by Mathieu's avatar Mathieu Committed by GitHub
Browse files

Merge pull request #2 from InnovaLangues/dirty-fix

Dirty fix
parents 3ccfb501 ca0874d0
......@@ -41,6 +41,8 @@ Contributors
* Arnaud Bey
* Benjamin Abrial
* Mathieu Loiseau
* Typos
* Yoann Goudin
Credits
--------
......
<script>
function dispalyMoreLanguages(){
//var dl=document.getElementById("list_lang");
var t=document.getElementById("userlang_spoken");
var count = t.getElementsByTagName("tr").length;
if (count === 10) { return;}
var tr = t.insertRow(count);
//var tr = document.createElement("tr");
var td = tr.insertCell(0);
td.align = "center";
//var td = document.createElement("td");
var i = document.createElement('input');
i.type = "text";
i.required="required";
i.setAttribute('list','iso');
i.setAttribute('name','choix_langs_'.concat(count));
i.setAttribute('onchange', 'updateRadio(this);');
//i.list="iso";
i.size="10";
td.appendChild(i);
// tr.appendChild(td);
var td = tr.insertCell(1);
//td = document.createElement('td');
td.align="center";
i = document.createElement('input');
i.type="text";
i.required="required";
i.setAttribute('list','lang_level');
i.setAttribute('name','choix_niveau_'.concat(count));
i.size="10";
td.appendChild(i);
//tr.appendChild(td);
var td = tr.insertCell(2);
//td = document.createElement('td');
td.align="center";
i = document.createElement('input');
i.type="radio";
i.setAttribute('name','lang_game');
td.appendChild(i);
//tr.appendChild(td);
//t.appendChild(tr);
}
function dispalyLessLanguages(){
var t=document.getElementById("userlang_spoken");
function addLanguage(){
var t = document.getElementById("userlang_spoken");
var count = t.getElementsByTagName("tr").length;
if (count > 2) { t.deleteRow(count-1); }
if (count === 10) { return;}
// spoken language
var options = document.getElementById('languages').innerHTML;
var tr = t.insertRow(count);
var td = tr.insertCell(0);
td.align = "center";
var s = document.createElement('select');
s.required="required";
s.setAttribute('name','choix_langs_'.concat(count));
s.setAttribute('onchange', 'updateRadio(this);');
s.innerHTML = options;
s.selectedIndex = 0;
td.appendChild(s);
// level
var td = tr.insertCell(1);
options = document.getElementById('levels').innerHTML;
td.align="center";
s = document.createElement('select');
s.required="required";
s.setAttribute('name','choix_niveau_'.concat(count));
s.innerHTML = options;
s.selectedIndex = 0;
td.appendChild(s);
// Game language
var td = tr.insertCell(2);
td.align="center";
i = document.createElement('input');
i.type="radio";
i.setAttribute('name','lang_game');
td.appendChild(i);
}
function removeLastLanguage(){
var t = document.getElementById("userlang_spoken");
var count = t.getElementsByTagName("tr").length;
if (count > 2) {
t.deleteRow(count-1);
}
}
function updateRadio(l) {
var tr = l.parentNode.parentNode;
var game = tr.cells[2].children[0];
game.setAttribute('value', l.value);
}
</script>
\ No newline at end of file
}
</script>
......@@ -28,6 +28,7 @@ $lang['login'] = 'Connexion';
$lang['logout'] = 'Déconnexion';
$lang['langue_apprentissage'] = 'Indiquez la/les langue(s) que vous apprenez:';
$lang['ajout_langue'] = 'ajouter une langue parlée';
//Menu et boutons de formulaires
$lang['cmd_submit'] = 'Valider';
$lang['cmd_cancel'] = 'Annuler';
......@@ -53,7 +54,7 @@ $lang['select_role'] = 'Selectionez un rôle';
$lang['card_create'] = 'Création d\'une carte';
$lang['card_description'] = 'Description d\'une carte';
$lang['game_arbitrage'] = 'Arbitrage d\'une partie';
$lang['card_lexinno']='Carte liée à votre lexique';
$lang['card_lexinno'] = 'Carte liée à votre lexique';
// Description d'une carte par un Oracle oracle.card.display.html
$lang['warning'] = 'Attention, votre micro n\'a pas été activé.';
......@@ -80,10 +81,10 @@ $lang['word_direction'] = 'Niveau du CECR de ce mot (indépendamment des mots in
$lang['level_easy'] = 'Facile';
$lang['level_medium'] = 'Moyen';
$lang['level_hard'] = 'Difficile';
$lang['level_beg'] = "Débutant";
$lang['level_int'] = "Intermédiaire";
$lang['level_adv'] = "Avancé";
$lang['level_nat'] = "Natif";
$lang['level_beg'] = 'Débutant';
$lang['level_int'] = 'Intermédiaire';
$lang['level_adv'] = 'Avancé';
$lang['level_nat'] = 'Natif';
$lang['validate'] = 'Valider';
$lang['reset'] = 'Réinitialiser';
......@@ -127,7 +128,7 @@ $lang['RecordCard'] = 'Si vous voulez proposer un enregistrement pour cette cart
$lang['RecordArbitre'] = 'Si vous voulez arbitrer cet enregistrement cliquez ici : ';
$lang['restart'] = 'Rejouer une partie ? ';
$lang['start'] = 'Il est temps de jouer !';
$lang['start_playback']="Commencer l'écoute";
$lang['start_playback'] = "Commencer l'écoute";
$lang['give_up'] = 'Abandonner';
$lang['devin-nope'] = 'Pas ce mot…';
$lang['game'] = 'Jouer';
......@@ -149,7 +150,7 @@ $lang['score_diviner'] = 'Devin';
$lang['score_global'] = 'Score global';
$lang['userName'] = 'Joueur';
$lang['global_score'] = 'Classement général';
$lang['scores_by_language'] = "Scores par langue";
$lang['scores_by_language'] = 'Scores par langue';
// Timeout
$lang['diviner_timeout'] = 'Tu n\'as pas fourni de réponse dans le temps imparti';
......@@ -200,21 +201,20 @@ $lang['Oracle_medium'] = "Trois mots interdits et 1′ d'enregistrement (mise&nb
$lang['Oracle_hard'] = "Six mots interdits et 30″ d'enregistrement (mise&nbsp;: 30 points).";
$lang['Devin_easy'] = "2 fois la durée de l'enregistrement pour une mise de 10 points.";
$lang['Devin_medium'] = "1,5 fois la durée de l'enregistrement pour une mise de 20 points.";
$lang['Devin_hard'] = "Enregistrement + 8″ pour une mise de 30 points.";
$lang['Devin_hard'] = 'Enregistrement + 8″ pour une mise de 30 points.';
$lang['Card_created'] = "Merci d'avoir créé une carte&nbsp;: ";
$lang['Rec_verified'] = "Merci d'avoir vérifié l'enregistrement de ";
$lang['Oracle_verif'][true] = " a vérifié votre enregistrement et pense que vous n'avez pas utilisé de mot interdit";
$lang['Oracle_verif'][false] = " a vérifié votre enregistrement et pense que vous n'avez pas utilisé de mot interdit";
$lang['Oracle_devin'][false] = " a écouté votre enregistrement et n'a pas trouvé le mot…";
$lang['Oracle_devin'][true] = " a écouté votre enregistrement et a trouvé&nbsp;!";
$lang['Devin_played'] = "Vous avez écouté un enregistrement de ";
$lang['Devin_oracle'][true] = "Et vous avez trouvé&nbsp;!";
$lang['Oracle_devin'][true] = ' a écouté votre enregistrement et a trouvé&nbsp;!';
$lang['Devin_played'] = 'Vous avez écouté un enregistrement de ';
$lang['Devin_oracle'][true] = 'Et vous avez trouvé&nbsp;!';
$lang['Devin_oracle'][false] = "Mais vous n'avez pas trouvé…";
$lang['img_augur'] = "./profil/diviner.jpg";
$lang['img_druid'] = "./profil/druide.jpg";
$lang['img_oracle'] = "./profil/oracle.jpg";
$lang['img_augur'] = './profil/diviner.jpg';
$lang['img_druid'] = './profil/druide.jpg';
$lang['img_oracle'] = './profil/oracle.jpg';
//Erreur upload
$lang['file_unupload'] = 'Attention le fichier a mal été uploadé.';
......@@ -225,4 +225,4 @@ $lang['uploadProb'] = 'Le fichier n\'a pas été uploadé...';
//
$lang['same_lang'] = 'Vous avez choisi deux fois la même langue dans langues parlées ';
//Administration cartes
$lang['admin'] = "Administration&nbsp;: Cliquer sur la croix pour supprimer la carte";
$lang['admin'] = 'Administration&nbsp;: Cliquer sur la croix pour supprimer la carte';
<?php
require_once('./sys/db.class.php');//probably useless
class IsoLang{
private $db;
private static $common_languages = array( "en"=>"Anglais",
"fr"=>"Français",
"it"=>"Italien",
"es"=>"Espagnol",
"zh"=>"Chinois");
public function __construct(){
$this->db = db::getInstance();
}
public function language_code_for($french){
$code = array_search($french,self::$common_languages,true);
if($code===false){
$this->db->query("SELECT `iso_code` FROM `langues` WHERE `french`='".
$french."'");
if($this->db->affected_rows() == 1){
$code = $this->db->fetch_object()->iso_code;
}
else{
$code = false;
}
}
return $code;
}
public function any_to_iso($any){
$res = $this->language_code_for($any);
if($res === false){
if($this->french_for($any) !== false){
$res = $any;
}
else{
throw new Exception("$any n'est ni une langue en français, ni un code iso.");
}
}
return $res;
}
public function any_to_french($any){
$res = $this->french_for($any);
if($res === false){
if($this->language_code_for($any) !== false){
$res = $any;
}
else{
throw new Exception("$any n'est ni une langue en français, ni un code iso.");
}
}
return $res;
}
public function french_for($isoCode){
if(!isset(self::$common_languages[$isoCode])){
$this->db->query("SELECT `french` FROM `langues` WHERE `iso_code`='".
$isoCode."'");
if($this->db->affected_rows() == 1){
$french = $this->db->fetch_object()->french;
}
else{
$french = false;
}
}
else{
$french = self::$common_languages[$isoCode];
}
return $french;
}
public function get_all_codes($language="french"){
$res = array();
$this->db->query("SELECT `iso_code`,`$language` FROM `langues`");
if($this->db->affected_rows() >= 1){
while($tmpObj = $this->db->fetch_object()){
$res[$tmpObj->iso_code]=$tmpObj->{$language};
}
}
else{
$res = false;
}
return $res;
}
}
?>
<?php
require_once './sys/db.class.php';//probably useless
class IsoLang
{
private $db;
private static $common_languages = array('en' => 'Anglais',
'fr' => 'Français',
'it' => 'Italien',
'es' => 'Espagnol',
'zh' => 'Chinois', );
public $commonlyUsed = ['Allemand', 'Anglais', 'Arabe', 'Chinois', 'Espagnol', 'Français', 'Hindi', 'Russe'];
public function __construct()
{
$this->db = db::getInstance();
}
public function language_code_for($french)
{
$code = array_search($french, self::$common_languages, true);
if ($code === false) {
$this->db->query("SELECT `iso_code` FROM `langues` WHERE `french`='".$french."'");
if ($this->db->affected_rows() == 1) {
$code = $this->db->fetch_object()->iso_code;
} else {
$code = false;
}
}
return $code;
}
public function any_to_iso($any)
{
$res = $this->language_code_for($any);
if ($res === false) {
if ($this->french_for($any) !== false) {
$res = $any;
} else {
throw new Exception("$any n'est ni une langue en français, ni un code iso.");
}
}
return $res;
}
public function any_to_french($any)
{
$res = $this->french_for($any);
if ($res === false) {
if ($this->language_code_for($any) !== false) {
$res = $any;
} else {
throw new Exception("$any n'est ni une langue en français, ni un code iso.");
}
}
return $res;
}
public function french_for($isoCode)
{
if (!isset(self::$common_languages[$isoCode])) {
$this->db->query("SELECT `french` FROM `langues` WHERE `iso_code`='".
$isoCode."'");
if ($this->db->affected_rows() == 1) {
$french = $this->db->fetch_object()->french;
} else {
$french = false;
}
} else {
$french = self::$common_languages[$isoCode];
}
return $french;
}
public function get_all_codes($language = 'french')
{
$res = array();
$this->db->query("SELECT `iso_code`,`$language` FROM `langues`");
if ($this->db->affected_rows() >= 1) {
while ($tmpObj = $this->db->fetch_object()) {
$res[$tmpObj->iso_code] = $tmpObj->{$language};
}
} else {
$res = false;
}
return $res;
}
}
......@@ -4,7 +4,6 @@ include('./views/page.header.html');
require_once('./sys/load_iso.php');
$lang_iso = new IsoLang();
include('./controllersJS/display_lang.js');
?>
<div id="main-container">
<div id="jrForm">
......@@ -51,20 +50,6 @@ include('./controllersJS/display_lang.js');
<dl>
<dt><label for="userlang_spoken" ><?php echo "Langues parlées";?></label></dt>
<dd>
<datalist id="lang_level">
<option value="Débutant">
<option value="Intermédiaire">
<option value="Avancé">
<option value="Natif">
</datalist>
<datalist id="iso">
<?php
$tableLang=$lang_iso->get_all_codes();
foreach($tableLang as $value){
echo "<option value='".$value."'>";
}
?>
</datalist>
<table id="userlang_spoken">
<tr>
<td width="25%" align="center">Langue</td>
......@@ -73,26 +58,61 @@ include('./controllersJS/display_lang.js');
</tr>
<?php
$i=1;
$languages = $lang_iso->get_all_codes();
$commonlyUsed = $lang_iso->commonlyUsed;
$levels = ["Débutant", "Intermédiaire", "Avancé", "Natif"];
$spoken_lang = explode(';',$this->spoken_lang);
$niveaux = explode(';',$this->niveau);
$userlang_game = strlen($this->userlang_game) > 0 ? $lang_iso->french_for($this->userlang_game) : '';
if (sizeof($spoken_lang) >= 1 && !empty($spoken_lang[0])) {
for ($i=0; $i<sizeof($spoken_lang); $i++) {
$languageid = ($i === 0) ? "id='languages'" : "";
$levelid = ($i === 0) ? "id='levels'" : "";
$l = $spoken_lang[$i];
$n = $niveaux[$i];
$i++;
//foreach ($spoken_lang as $l) {
if (strlen($l) > 0) {
echo "<tr><td align='center'>" .
"<input list='iso' type='text' name='choix_langs_" . $i . "' required='required' size='10' onchange=\"updateRadio(this);\" value='" . $l . "'/>" .
"</td>" .
"<td align='center'><input list='lang_level' name='choix_niveau_" . $i . "' required='required' size='10'/ value='" . $n . "'></td>";
if (strlen($l) > 0) {
?>
<tr>
<td align='center'>
<select <?php echo $languageid;?> name='choix_langs_<?php echo $i; ?>' required='required' onchange='updateRadio(this);'>
<option value=''>--</option>
<optgroup label='Commonly Used'>
<?php
foreach($commonlyUsed as $language){
echo "<option value='".$language."'>".$language."</option>";
}
?>
</optgroup>
<optgroup label='All'>
<?php
foreach($languages as $language){
$selected = ($l === $language) ? "selected" : "";
echo "<option value='".$language."' ".$selected.">".$language."</option>";
}
?>
</optgroup>
</select>
</td>
<td align='center'>
<select <?php echo $levelid;?> name='choix_niveau_<?php echo $i; ?>' required='required'>
<option value=''>--</option>
<?php
foreach($levels as $level){
$selected = ($n === $level) ? "selected" : "";
echo "<option value='".$level."' ".$selected.">".$level."</option>";
}
?>
</select>
</td>
<?php
if (strcmp($l,$userlang_game) == 0) {
echo "<td align='center'><input type='radio' name='lang_game' required='required' checked value='" . $l . "'/></td></tr>";
} else {
echo "<td align='center'><input type='radio' name='lang_game' required='required' value='" . $l . "'/> </td></tr>";
}
// $i++;
}
$i--;
}
......@@ -109,10 +129,10 @@ include('./controllersJS/display_lang.js');
</table>
<table>
<tr><!-- ici, on include display_lang.js pour ajouter des langues ou les retirer-->
<td><button type="button" id="langueAppriseBtn" onClick="dispalyMoreLanguages();" align="center"><?php echo $lang['ajout_langue'];?></button></td>
<td><button type="button" id="langueAppriseBtn" onClick="addLanguage();" align="center"><?php echo $lang['ajout_langue'];?></button></td>
</tr>
<tr>
<td><button type="button" id="langueAppriseCancel" onClick="dispalyLessLanguages();" align="center"><?php echo "Retirer langue";?></button></td>
<td><button type="button" id="langueAppriseCancel" onClick="removeLastLanguage();" align="center"><?php echo "Retirer langue";?></button></td>
</tr>
</table>
......
......@@ -13,10 +13,9 @@ $notif->readNotif();
<head>
<title><?php echo $title; ?></title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script type="text/javascript" src="style/default.js/js/jquery-1.11.2.min.js"></script>
<!-- Adaptation au Bootstrap -->
......@@ -35,7 +34,7 @@ $notif->readNotif();
<!--Module de son : -->
<script src="style/default.js/RecordRTC.js"></script>
<script src="style/default.js/RecordRTC.js"></script>
<!-- ALL jQuery Tools. No jQuery library -->
<script src="http://cdn.jquerytools.org/1.2.6/full/jquery.tools.min.js"></script>
......@@ -44,8 +43,6 @@ $notif->readNotif();
<script src="controllersJS/Notification/modernizr.custom.js"></script>
<script src="controllersJS/sendSQL.js"></script>
<script src="controllersJS/notif.js"></script>
</head>
<body>
<div id="header-logo"></div>
......
<?php
$title = 'S\'enregister';
$title = 'S\'enregistrer ';
include('./views/page.header.html');
require_once('./sys/load_iso.php');
$lang_iso = new IsoLang();
include('./controllersJS/display_lang.js');
?>
<div id="main-container">
<div id="jrForm">
<form class="form-jr" role="form" id="register" method="post" action="./" enctype="multipart/form-data">
......@@ -48,20 +49,6 @@ include('./controllersJS/display_lang.js');
<dl>
<dt><label for="userlang_spoken" >Choisissez les langues que vous parlez</label></dt>
<dd>
<datalist id="lang_level">
<option value="Débutant">
<option value="Intermédiaire">
<option value="Avancé">
<option value="Natif">
</datalist>
<datalist id="iso">
<?php
$tableLang=$lang_iso->get_all_codes();
foreach($tableLang as $value){
echo "<option value='".$value."'>";
}
?>
</datalist>
<table id="userlang_spoken">
<tr>
<td width="25%" align="center">Langue</td>
......@@ -69,22 +56,52 @@ include('./controllersJS/display_lang.js');
<td width="50%" align="center">Langue de jeu</td>
</tr>
<tr>
<td align="center"><input list="iso" type="text" name="choix_langs_1" required="required" size="10" onchange="updateRadio(this);"/></td>
<td align="center"><input list="lang_level" name="choix_niveau_1" required="required" size="10"/></td>
<td>
<select id="languages" name="choix_langs_1" required="required" onchange="updateRadio(this);">
<option value="">--</option>
<?php
$languages = $lang_iso->get_all_codes();
$commonlyUsed = $lang_iso->commonlyUsed;
?>
<optgroup label="Commonly used">
<?php
foreach($commonlyUsed as $language){
echo "<option value='".$language."'>".$language."</option>";
}
?>
</optgroup>
<optgroup label="All">
<?php
foreach($languages as $language){
echo "<option value='".$language."'>".$language."</option>";
}
?>
</optgroup>
</select>
</td>
<td align="center">
<select id="levels" name="choix_niveau_1" required="required">
<option value="">--</option>
<?php
$levels = ["Débutant", "Intermédiaire", "Avancé", "Natif"];
foreach($levels as $level){
echo "<option value='".$level."'>".$level."</option>";
}
?>
</select>
</td>
<td align="center"><input type="radio" name="lang_game" required="required" /></td>
</tr>
</table>
<table>
<tr>
<td><button type="button" id="langueAppriseBtn" onClick="dispalyMoreLanguages();" align="center">Ajouter une langue </button></td>
<td><button type="button" id="langueAppriseBtn" onClick="addLanguage();" align="center">Ajouter une langue </button></td>
</tr>
<tr>
<td><button type="button" id="langueAppriseCancel" onClick="dispalyLessLanguages();" align="center">Retirer une langue</button></td>
<td><button type="button" id="langueAppriseCancel" onClick="removeLastLanguage();" align="center">Retirer une langue</button></td>
</tr>
</table>
</dd>
</dl>
......@@ -102,7 +119,7 @@ include('./controllersJS/display_lang.js');
<dl>
<dt><label for="userlang">Choisissez une langue d'interface</label></dt><!-- userlang= langue d'interface -->
<dd>
<select id="userlang" name="userlang" >
<select required id="userlang" name="userlang" >
<option value =""></option>
<option value ="fr">Français</option>
<option value ="en">Anglais</option>
......