Liste des commentaires publiés: caractères spéciaux

niqnutnniqnutn Member
Bonjour,

Il y a un petit problème dans la gestion des caractères spéciaux dans la dernière version (5.6).
Le "ô" dans l'auteur est mal affiché.
1493636035.png

par contre coté visiteur, aucun souci.

Réponses

  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    mai 2017 modifié
    C'est un problème d'encodage de caractères sur des chaines qu'on essaie de tronquer pour éviter un affichage trop envahissant.
    Le bug est dans une des fonctions plxUtils::strCut ou plxUtils::strRevCheck

    Bizarrement, si on fait un 'grep "plxUtils::strCut" core/admin/*.php' ou 'grep "plxUtils::strCut" core/lib/*.php', on s'aperçoit que ces fonctions ne sont utilisés que pour les commentaires.

    Il y a une façon plus élégante et plus sûre pour éviter que le texte ne sorte de sa boite CSS
    Dans core/admin/comments.php ligne 184, remplacer:
    [== PHP ==]
    $c = plxUtils::strCut(plxUtils::strRevCheck($plxAdmin->plxRecord_coms->f('author')),30);
    echo '<td>'.$c.'&nbsp;</td>';
    
    par ceci :
    [== PHP ==]
    $c = $plxAdmin->plxRecord_coms->f('author');
    echo '<td class="author">'.$c.'</td>';
    

    Pour finir rajouter les règles suivantes dans core/admin/theme/theme.css.
    la régle "td { white-space: nowrap;}" met un peu le bazar. Mais en lisant le manuel on s'en sort :
    [== CSS ==]
    .author {
        max-width: 12rem;
        text-overflow: ellipsis;
        overflow-x: hidden;
    }
    

    C'est une très mauvaise idée de manipuler les encodages de chaines de caractères. Ceux qui utilisent Python 2.7 pourront en témoigner

    P.S: Merci de d'étudier Here doc pour éviter tout ce fouillis d'echo dans le code php.
    Il y a de la doc sur Google à foison
  • niqnutnniqnutn Member
    merci pour ta réponse.
  • StéphaneStéphane Member, Former PluXml Project Manager
    corrigé. solution de bazooka07 utilisée.
    merci JP.

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

Connectez-vous ou Inscrivez-vous pour répondre.