IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

FAQ MooTools

FAQ MooToolsConsultez toutes les FAQ

Nombre d'auteurs : 6, nombre de questions : 67, dernière mise à jour : 15 juin 2021 

 
OuvrirSommaireLa manipulation du DOM et des attributs

Il existe plusieurs manières de récupérer un élément de l'arbre DOM :

  1. Par son id ;
  2. Le premier enfant selon son type, son id ou sa classe ;
  3. Plusieurs éléments par leur type ou leur classe ;
  4. Plusieurs éléments ;
  5. En filtrant sur certains attributs ;
  6. Selon leur ordre d'apparition ;
  7. En mélangeant un peu tout.

1) Par son id

Imaginons une div toute simple avec un id :

 
Sélectionnez
<div id="id_div" title="Mon Titre">
   <input type="texte" id="un" class="ma_classe" value="Premier Input" />
</div>

Nous récupérons cet élément avec le sélecteur de base :

 
Sélectionnez
var mon_div = $('id_div');
//Résultat : mon_div.title = "Mon Titre"

On peut bien entendu utiliser les méthodes traditionnelles pour récupérer l'input qui se trouve dans la div, avec par exemple getElementById :

 
Sélectionnez
var mon_input = $('id_div').getElementById('un');
//Résultat : mon_input.value = "Premier Input"




2) Le premier enfant selon son type, son id ou sa classe

Complétons notre div :

 
Sélectionnez
<div id="id_div" title="Mon Titre">
	<input type="texte" id="un" class="ma_classe" value="Premier Input" />
	<input type="texte" id="deux" class="ma_classe" value="Second Input" />
</div>

Nous pouvons récupérer le premier élément de type input avec getElement(). Je précise le "premier" élément car getElement() ramène un seul élément, à savoir le premier qui correspond au filtre :

 
Sélectionnez
var mon_input = ma_div.getElement('input');
//Résultat : mon_input.value = "Premier Input"

Nous pouvons également récupérer un élément via son id :

 
Sélectionnez
var mon_input = $('id_div').getElement('#deux');
//Résultat : mon_input.value = "Second Input"

Ou grâce à sa classe. Encore une fois, seul le premier élément correspondant au filtre sera récupéré :

 
Sélectionnez
var premier_input = $('id_div').getElement('.ma_classe');
//Résultat : premier_input.value = "Premier Input"




3) Plusieurs éléments par leur type ou leur classe

Nous pouvons récupérer tous les éléments du même type ou d'une même classe avec getElements :

 
Sélectionnez
<div id="id_div" title="Mon Titre">
	<input type="texte" id="un" class="ma_classe" value="Premier Input" />
	<input type="texte" id="deux" class="ma_classe" value="Second Input" />
</div>
 
Sélectionnez
var mes_input = $('id_div').getElements('input');
//Résultat : mes_input[0].value = "Premier Input"
//          mes_input[1].value = "Second Input"

var input_classe = $('id_div').getElements('.ma_classe');
//Résultat : input_classe[0].value = "Premier Input"
//          input_classe[1].value = "Second Input"




4) Plusieurs éléments

Nous pouvons également récupérer dans un tableau plusieurs éléments selon différentes conditions.
C'est une option du sélecteur $$() :

 
Sélectionnez
<div id="id_div" title="Mon Titre">
	<input type="texte" id="un" class="ma_classe" value="Premier Input" />
	<input type="texte" id="deux" class="ma_classe" value="Second Input" />
</div>
 
Sélectionnez
var mes_elements = $$('#id_div', 'input');
//Résultat : mes_elements[0].title = "Mon Titre"
//           mes_elements[1].value = "Premier Input"
//           mes_elements[2].value = "Second Input"

Cette méthode s'applique au document et non à un élément du document.




5) En filtrant sur certains attributs

Pour aller plus loin, MooTools permet de filtrer plus précisément ce que l'on désire récupérer comme éléments grâce aux opérateurs : égal à (=), commence par (^=), termine par ($=), différent de (!=).
Ces conditions se font sur un attribut :

 
Sélectionnez
<div id="id_div" title="Mon Titre">
	<input type="texte" id="un" name="nom_un" class="ma_classe" value="Premier Input" />
	<input type="texte" id="deux" name="nom_deux" class="ma_classe" value="Second Input" />
