Imposer une taille minimale de texte dans les posts

Started by Paulo.chon, November 05, 2016, 05:36:04 PM

Previous topic - Next topic

Paulo.chon

Bonjour,

Est-il possible d'imposer une taille minimale du texte dans les posts ?

Sur mon forum, certains membres s'amusent à poster en très petit, en général des... âneries, disons,  ce qui ne facilite pas la tâche des modérateurs, obligés d'éditer le message pour lire le texte, ou d'agrandir énormément l'affichage.
C'est assez pénible quand c'est répété.

Y a-t-il donc un moyen pour empêcher que le texte soit inférieur à 6pt par exemple ?
Avec cette taille on arrive à lire sans trop de souci.

Les modérateurs pourraient aussi s'offrir des écrans géants, mais ce n'est pas la solution qu'ils envisagent !  :P

alexetgus

Salut,

Le plus simple est d'interdire à tes membres d'utiliser la balise BBCode "Size".
Pas de souci, pour les admins, cette balise restera utilisable ! ;)

Vas dans admin > Messages et sujets - Onglet Table des balises Bulletin Board Code (BBcode)
Décoche la balise Size et c'est fini. Tes membres ne pourront plus écrire en énorme ou en minuscule. Ils n'auront que la taille standard du forum.

Décoche également HTML, sinon les plus malins passeraient par là pour écrire en tout petit.


maximus23

#2
Bonsoir,

Pas besoin de supprimer la balise il suffit de la valider  :)

Fichier Sources/Subs.php

Rechercher :

array(
'tag' => 'size',
'type' => 'unparsed_equals',
'test' => '([1-9][\d]?p[xt]|small(?:er)?|large[r]?|x[x]?-(?:small|large)|medium|(0\.[1-9]|[1-9](\.[\d][\d]?)?)?em)\]',
'before' => '<span style="font-size: $1;" class="bbc_size">',
'after' => '</span>',
),


Remplacer par ceci :

array(
'tag' => 'size',
'type' => 'unparsed_equals',
'test' => '([\d]{1,2}p[xt]|(?:x-)?small(?:er)?|(?:x-)?large[r]?)\]',
'before' => '<span style="font-size: $1;" class="bbc_size">',
'after' => '</span>',
'validate' => create_function('&$tag, &$data, &$disabled', '
if(strpos($data, \'pt\') && substr($data, 0, strpos(\'pt\')-1) < 10)
$data = \'10pt\';
elseif(strpos($data, \'px\') && substr($data, 0, strpos(\'px\')-1) < 9)
$data = \'9px\';'
),
),

Il suffit d'ajuster la taille minimale ici j'ai mis des limites de 10pt ou 9px pour savoir lire correctement à toi de les ajuster.

:)
Pas de support par PM ou Courrier...Veuillez utiliser le forum pour vous avoir une réponse rapide à votre demande d'aide. Merci.
Amitiés et à Bientôt...
No support by PM or Mail...You will get better and faster responses in the support forums. Thank you.
Have a nice day...

Paulo.chon

Quote from: alexetgus on November 05, 2016, 07:44:53 PM
Salut,

Le plus simple est d'interdire à tes membres d'utiliser la balise BBCode "Size".

Merci alexetgus mais je préfère que l'on puisse faire varier la taille tout de même, c'est plus sympa et ça permet de moduler ce que l'on dit.

Quote from: maximus23 on November 05, 2016, 08:17:19 PM
Bonsoir,

Pas besoin de supprimer la balise il suffit de la valider  :)

Fichier Sources/Subs.php

Rechercher :

(...)


Remplacer par ceci :

(...)

Il suffit d'ajuster la taille minimale ici j'ai mis des limites de 10pt ou 9px pour savoir lire correctement à toi de les ajuster.

:)

Super !

Si je comprends bien la fonction, si l'on met moins de 10, ça met automatiquement 10.

C'est exactement ce qu'il me fallait !!  8)

Maxi merci !!

Juste ma question idiote du jour : c'est normal qu'il y ait deux fois ), à la fin ?

maximus23

Bonjour,

oui c'est exact :)

Pour les parenthèses tu as une fermeture pour la fonction de validation et une pour le tableau global donc c'est normal.

:)
Pas de support par PM ou Courrier...Veuillez utiliser le forum pour vous avoir une réponse rapide à votre demande d'aide. Merci.
Amitiés et à Bientôt...
No support by PM or Mail...You will get better and faster responses in the support forums. Thank you.
Have a nice day...

