Je voudrais savoir si on peut éventuellement supprimer cette espace ?? j'ai vu quelque technique de bidouillage qui fonctionne tel que supprimer les espaces entre les balises
Lucky13, j'ai testé mais rien, je donne le code qui traite les commentaires
<?php
// Récupération des commentaires
$req = $bdd->prepare('SELECT pseudo, commentaire, DATE_FORMAT(date_commentaire, \'%d/%m/%Y à %Hh%i \') AS date_commentaire FROM commentaires WHERE id_billet = ? ORDER BY id LIMIT ?, ?');
$req->bindValue(1, $LID);
$req->bindValue(2, (int) $pageStart, PDO::PARAM_INT);
$req->bindValue(3, (int) $msgPage, PDO::PARAM_INT);
$req->execute();
while ($donnees = $req->fetch())
{
echo '<div class="commentaire">
<p class="line"> Posté le ' .$donnees['date_commentaire']. 'par <b>' .htmlspecialchars($donnees['pseudo']). '</b>.<br/>
<span style="color: blue;">' .nl2br(texte(htmlspecialchars($donnees['commentaire']))). '</span> </p>
</div>';
}
$req->closeCursor();
?>
J'ai essayé de l'intégrer dedans, et aussi dans la partie regex, mais c'est bizarre tout ça...!! je pense plus à un bug, mais ça vient pas du navigateur ayant essayé sur firefox, chrome et opera avec le même resultat.
Il est possible d'avoir la valeur non modifiée issue de la base de $donnees['date_commentaire'] et de $donnees['commentaire'] qui donne le résultat de l'image de ton premier commentaire
Ensuite, j'ai fait un test en mettant comme ceci :
[retrait]test de texte en retrait[/retrait]
[center]test de texte centrer[/center]
[right]test de texte à droite[/right]
et en mettant comme ceci sans le retour à la ligne :
[retrait]test de texte en retrait[/retrait][center]test de texte centrer[/center][right]test de texte à droite[/right]
Et voici le résultat avec et sans le retour à la ligne :
Effectivement, on constate bien le saut de ligne "<br> (nl2br())" sur le premier test, et sur le deuxième il n'y a plus de saut page, vu que dans le message original il y en a pas.
Mais là, j'essaie de comprendre ce que je doit modifié dans la partie qui traite le commentaire, le 1er ou le 2éme "code généré proposé" ou les deux, j'avoue, je suis un peut perdu n'étant pas un pro .
Bonjour à tous, je peux répondre car j'ai accès aux sources. (si celle-ci n'ont pas trop évolué ces derniers mois)
Bonjour ricem, vu ton MP, je n'ai pas eu le temps de regarder le code et faire des test plus tôt.
Je ne comprends pas bien le problème que tu soulèves ici. En quoi l'affichage d'un espace entre les différentes parties que l'utilisateur poste est problématique? Pour ma part je trouve qu'un texte aérer est plus lisible.
Bref, la solution donnée par AliasDmc est sémantiquement correct, effectivement chaque partie de texte entré par l'utilisateur devrait ce trouver dans un paragraphe. Mais pour ce faire il faut modifier le fichier commentaires.php car tu as mis toutes les données des utilisateurs ainsi que la présentation du commentaire dans un seul paragraphe, ce qui n'est sémantiquement pas correct. ( d’où présence des span pour ton BBcodes, ce qui suscite l’étonnement de Luky)
J'avais proposé à l'époque de modifier le display du span pour que le centrage et l'alignement à droite puisse s'afficher. Si tu retravailles cette partie, Je trouve qu'il faut repenser l'affichage de l’ensemble du bloque de commentaire et insérer des balises comme <time> pour le temps ce qui serais sémantiquement plus correct. (mais je connais ta position par rapport au référencement c'est pourquoi je n'avais pas relevé cela.)
Je n'ai pas de solution concernant le retrait du <br> générer par la fonction nl2br() dans certain cas particulier. Le fait d'indiquer des paragraphes avec un margin de zéro comme le propose AliasDmc n'est pas fonctionnelle car nl2br() génère un retour ligne après chaque paragraphe.
La seul solution que j'ai trouvé est un margin négatif, mais pour être cohérent (en fonction du code que j'ai) il faut appliquer ce margin négatif sur chaque portion de code entrer par l'utilisateur et pour qu'il s'applique il faut passer le tout en block.
Donc soit tu rustines comme je te le propose ci après soit tu repenses la présentation des commentaires. A toi de voir ( si problème je dois pouvoir me dégager du temps ce WE)
Fichier "/require/bcode_smiley.php" (bien que l'usage d'une class CSS serrait plus profitable à mon sens )
Édit : GRRR salop***** de forum qui n'affiche pas le code correctement; je recopie une ligne de code en texte pour que ce soit compréhensible : (les - sont à retirer )
Appliquer au texte de couleur également cela me donne :
En postant un plus long commentaire j'ai remarqué que je ne pouvais pas scroller sur le textarea. Pour permettre le scroll ajoute overflow-y: auto; sur la class .form
C'est vrai que je chipote pour pas grand chose , surtout que le Bbcode me sera réservé que pour mon utilisation personnelle, à la limite c'est à moi de mettre des saut de page (ou pas) dans les messages
Sinon concernant les <span> je les ai supprimer pour les remplacer par des <div> ce qui me permet de supprimer les "display: block" par la même occasion.
J'ai testé le code avec les margin-top en négatif, mais ça me donne pas les mêmes résulats, du moins pour le div "posté le......", voici le code:
Ricem
Ricem
Ricem
et le regex est plus haut, après, je ne sais pas si j'ai bien compris ta demande
Ricem
Ricem
Ricem