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).

Posté le Thursday 13 April 2006 dans , .

Commentaires

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.