</div>
 
Sélectionnez
var resultat = $('id_div').getElements('input[name=nom_un]');
//resultat[0].value = "Premier Input"

var resultat = $('id_div').getElements('input[name^=nom_]');
//resultat[0].value = "Premier Input"
//resultat[1].value = "Second Input"

var resultat = $('id_div').getElements('input[name$=_un]');
//resultat[0].value = "Premier Input"

var resultat = $('id_div').getElements('input[name!=nom_un]');
//resultat[0].value = "Second Input"




6) Selon leur ordre d'apparition

Les éléments sont parsés selon un ordre séquentiel, de haut en bas. On peut récupérer les éléments d'un certain type selon leur position pair (even) ou impaire (odd). L'indice commence à zéro donc le premier élément trouvé est paire. L'indice recommence à zéro lorsque la recherche s'effectue dans un autre parent :

 
Sélectionnez
<!-- Premier Parent -->
<input type="texte" id="zero" name="nom_zero" class="ma_classe" value="Pré Input" />

<!-- Changement de Parent, indice remis à zéro -->
<div id="id_div" title="Mon Titre">
	<input type="texte" id="un" name="nom_un" class="ma_classe" value="Premier Input" />
	<input type="texte" id="deux" name="nom_deux" class="ma_classe" value="Second Input" />
	<input type="texte" id="trois" name="nom_trois" class="ma_classe" value="Dernier Input" />
</div>
 
Sélectionnez
var les_paires = $$('input:even');
//Résultat : les_paires[0].value = "Pré Input"
//           les_paires[1].value = "Premier Input"
//           les_paires[2].value = "Dernier Input"

var les_impaires = $$('input:odd');
//Résultat : les_impaires[0].value = "Second Input"




7) En mélangeant un peu tout

Essayons d'être encore plus précis dans notre recherche :

 
Sélectionnez
<div id="id_div" title="Mon Titre">
	<input type="texte" id="un" name="nom_un" class="ma_classe" value="Premier Input" />
	<input type="texte" id="deux" name="nom_deux" class="ma_classe" value="Second Input" />
	<input type="texte" id="trois" name="nom_trois" class="ma_classe" value="Dernier Input" />
</div>

Nous allons regarder sur la div d'id id_div, les input qui ont la classe ma_classe :

 
Sélectionnez
var mes_input_de_ma_classe_de_mon_div = $$('#id_div input.ma_classe');
//Résultat : mes_input_de_ma_classe_de_mon_div[0].value = "Premier Input"
//           mes_input_de_ma_classe_de_mon_div[1].value = "Second Input"
//           mes_input_de_ma_classe_de_mon_div[2].value = "Dernier Input"
Mis à jour le 1er décembre 2012  par vermine, NoSmoking

Lien : Comment récupérer le(s) parent(s) dans un élément HTML ?

1) Pour récupérer l'attribut, on utilise la méthode get :

 
Sélectionnez
$('id_element').get('value');
$('id_element').get('class');


2) Pour modifier l'attribut, on utilise la méthode set :

 
Sélectionnez
$('id_element').set('value', 'Ma Valeur');
$('id_element').set('class', 'ma_classe');
$('id_element').set('styles', {
    'font': '20px Arial',
    'color': 'blue'
});


3) Pour supprimer une propriété, on utilise la méthode erase :

 
Sélectionnez
$('id_element').erase('class');


4) Pour récupérer une propriété, on utilise la méthode getProperty :

 
Sélectionnez
<input type="text" id="id_input" name="nom" value="valeur" />
 
Sélectionnez
alert($('id_input').getProperty('name')); //nom
alert($('id_input').getProperty('value'));//valeur
alert($('id_input').getProperty('type')); //text


Si par contre on désire récupérer plusieurs propriétés d'un coup, on utilise la méthode getProperties qui renvoie un objet :

 
Sélectionnez
var proprietes = $('id_input').getProperties('value', 'type');
alert(proprietes.value); //valeur
alert(proprietes.type);  //text


5) Pour ajouter une ou plusieurs propriétés, on utilise la méthode setProperty ou bien setProperties :

 
Sélectionnez
$('id_input').setProperty('valeur', 'je met une valeur');
$('id_input').setProperties({
      value: 'je met une valeur',
      type: 'text'
});


6) Pour supprimer une ou plusieurs propriétés, on utilise la méthode removeProperty ou bien removeProperties :

 
Sélectionnez
<input type="text" id="id_input" name="nom" value="valeur" title='titre' />
 
Sélectionnez
$('id_input').removeProperty('title');
$('id_input').removeProperties('title','value');
Créé le 31 décembre 2010  par vermine

Lien : Comment modifier un attribut CSS de plusieurs éléments ?

Grâce aux sélecteurs, nous pouvons en une seule instruction modifier la valeur d'un attribut sur plusieurs éléments. Imaginons une série de span :

 
Sélectionnez
<div id="mon_div">
    <span>Paire</span>
    <span>Impaire</span>
    <span>Paire</span>
    <span>Impaire</span>    
</div>

Nous pouvons par exemple changer la couleur de fond des span paires :

 
Sélectionnez
$$('span:even').setStyle('background-color', '#6E9D47');
Créé le 31 décembre 2010  par vermine

Lien : Comment récupérer/modifier/supprimer un attribut ?

La méthode dispose permet de supprimer l'élément du DOM mais le garde en mémoire contrairement à la méthode destroy qui libère l'espace mémoire.

 
Sélectionnez
<div id="id_div1">
   Je reste.
</div>

<div id="id_div2">
   Je disparais.
</div>
 
Sélectionnez
$('id_div2').dispose();
Mis à jour le 1er décembre 2012  par vermine, NoSmoking

Lien : Comment supprimer les enfants d'un élément HTML, ou bien l'élément lui-même ?

On pourrait décider de vider un élément des ses enfants. Pour ce faire, on utilise la méthode empty :

 
Sélectionnez
<div id="id_div">
   <span id="span_div_1">Début</span>
   Je suis aussi à supprimer...
   <span id="span_div_2">Fin</span>
</div>
 
Sélectionnez
$('id_div').empty();

Si par contre on désire détruire l'élément, on passe par destroy qui nettoiera d'abord les enfants, puis détruira l'élément (libère l'espace mémoire) :

 
Sélectionnez
$('id_div').destroy();
Créé le 31 décembre 2010  par vermine

Lien : Comment supprimer un élément HTML ?

MooTools fournit la méthode inject qui est très simple et permet de positionner un élément dans la page par rapport à un autre et ce suivant quatre possibilités :

  1. Avant l'élément (inject before) ;
  2. Après l'élément (inject after) ;
  3. Dans le bas de l'élément (inject bottom) ;
  4. Dans le haut de l'élément (inject top).

D'autres déplacements peuvent se faire via les méthodes grab, adopt et wraps :

  1. Positionner l'élément en tant qu'enfant de l'autre élément (grab et adopt) ;
  2. Positionner l'élément en tant que parent de l'autre élément (wraps).

Imaginons les éléments suivants :

 
Sélectionnez
<input type="text" id="id_input" value="Input voyageur" />

La div est en vert, le span est en bleu.<br><br>

<div id="id_div" style="background-color:#6E9D47;margin-left:1em;">
   Je suis du texte dans la div.<br>
   <span id="id_span" style="background-color:#6699FF;height:30px">Je suis le span dans la div.</span>
   <br/><br/>
</div>
 
Sélectionnez
var mon_input = $('id_input');
var ma_div = $('id_div');
var mon_span = $('id_span');

1) Avant l'élément (before)

Nous allons déplacer l'input pour qu'il devienne le frère positionné immédiatement avant la div :

 
Sélectionnez
mon_input.inject(ma_div, 'before');

2) Après l'élément (after)

Nous allons déplacer l'input pour qu'il devienne le frère positionné immédiatement après la div :

 
Sélectionnez
mon_input.inject(ma_div, 'after');

3) Dans le bas de l'élément (bottom, c'est la valeur par défaut)

Nous allons déplacer l'input pour qu'il devienne le dernier enfant de la div :

 
Sélectionnez
mon_input.inject(ma_div, 'bottom');
// écriture simplifiée et dont le résultat est le même
mon_input.inject(ma_div);

4) Dans le haut de l'élément (top)

Nous allons déplacer l'input pour qu'il devienne le premier enfant de la div :

 
Sélectionnez
mon_input.inject(ma_div, 'top');

5) Positionner l'élément en tant qu'enfant de l'autre élément

La méthode grab permet, elle aussi, de choisir une position pour l'élément : before, after, top ou bottom. Cette dernière étant la valeur par défaut.
Nous allons déplacer l'input dans la div :

 
Sélectionnez
ma_div.grab(mon_input);
// écritures équivalentes
ma_div.grab(mon_input, 'bottom');
mon_input.inject(ma_div, 'bottom');

Ou bien placer plusieurs éléments dans la div :

 
Sélectionnez
var ma_div = $('id_div');
var mon_input1 = $('id_input1');
var mon_input2 = $('id_input2');

ma_div.adopt(mon_input1, mon_input2);

6) Positionner l'élément en tant que parent de l'autre élément

Nous allons déplacer la div autour de l'input, celle-ci devient le parent de l'input :

 
Sélectionnez
ma_div.wraps(mon_input);

La méthode wraps accepte également les positions top et bottom. Cette dernière est celle par défaut. Ce qui correspond à la place qu'occupera l'input dans la div.

7) D'autres exemples

Mettre l'input à la fin du span :

 
Sélectionnez
mon_input.inject(mon_span, 'bottom');


Mettre le span devant l'input :

 
Sélectionnez
mon_span.inject(mon_input, 'before');


Mettre la div devant l'input :

 
Sélectionnez
ma_div.inject(mon_input, 'before');

Il est important de considérer la nature des éléments. Par exemple, un input ne peut pas avoir d'enfant (sans aucun mauvais esprit Image non disponible). Il est inutile d'essayer d'insérer un élément dans un input.

Mis à jour le 1er décembre 2012  par vermine, NoSmoking

Nous pouvons créer dynamiquement les éléments HTML à l'aide des méthodes new Element() et inject().
Au départ, nous avons par exemple une div :

 
Sélectionnez
<div id="id_div" style="background-color:#6E9D47">
   <br>
   Je suis une div.
   <br>&nbsp;
</div>

Nous allons maintenant créer un span d'une autre couleur :

 
Sélectionnez
var mon_span = new Element('span', { 
     'id': 'id_span',
     'text': 'Je suis le span',
     'styles': {
         'height': '40px',
         'background-color': '#6699FF'
     }
});

Il reste à l'ajouter à la page. Nous allons le mettre à la fin de la div :

 
Sélectionnez
var ma_div = $('id_div');

mon_span.inject(ma_div, 'bottom');
Créé le 31 décembre 2010  par vermine

Lien : Comment déplacer un élément dans la page ?

On peut déterminer la position d'un élément dans la page avec la méthode getPosition :

 
Sélectionnez
<input type="text" id="id_input" value="Je suis un petit texte mais quand même." />
<div id="id_div" style="width:250;height:150;border:solid 1px black;">
   Quelle est la position ?
</div>
 
Sélectionnez
alert($('id_div').getPosition().x); //IE : 12 FF : 8
alert($('id_div').getPosition().y); //IE : 41 FF : 30


De même, on peut donner une position à un élément, pour peu qu'il soit en position absolue, avec la méthode setPosition :

 
Sélectionnez
<div id="id_div" style="position:absolute;width:250;height:150;border:solid 1px black;">
   Quelle est la position ?
</div>
 
Sélectionnez
$('id_div').setPosition({'x': 150, 'y': 100});
$('id_div').setPosition({'x': 150});
$('id_div').setPosition({'y': 100});


Mais on peut obtenir bien plus de renseignements avec la méthode getCoordinates :

 
Sélectionnez
$('id_div').setPosition({'x': 150, 'y': 100});

var coordonnees = $('id_div').getCoordinates();

alert(coordonnees.top); //IE : 102 FF : 100
alert(coordonnees.left); //IE : 152 FF : 150
alert(coordonnees.width); //IE : 250 FF : 252
alert(coordonnees.height); //IE : 150 FF : 152
alert(coordonnees.right); //IE : 402 FF : 402
alert(coordonnees.bottom); //IE : 252 FF : 252

Tout d'abord, ces méthodes ne s'appliquent qu'aux éléments visibles. Ensuite, nous avons vu que la div était positionnée :

 
Sélectionnez
style="position:absolute";