Paulo.chon

Merci pour cette réponse comme toujours très claire et très complète !  :)

Je marque en résolu.

Paulo.chon

Je reviens sur le sujet de cette modification car j'ai modifié le fichier et cela marche parfaitement.

Enfin presque parfaitement.

Car de temps en temps, pour une raison que j'ignore mais il y en a sûrement une, les tailles dans les balises sont transformées entre le moment où le message est écrit et celui où il est posté, en une autre mesure, qui n'est ni pt ni px, mais em.
Et là, ça ne marche plus, car on se retrouve avec un texte entouré de balises comme : [size =1.45em] (je rajoute un espace pour qu'on voie la balise).

Dans le fichier subs.php, il y a en effet après la fonction ce texte :

array(
'tag' => 'size',
'type' => 'unparsed_equals',
'test' => '[1-7]\]',
'before' => '<span style="font-size: $1;" class="bbc_size">',
'after' => '</span>',
'validate' => create_function('&$tag, &$data, $disabled', '
$sizes = array(1 => 0.7, 2 => 1.0, 3 => 1.35, 4 => 1.45, 5 => 2.0, 6 => 2.65, 7 => 3.95);
$data = $sizes[$data] . \'em\';'
),
),


où il en est question et la fonction rajoutée semble lui poser problème...

De quoi s'agit-il ?

Paulo.chon

Sans que cela ne m'aide aucunement à résoudre mon problème, j'ai découvert ce qu'était cette unité "em", le cadratin, et tout le tintouin.

Grâce à cet article fort intéressant : http://www.alsacreations.com/article/lire/563-gerer-la-taille-du-texte-avec-les-em.html

J'en recommande la lecture aux esprits curieux.

maximus23

#8
Bonsoir,

Oui j'ai pas mis la mesure em alors qu'elle y était

donc mets ceci :

array(
'tag' => 'size',
'type' => 'unparsed_equals',
'test' => '([\d]{1,2}p[xt]|small(?:er)?|large[r]?|x[x]?-(?:small|large)|medium|(0\.[1-9]|[1-9](\.[\d][\d]?)?)?em)\]',
'before' => '<span style="font-size: $1;" class="bbc_size">',
'after' => '</span>',
'validate' => create_function('&$tag, &$data, &$disabled', '
if(strpos($data, \'pt\') && substr($data, 0, strpos($data, \'pt\')-1) < 10)
$data = \'10pt\';
elseif(strpos($data, \'px\') && substr($data, 0, strpos($data, \'px\')-1) < 9)
$data = \'9px\';
elseif(strpos($data, \'em\') && substr($data, 0, strpos($data, \'em\')-1) < 1)
$data = \'1em\';'
),
),


Edit : j'ai modifié et mis le code complet

Alors j'ai ajouté aussi une validation pour les em.

Pour les valeurs au dessus de x il suffit de mettre des conditions supplémentaires.

Testes ceci et dis moi si ok :)
Pas de support par PM ou Courrier...Veuillez utiliser le forum pour vous avoir une réponse rapide à votre demande d'aide. Merci.
Amitiés et à Bientôt...
No support by PM or Mail...You will get better and faster responses in the support forums. Thank you.
Have a nice day...

maximus23

Pas de support par PM ou Courrier...Veuillez utiliser le forum pour vous avoir une réponse rapide à votre demande d'aide. Merci.
Amitiés et à Bientôt...
No support by PM or Mail...You will get better and faster responses in the support forums. Thank you.
Have a nice day...

Paulo.chon

#10
Bonjour Maximus,

Non pas encore, pas eu le temps.
Je vais essayer de voir ça ce soir.  ;)


J'ai préparé mon fichier et j'attends que mon forum soit désert pour faire la modif (là c'est l'heure de pointe).

Pour info j'ai choisi ça comme taille mini :

essai taille 7pt  essai taille 9px  essai taille 0.7em

maximus23

Bonsoir,

Avec ma résolution c'est vraiment mini :)

Sinon pas de soucis prends ton temps :)
Pas de support par PM ou Courrier...Veuillez utiliser le forum pour vous avoir une réponse rapide à votre demande d'aide. Merci.
Amitiés et à Bientôt...
No support by PM or Mail...You will get better and faster responses in the support forums. Thank you.
Have a nice day...

Paulo.chon

La patience n'est pas mon fort !!  :P

Du coup j'ai testé et pour l'instant tout semble aller parfaitement !

Oui chez moi aussi c'est mini mais c'est lisible donc ça me va : ça donne de la liberté d'écrire petit mais tout en restant visible pour la modération.


Quote from: maximus23 on November 06, 2016, 06:09:47 PM
Pour les valeurs au dessus de x il suffit de mettre des conditions supplémentaires.

Oui, je suppose que dans le même genre on peut dire : si la taille excède X pt, on limite à X pt.

Mais le cas ne se produit pas, pour l'instant, de membres qui posteraient des textes si grands que ça gênerait la lecture, voire l'utilisation du forum.... Sinon je saurais quoi faire, grâce à toi.

Merci et maximerci, Maximus !!  :)

maximus23


Ok bonne chose ce seront ceux qui vont essayé de t'ennuyer avec des petits caractères qui vont être surpris.

Si soucis n'hésite pas.

:)
Pas de support par PM ou Courrier...Veuillez utiliser le forum pour vous avoir une réponse rapide à votre demande d'aide. Merci.
Amitiés et à Bientôt...
No support by PM or Mail...You will get better and faster responses in the support forums. Thank you.
Have a nice day...

Paulo.chon

Bonsoir !

Je reviens après une petite semaine pour indiquer que tout va bien, aucun souci avec cette petite modification !!

Le seul truc, c'est que certains trouvent encore à contourner le truc en mettant leur texte en "sub", ce qui donne quelque chose de vraiment petit...

Tiens, curieux, sur mon forum c'est plus petit, à la limite du lisible vraiment, du genre de cela.

Mais c'est tout de même lisible...

alexetgus

Salut,

Les balises BBCode sub et sup ne font que encadrer le texte avec les balises HTML <sub> ou <sup>.
Vu que rien n'est prévu pour ces balises par SMF, c'est les navigateurs qui gèrent la taille. Ca peut donc varier d'un navigateur à l'autre.

Si tu veux les modifier pour que ça reste lisible sans nuire au but des balises, édite le fichier index.css de ton thème et ajoute ceci dedans :

sub, sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}



Ca aura au moins l'avantage de fixer une taille identique pour tous les navigateurs.

Paulo.chon

Oh merci très sympa !

Je me disais que si ça devenait la nouvelle mode je retirerais simplement la balise qui n'a pas grand intérêt dans un forum de discussions.

Mais je préfère ta solution !  :)

