Dotclear

Vous n'êtes pas identifié(e).

Annonce

13 février 2024 Sortie de Dotclear 2.29

#1 2008-02-18 23:40:17

Goulven
Membre
Lieu : Lyon
Inscription : 2007-01-12
Site Web

Saisie multiligne de tags lors de la création d'un billet

Depuis le début je me fais avoir : j'écrit mon billet, je modifie les paramètres, puis je rentre mes tags, un par ligne dans le textbox.
Et à chaque fois ça ne loupe pas : mes tags gentiments espacés par des retours chariot ont été combinés... D'ailleurs par la suite on a une seule ligne pour saisir ses tags (input type text), même si je ne vois pas pourquoi la saisie doit être moins facile après le premier jet.

Pour qu'enfin mes retours chariot soient interprétés correctement, je me suis plongé dans le code et le découpage de tags se produit dans plugins/metadata/class.dc.meta.php, ligne 39.
Pour séparer les tags en appuyant sur entrée, il suffit de remplacer

foreach (explode(',',$str) as $i => $tag)

par :

foreach (preg_split( '/[,|\r\n|\r|\n]/',$str, -1, PREG_SPLIT_NO_EMPTY) as $i => $tag)

Explication pour ceux que ça intéresse : on ne découpe plus la chaîne seulement sur la virgule, mais avec un expression régulière (la drôle de chose entre barres obliques). L'expression renvoie un nouveau morceau dès qu'elle rencontre, au choix : une virgule, un retour chariot suivi d'un line-feed, un retour chariot seul, ou encore un line-feed seul (la touche "Entrée" produit ces différent codes selon qu'on est sur Windows, Linux ou Mac).

Notes :
* Si un gourou des expressions régulières trouve que je n'ai pas écrit la meilleure expression, qu'il me propose mieux. Attention néanmoins qu'on ne veut pas splitter au niveau des espaces, sinon j'aurais pu utiliser "\s" et me simplifier la vie. En attendant, le code ci-dessus fonctionne dans mes tests.
* Et un gourou Dotclear me dira peut-être qu'il existe des fonctions pour ce genre de choses, mais je ne les ai pas trouvées ni eu le courage de chercher plus de 5 minutes. Pareil, toute amélioration du code est la bienvenue.

Hors ligne

#2 2008-02-19 00:15:11

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : Saisie multiligne de tags lors de la création d'un billet

Je ne suis pas un gourou alors je ne répondrai pas aux deux questions ;)

Au contraire j'en pose deux :

- je ne sais pas si la touche entrée n'est pas utilisée autrement avec certains navigateurs ?

- pour la virgule, on peut vouloir en mettre dans les tags sans que les mots soient séparés

Mises à part ces deux interrogations, je trouve que c'est très utile lors de la création des tags, et peut-être même plus simple pour attribuer des tags existants à un billet

Hors ligne

Vous n'êtes pas identifié(e).

Pied de page des forums

Sites map