[RÉSOLU] Bloquer les discussions au premier sous-niveau

PPmarcelPPmarcel Member
novembre 2016 modifié dans Entraide
Bonjour,

Est-il posible de forcer toutes les réponses à un commentaire sous un seul niveau d'indentation ?

En css on peut facilement tricher sur l'indentation des réponses.

En revanche si quelqu'un vient répondre (reponse 1.1) à une réponse (reponse 1), son message s'alignera en dessous de la réponse 1 :
commentaire 1
    reponse 1
    reponse 1.1
    reponse 2
    reponse 3
commentaire 2

Or je voudrai que son message aille à la suite de toutes les autres réponses :
commentaire 1
    reponse 1
    reponse 2
    reponse 3
    reponse 1.1
commentaire 2

Et que ainsi de suite, tout se suive sous un seul sous-niveau.

Est-ce possible ?

Réponses

  • Salut,

    Peut-être en désactivant la partie javascript à la fin du fichier commentaires.php ?


    à plus,

    Gzyg
  • ça doit être jouable.
    je pense qu'il faudrait dans ce cas, n'afficher le lien répondre que sur les commentaires de niveau 1.
    du coup, une boucle après
    [== PHP ==]
    /* commentaires.php (dans le thème) */
    <?php if($plxShow->plxMotor->plxRecord_arts->f('allow_com') AND $plxShow->plxMotor->aConf['allow_com']): ?>
    
    pour n'afficher qu'au niveau 1 de commentaire le lien répondre.
  • Gzig: le javascript ne sert qu'à afficher le message auquel on répond directement à côté du textarea du formulaire de réponse.

    niqnutn: effectivement c'est l'approche la plus simple. Problème : si on a beaucoup de réponse, ce n'est pas sûr que le visiteur aura la présence d'esprit de scroller jusqu'au commentaire parent pour trouver le bouton répondre.

    Du coup dans l'idéal j'aurai aimé conserver tous les boutons de réponse.
  • éventuellement tu peux modifier le lien pour répondre au commentaire parent mais ça risque d'être assez compliqué pour retrouver toutes les infos.
    je ne sais pas exactement comment fonctionne le système de commentaire donc peux pas t'aider beaucoup plus.

    je ne sais pas s'il y a un niveau max pour les commentaires, seulement que pour le thème c'est limité à 10.
  • Finalement j'ai donc caché les boutons "répondre" en CSS pour les sous-réponses :
    .level-1 .answer_button,
    .level-2 .answer_button,
    .level-3 .answer_button,
    .level-4 .answer_button,
    .level-5 .answer_button,
    .level-max .answer_button {
        display: none;
         border 0;
    }
    

    Cela n'est pas tout à fait satisfaisant, je persiste à penser que si les réponses s'accumulent et font scroller la page, les nouveaux intervenants ne seront pas où se trouve le bouton répondre.
  • PPmarcelPPmarcel Member
    novembre 2016 modifié
    Après quelques tests, j'ai trouvé qu'une fois atteint le level-max j'obtient le comportement que je voulais (c'est à dire empiler toutes les réponses à la suite passé un certain sous-niveau).

    Le tout est donc d'atteindre level-max dès le premier sous-niveau de réponses.
    Cela se fait dans la fonction comLevel dans "/core/lib/class.plx.show.php" :
        public function comLevel() {
            if($this->comNumLevel() > 5)
                echo 'level-'.$this->comNumLevel().' level-max';
            else
                echo 'level-'.$this->comNumLevel();
        }
    

    On diminue le seuil de :
    if($this->comNumLevel() > 5)
    
    à
    if($this->comNumLevel() > 0)
    

    Il ne reste plus qu'à ajuster l'indentation de level-max dans les CSS.
Connectez-vous ou Inscrivez-vous pour répondre.