Pour vérifier qu'un parent est positionné, on utilise la méthode getOffsetParent qui renvoie un objet si le parent est positionné et qui renvoie null sinon :

 
Sélectionnez
<div id='id_parent' style="position:absolute">
   <div id="id_div">
      Quelle est la position ?
   </div>
</div>
 
Sélectionnez
alert($('id_div').getOffsetParent().id); //id_parent
Mis à jour le 1er décembre 2012  par vermine

Comment récupérer les éléments précédents, les éléments qui suivent, les parents, les enfants... ?
Imaginons les éléments HTML suivants :

 
Sélectionnez
<body id="id_body">
<input type="text" id="id_input1" value="Second Précédent Input" />
<input type="text" id="id_input2" value="Premier Précédent Input" />
<span id="span_1">Précédent</span>
   <div id="id_div1">
      <span id="span_div_1">Premier</span>
      Je suis l'ancien.
      <span id="span_div_2">Dernier</span>
   </div>
<span id="span_2">Suivant</span>
</body>

Nous sélectionnons notre div :

 
Sélectionnez
var ma_div = $('id_div1');


1) Pour récupérer l'élément précédent la div, nous utilisons getPrevious :

 
Sélectionnez
var previous = ma_div.getPrevious();
alert(previous.id);
//Résulat : span_1


On peut préciser le type de tag que l'on désire retrouver :

 
Sélectionnez
var previous = ma_div.getPrevious('input');
alert(previous.id);
//Résulat : id_input2


Ou bien récupérer tous les éléments qui précèdent (de tels tags ou non) avec la méthode getAllPrevious :

 
Sélectionnez
var previous = ma_div.getAllPrevious();
//Résulat : previous[0].id = span_1
//         previous[1].id = id_input2
//         previous[2].id = id_input1


var previous = ma_div.getAllPrevious('input');
//Résulat : previous[0].id = id_input2
//         previous[1].id = id_input1


2) Naturellement, selon le même principe, on peut récupérer les éléments qui suivent avec les méthodes getNext et getAllNext.


3) Si l'on désire récupérer les enfants, nous disposons de plusieurs possibilités.
Tout d'abord, récupérer le premier enfant avec la méthode getFirst :

 
Sélectionnez
var previous = ma_div.getFirst();
alert(previous.id);
//Résultat : span_div_1

var previous = ma_div.getFirst('span');
alert(previous.id);
//Résultat : span_div_1


De même, on récupère le dernier enfant avec getLast.
Si maintenant on veut tous les enfants, alors on se sert de getChildren :

 
Sélectionnez
var previous = ma_div.getChildren();
//Résulat : previous[0].id = span_div_1
//         previous[1].id = span_div_2


var previous = ma_div.getChildren('span');
//Résulat : previous[0].id = span_div_1
//         previous[1].id = span_div_2


[Obsolète]
On peut également interroger l'élément pour savoir s'il a tel enfant en précisant l'id à hasChild. Mais cette fonction est obsolète. Le résultat est true ou false :

 
Sélectionnez
var previous = ma_div.hasChild('span_div_1');
alert(previous);
//Résultat : true

MooTools préconise de passer par la méthode contains qui n'est pas obsolète. Elle renvoie true si l'élément en argument est contenu dans ma_div :

 
Sélectionnez
var previous = ma_div.contains($('id_div1'));
alert(previous);
Mis à jour le 1er décembre 2012  par vermine


On peut récupérer le(s) parent(s) d'un élément HTML en utilisant les méthodes getParent ou bien getParents. On récupère ainsi le parent ou bien tous les aïeux :

 
Sélectionnez
var mon_span = $('span_div_1');

//Le parent
var previous = mon_span.getParent();
alert(previous.id);
//Résultat : id_div1

//Le parent si div
var previous = mon_span.getParent('div');
alert(previous.id);
//Résultat : id_div1

//Le parent si span
var previous = mon_span.getParent('span');
alert(previous.id);
//Résultat : le span n'étant pas le parent, previous est undefined et n'a donc pas d'id

//Les parents
var previous = mon_span.getParents();
//Résultat : previous[0].id = id_div1
//           previous[1].id = id_body

