La fonction javascript domEl() pour PHP
La fonction domEl() est une fonction javascript permettant de créer très facilement un noeud DOM ; elle permet par exemple de remplacer le code suivant :
// Création d'un lien et ajout à la fin de l'élément dont l'id est "content" var link = document.createElement('a'); link.setAttribute('href','index.html'); link.appendChild(document.createTextNode('go home')); document.getElementById('content').appendChild(link); // résultat : <a href="index.html">go home</a>
par cette simple ligne :
domEl('a','go home',[['href','index.html']],document.getElementById('content'));
Devant la simplicité et les nombreuses possibilités offertes par cette fonction (lire les explications ou consulter les exemples), je me suis attelé à la version PHP.
Remarque : il s'agit d'un simple portage (que je souhaite non buggé) mais un point est important à retenir : il faut que les éléments que vous souhaitez créer le soient par rapport un document (DOMDocument
) de référence et pour conserver les mêmes arguments que la fonction d'origine, il faut que votre document soit nommé $document
et soit accessible dans les varaibles globales ; je suis bien entendu preneur d'une meilleure façon de procéder...
Voici ce que cela donne quand on reprend l'exemple précédent :
$document = new DOMDocument('1.0'); // requis AVANT l'utilisation de la fonction domElt('a', 'go home', array('href' => 'index.html', $document); // ici le lien est directement ajouté à la fin du document echo $document->saveHTML(); // affiche : <a href="index.html">go home</a>
L'exemple suivant, plus complexe, montre la possibilité d'utiliser domEl()
de manière imbriquée :
// PHP domEl('ul', array( domEl('li', domEl('a', 'item 1', array('href' => '#'))), domEl('li', 'item 2') ), array('class' => 'myclass'), $document); // HTML <ul class="myclass"> <li><a href="#">item 1</a></li> <li>item 2</li> </ul>
Les examples ci-dessus sont ultra basiques et basé sur HTML mais la valeur de retour de cette fonction étant bien un noeud DOM, il peut être utilisé conjointement avec toutes les fonctions de la librairie DOM de PHP.
La fonction reprend les mêmes fonctionnalités que la version javascript, consultez la documentation de cette dernière pour les détails de son utilisation.
Téléchargement : domEl.php (3 Ko).
Commentaires
-
waldo a écrit le 09/11/2006 :
Vu que le site de Pawel Knapik est pour l'instant dans un état de mort clinique (il a dut oublier de payer la facture pour son nom de domaine), je me permets de mettre un lien vers la documentation de Pawel Knapik (On dit merci au cache de google). Celle-ci est traduite en français et aussi dans sa version originale.
www.mon-beulogue.com/[...]/p>p.s. Merci Pilgrim de m’avoir expliquer comment fonctionnait cette foutu fonction !
Ajouter un commentaire
Il n'est plus possible de réagir à cette entrée directement mais si vous pensez que votre intervention peut être intéressante, envoyez-moi votre commentaire, je l'ajouterai ici en votre nom.