Ce n'est pas plutôt :
sub {
  bottom: -0.25em;
}

sup {
  top: +0.5em;
}


(top: +0.5em plutôt que -0.5em pour que ce soit au-dessus)

Ça m'aurait semblé logique, mais c'est juste une idée comme ça, vu que je ne connais pas grand chose à tout ça...

maximus23

Bonsoir,

Indice = texte en sous alignement et Exposant = texte en sur alignement d'où le bottom et le top.

Sinon dans le css tu as la taille des caractères en % c'est la que tu dois la modifier et le top et le bottom donne un alignement du texte donc si c'est pour aligner sur la même ligne elles ne servent plus à rien autant les mettre hors service.

:)
Pas de support par PM ou Courrier...Veuillez utiliser le forum pour vous avoir une réponse rapide à votre demande d'aide. Merci.
Amitiés et à Bientôt...
No support by PM or Mail...You will get better and faster responses in the support forums. Thank you.
Have a nice day...

alexetgus

Quote from: Paulo.chon on November 15, 2016, 12:39:45 PM
Oh merci très sympa !

Je me disais que si ça devenait la nouvelle mode je retirerais simplement la balise qui n'a pas grand intérêt dans un forum de discussions.

Mais je préfère ta solution !  :)

Ce n'est pas plutôt :
sub {
  bottom: -0.25em;
}

sup {
  top: +0.5em;
}


(top: +0.5em plutôt que -0.5em pour que ce soit au-dessus)

Ça m'aurait semblé logique, mais c'est juste une idée comme ça, vu que je ne connais pas grand chose à tout ça...

Non, non, c'est pas ça du tout.
Le code donné est correct.

Enfin, essaye et tu verras.
Si ça semble ne pas marche, vide ton cache (CTRL + F5).


@max
Bien sûr qu'on est sur la même ligne, mais on est soit plus haut ou bas et en plus petit.

Pour ce code CSS, j'ai copié/collé directement celui que j'utilise sur mon site. Et ça marche impec. ;)

Paulo.chon

Je n'ai pas encore essayé.

Je colle ça n'importe où dans mon index.css ou bien y a-t-il des conventions ? (modifs en haut du fichier ou au contraire en bas, par exemple)

Advertisement: