Subversion Repositories Applications.dictionnaire

Rev

Rev 15 | Rev 17 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 15 Rev 16
Line 26... Line 26...
26
  3) remplacerDefinitions() prend la liste des nodes susceptibles de nécessiter un traitement
26
  3) remplacerDefinitions() prend la liste des nodes susceptibles de nécessiter un traitement
27
  et ignore ceux ayant déjà été traités [max_passages] fois (4 par défaut)
27
  et ignore ceux ayant déjà été traités [max_passages] fois (4 par défaut)
Line 28... Line 28...
28
 
28
 
29
  4) pour chaque node:
29
  4) pour chaque node:
30
  * le compteur de passage est incrémenté
30
  * le compteur de passage est incrémenté
Line 31... Line 31...
31
  * nesseciteSubstitution() est appellé
31
  * necessiteSubstitution() est appellé
32
 
32
 
33
  == nesseciteSubstitution() ==:
33
  == necessiteSubstitution() ==:
34
  ** Utilise regexp_thin pour extraire les mots restant à définir ainsi qu'une partie de leur contexte.
34
  ** Utilise regexp_thin pour extraire les mots restant à définir ainsi qu'une partie de leur contexte.
35
  ** Utilise regexp_complete pour extraire les mots au plus proche de leur bodures avec un moindre risque d'erreur
35
  ** Utilise regexp_complete pour extraire les mots au plus proche de leur bodures avec un moindre risque d'erreur
36
  ** exlue les faux positifs possibles de regexp_thin
36
  ** exlue les faux positifs possibles de regexp_thin
Line 37... Line 37...
37
  ** renvoi les matches de regexp_thin (qui présente plus de contexte)
37
  ** renvoi les matches de regexp_thin (qui présente plus de contexte)
38
  =============================
38
  =============================
39
 
39
 
Line 40... Line 40...
40
  * pour chaque correspondance retournée par nesseciteSubstitution(),
40
  * pour chaque correspondance retournée par necessiteSubstitution(),
Line 56... Line 56...
56
var motsAyantDefinition = null;
56
var motsAyantDefinition = null;
57
var mouseX = null;
57
var mouseX = null;
58
var mouseY = null;
58
var mouseY = null;
59
var active = false;
59
var active = false;
60
var set = '#zone-droite p, #zone-droite span:not(.definition_term), #zone-droite td, #zone-droite pre, #zone-droite div, #zone-droite li';
60
var set = '#zone-droite p, #zone-droite span:not(.definition_term), #zone-droite td, #zone-droite pre, #zone-droite div, #zone-droite li';
-
 
61
var urlPage = window.location.href;
Line 61... Line 62...
61
 
62
 
62
// Note: utiliser \\b plutôt que \\W pour matcher les bordures de mots
63
// Note: utiliser \\b plutôt que \\W pour matcher les bordures de mots
63
// en incluant début et fin de ligne
64
// en incluant début et fin de ligne
64
var regexp_complete = null;
65
var regexp_complete = null;
Line 99... Line 100...
99
        $(this).contents().filter(function() {
100
        $(this).contents().filter(function() {
100
        	return (this.nodeType == 3 && ! (($(this).data("count") || 0) > max_passages));
101
        	return (this.nodeType == 3 && ! (($(this).data("count") || 0) > max_passages));
101
        }).each(function() {
102
        }).each(function() {
102
			$(this).data("count", ($(this).data("count") || 0) + 1);
103
			$(this).data("count", ($(this).data("count") || 0) + 1);
103
			ttexte = texte = $(this).text();
104
			ttexte = texte = $(this).text();
104
			matches_list = nesseciteSubstitution(texte)[0];
105
			matches_list = necessiteSubstitution(texte)[0];
105
			if(!matches_list) return true; // TODO: data("count") = max_passages ?
106
			if(!matches_list) return true; // TODO: data("count") = max_passages ?
Line 106... Line 107...
106
 
107
 
107
			for(i in matches_list) {
108
			for(i in matches_list) {
108
				couple = matches_list[i];
109
				couple = matches_list[i];
Line 130... Line 131...
130
	bloc_replace = full_contexte.replace(mot_contextualise, templateMotADefinition);
131
	bloc_replace = full_contexte.replace(mot_contextualise, templateMotADefinition);
131
	return texte.replace(full_contexte, bloc_replace);
132
	return texte.replace(full_contexte, bloc_replace);
132
}
133
}
Line 133... Line 134...
133
 
134
 
134
 
135
 
Line 135... Line 136...
135
function nesseciteSubstitution(texte) {
136
function necessiteSubstitution(texte) {
136
	var liste = [], liste_complete = [];
137
	var liste = [], liste_complete = [];
137
 
138
 
Line 164... Line 165...
164
		dataType: "JSON",
165
		dataType: "JSON",
165
		global: false
166
		global: false
166
	});
167
	});
167
}
168
}
Line -... Line 169...
-
 
169
 
-
 
170
function getMotsADefinitionsEtRemplacer() {
-
 
171
	if(motsAyantDefinition == null) {
-
 
172
		getMotsADefinitions();
-
 
173
	} else {
-
 
174
		if(regexp_complete == null || regexp_thin == null) {
-
 
175
			batirRegexp(motsAyantDefinition);
-
 
176
		}
-
 
177
		$(set).remplacerDefinitions(motsAyantDefinition);
-
 
178
	}
-
 
179
}
168
 
180
 
169
function batirRegexp(mots) {
181
function batirRegexp(mots) {
170
	var restr = '';
182
	var restr = '';
171
	$.each(mots, function(index, mot) {
183
	$.each(mots, function(index, mot) {
Line 264... Line 276...
264
	mouseX = e.pageX;
276
	mouseX = e.pageX;
265
    mouseY = e.pageY - $(window).scrollTop();
277
    mouseY = e.pageY - $(window).scrollTop();
266
});
278
});
Line 267... Line 279...
267
 
279
 
-
 
280
$(document).ajaxStop(function() {
268
$(document).ajaxStop(function() {
281
	urlPage = $(this)[0].URL;
269
	$(set).remplacerDefinitions(motsAyantDefinition);
282
	getMotsADefinitionsEtRemplacer();
Line 270... Line 283...
270
});
283
});
-
 
284
 
271
 
285
$(document).ready(function() {
-
 
286
	$.ajax({
-
 
287
		url: URL_BASE_SERVICE + "../../../scripts/helpers.js",
-
 
288
		dataType: "script",
272
$(document).ready(function() {
289
		global: false
273
	$.getScript(URL_BASE_SERVICE + "../../../scripts/helpers.js");
290
	});
274
	getMotsADefinitions();
-
 
275
	ajouterListenerDefinitions();
291
	getMotsADefinitionsEtRemplacer();