//Les parents si div
var previous = mon_span.getParents('div');
//Résultat : previous[0].id = id_div1
//           previous[1].id = le parent suivant est le body donc pas un div, previous[1] n'existe pas
Créé le 1er décembre 2012  par vermine

Nous pouvons remplacer un élément HTML par un autre via la méthode replaces. Il prendra la place de l'ancien :

 
Sélectionnez
<span>Début</span>
<div id="id_div1">
   Je suis l'ancien.
</div>
<span>Fin</span>
 
Sélectionnez
//Création du nouvel élément
var mon_div = new Element('div', { 
     'id': 'id_div2',
     'text': 'Je suis le nouveau.',
     'styles': {
         'height': '40px',
         'background-color': '#6699FF'
     }
});

//Remplacement
mon_div.replaces($('id_div1'));


Naturellement, le remplacement peut se faire sur des éléments de types différents :

 
Sélectionnez
//Création du nouvel élément
var mon_input = new Element('input', { 
     'id': 'id_div2',
     'type': 'text',
     'value': 'Je suis le nouveau.'
});

//Remplacement
mon_input.replaces($('id_div1'));
Créé le 31 décembre 2010  par vermine

Bien souvent nous voyons des liens pour retourner au début d'une page ou bien d'un texte. Cela est possible grâce à la méthode scrollTo(x, y). Prenons cette div :

 
Sélectionnez
<div id="id_div" style="width:250;height:150;overflow-x:auto;overflow-y:auto;border:solid 1px black;">
   <p>Lorsque nous sommes en bas d'une page ou bien d'un élément avec des barres de défilement,</p>
   <p>nous désirons parfois retourner au début de cet élément en un seul clic.</p>
   <p>Vu qu'il vaut mieux parfois un petit dessin qu'un long discours,</p>
   <p>ceci est un petit test sans prétention aucune.</p>
   <p>Il implémente de manière significative</p>
   <p>une méthode fort pratique et qui s'appelle :</p>
   <p><a href="#1" onclick="$('id_div').scrollTo(0, 0); return false;">ScrollTo</a></p>
   <p>Ici, c'est du bourrage pour obtenir la scrolbar horizontale :</p>
   --------------------------------------- SansIntérêtSansIntérêtSansIntérêtSansIntérêtSansIntérêt ---------------------------------------   
</div>

En bas, il y a un lien qui permet de remonter au début de la page :

 
Sélectionnez
onclick="$('id_div').scrollTo(0, 0);

Mais nous pourrions très bien décider de retourner autre part dans la page en jouant sur les coordonnées x et y :

 
Sélectionnez
onclick="$('id_div').scrollTo(30, 50);
Créé le 31 décembre 2010  par vermine

Lien : Page de test
Lien : Comment obtenir une position dans un élément avec des barres de défilements ?

Nous pouvons déterminer la position en pixels dans un élément avec des barres de défilement selon la direction (axe des x et des y). C'est la méthode getScroll qui nous donne ces renseignements. En cliquant sur le lien qui se trouve dans cette div, nous obtenons notre "défilement" vertical :

 
Sélectionnez
<div id="id_div" style="width:250;height:150;overflow-x:scroll;overflow-y:scroll;border:solid 1px black;">
   <p>Lorsque nous sommes en bas d'une page ou bien d'un élément avec des barres de défilement,</p>
   <p>nous désirons parfois retourner au début de cet élément en un seul clic.</p>
   <p>Vu qu'il vaut mieux parfois un petit dessin qu'un long discours,</p>
   <p>ceci est un petit test sans prétention aucune.</p>
   <p>Il implémente de manière significative</p>
   <p>une méthode fort pratique et qui s'appelle :</p>
   <p><a href="#1" onclick="alert($('id_div').getScroll().y); return false;">Position verticale ?</a></p>
   <p>Ici, c'est du bourrage pour obtenir la scrolbar horizontale :</p>
   --------------------------------------- SansIntérêtSansIntérêtSansIntérêtSansIntérêtSansIntérêt ---------------------------------------
</div>


Pour obtenir le défilement horizontal, c'est selon l'axe des x :

 
Sélectionnez
$('id_div').getScroll().x;
Créé le 31 décembre 2010  par vermine

Lien : Comment implémenter du scrolling automatique ?

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2010 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.