Subversion Repositories Applications.dictionnaire

Compare Revisions

Ignore whitespace Rev 2 → Rev 3

/scripts/dictionnaire.config.defaut.js
New file
0,0 → 1,0
var URL_BASE_SERVICE = 'http://localhost/dictionnaire/services/0.1/dictionnaire/';
/scripts/dictionnaire.css
17,7 → 17,8
padding-bottom: 20px;
padding-top: 0px;
border:1px solid black;
z-index: 220;
z-index: 1000;
text-decoration: none;
}
 
.definition_container_fleche {
27,5 → 28,22
left: 10px;
position: relative;
top: -20px;
z-index: 240;
z-index: 999;
border
}
 
.definition {
border-bottom: none;
text-decoration: none;
}
 
#conteneur_activation_definition {
position: fixed;
left: 0;
top: 0;
padding: 5px;
background-color: #EAEDCD;
border: 1px dotted black;
font-family: Arial,Helvetica,Verdana,sans-serif;
font-size: 0.85em;
}
/scripts/dictionnaire.js
1,11 → 1,13
var dictionnaire = new Array();
var motsAyantDefinition = new Array();
var noeudAyantsDefinition = new Array();
var motsAyantDefinition = null;
var mouseX = null;
var mouseY = null;
var tempsDepuisRequeteAjax = 0;
var active = false;
 
function getUrlBaseService() {
return 'http://localhost/dictionnaire/services/0.1/dictionnaire/';
// provient de dictionnaire.config.js
return URL_BASE_SERVICE;
}
 
function supprimerAccents(str) {
43,6 → 45,20
.replace('œ',"(œ|oe)");
}
 
function afficherLienDefinitions() {
html = '<div id="conteneur_activation_definition"><a href="#">rechercher les définitions</a></div>';
$('#conteneur_activation_definition').live('click', function(event) {
event.preventDefault();
supprimerToutesDefinitions();
if(motsAyantDefinition == null) {
getMotsADefinitions();
} else {
ajouterDefinitions(motsAyantDefinition);
}
});
$('body').append(html);
}
 
function normaliserMotPourRecherche(str) {
str = supprimerAccents(str);
str = etendreChaineAccents(str);
49,30 → 65,41
return str;
}
 
$.fn.remplacerDefinition = function(mot) {
motSimplifie = supprimerAccents(mot).toLowerCase();
mot = normaliserMotPourRecherche(mot);
var regExp = new RegExp("("+mot+")", 'ig');
$.fn.remplacerDefinitions = function(mots) {
this.each(function() {
$(this).contents().filter(function() {
return this.nodeType == Node.TEXT_NODE;
return this.nodeType == 3;
}).each(function() {
termeDansTexte = regExp.exec($(this).text());
if(termeDansTexte != null && termeDansTexte.length > 0) {
motOriginal = termeDansTexte[0];
templateMotADefinition = formaterTemplateMotADefinition(motSimplifie, motOriginal);
output = $(this).text().replace(regExp, definitionHtml);
$(this).replaceWith(output);
noeudAyantsDefinition.push($(this));
}
element = $(this);
texte = element.text();
if(texte != "") {
$.each(mots, function(index, valeur) {
def = valeur['cle'];
texte = rechercherEtRemplacerMotParDefinition(texte, def);
});
element.replaceWith(texte);
}
});
});
return this;
}
 
function getMotADefinitions() {
function rechercherEtRemplacerMotParDefinition(texte, mot) {
motSimplifie = supprimerAccents(mot).toLowerCase();
mot = normaliserMotPourRecherche(mot);
exclureSpan = '[^(?:class="definition_term">)]';
regExp = new RegExp(exclureSpan+"[ |,|-|;|.]+("+mot+")[a-zA-Z]{1}", 'ig');
termeDansTexte = regExp.exec(texte);
if(termeDansTexte != null && termeDansTexte.length > 1) {
motOriginal = termeDansTexte[1];
templateMotADefinition = formaterTemplateMotADefinition(motSimplifie, motOriginal);
texte = texte.replace(motOriginal, templateMotADefinition);
}
 
return texte;
}
 
function getMotsADefinitions() {
$.ajax({
url: getUrlBaseService()+'mots/',
success: function(data) {
88,10 → 115,8
}
 
function ajouterDefinitions(motsAvecDefinitions) {
jQuery.each(motsAvecDefinitions, function(index) {
def = motsAvecDefinitions[index]['cle'];
$('p, span, td, th, div').remplacerDefinition(def);
});
set = 'p, span:not("definition_term"), td, pre';
$(set).remplacerDefinitions(motsAvecDefinitions);
}
 
function formaterTemplateMotADefinition(motSimplifie, motOriginal) {
115,7 → 140,7
function afficherDefinition(element) {
mot = element.attr('rel');
if(dictionnaire[mot] != null) {
element.append(formaterDefinition(element));
element.after(formaterDefinition(element));
afficherPopupDefinition();
} else {
chargerDefinitionDistante(element);
122,7 → 147,9
}
}
 
function chargerDefinitionDistante(element) {
function chargerDefinitionDistante(element) {
date = new Date();
tempsDepuisRequeteAjax = date.getTime();
$.ajax({
url: getUrlBaseService()+'def/'+mot,
success: function(data) {
129,7 → 156,7
retour = data;
definition = retour.valeur;
dictionnaire[mot] = definition;
element.append(formaterDefinition(element));
element.after(formaterDefinition(element));
afficherPopupDefinition();
},
dataType: "JSON",
150,7 → 177,7
data = dictionnaire[mot];
defHtml = '<div class="definition_container">'+
'<span class="definition_container_fleche"></span>'+
data+
'<span class="definition">'+data+'</span>'+
'</div>';
return defHtml;
}
162,11 → 189,6
cacherPopupsDefinitions();
}
 
function surFinRequeteAjax() {
supprimerToutesDefinitions();
ajouterDefinitions(motsAyantDefinition);
}
 
$(document).bind('mousemove', function(e){
mouseX = e.pageX;
mouseY = e.pageY - $(window).scrollTop();
173,10 → 195,6
});
 
$(document).ready(function() {
getMotADefinitions();
afficherLienDefinitions();
});
 
$(document).ajaxStop(function() {
t = setTimeout(function(){surFinRequeteAjax()},800)
});