Commentaire uniquement réservé aux rédacteurs

santinisantini Member
janvier 2023 modifié dans Entraide

Bonjour la team Plume, mes meilleurs vœux pour cette nouvelle année :)
Je travail sur un projet via pluxml, comment faire pour que seul les rédacteur connecter puisse poster un commentaire ?

  • Si un visiteur n'est pas connecter il pourra voir les commentaire mais ne pourra pas poster et il aura ce message a la place "Veuillez vous identifier pour poster un commentaire"

(J'utilise le Plugin "SignUp" pour permettre aux membre de rédiger un article )

merci, Au plaisir de vous lire :)

Réponses

  • Up :(
    Il n'y a pas possibilité de mettre le formulaire de connexion au niveau de la partie commentaire, et une fois connecter le formulaire de commentaire apparait ?
    Merci

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Bonjour,
    Quand un utilisateur s'est authentifié, PluXml crée 2 variables de session : $_SESSION['user'] et $_SESSION['profil'] ( voir fichier admin/auth.php ).
    Il suffit de tester la présence de ces 2 variables :

    • pour savoir si on affiche le formulaire commentaires dans le fichier commentaires.php du thème
    • dans plxMotor::demarrage() pour vérifier que le visiteur est bien connecté quand on reçoit ce formulaire. Donc ce qui impose de modifier légèrement le code de PluXml

    Il serait judicieux de créer une fonction plxShow::isEnabledComment() pour regrouper le test sur ces 2 variables, sur $plxShow->plxMotor->plxRecord_arts->f('allow_com'), et $plxShow->plxMotor->aConf['allow_com']

    Peut-être à ajouter à la prochaine version de PluXml.....

  • Bonjour bazooka07, merci pour ton retour,
    Je doit modifier uniquement le fichier "commentaires.php" ? merci

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Bonsoir,
    En terme de sécurité, ce n'est pas suffisant.
    Il faut aussi modifier le test pour savoir si un commentaire est autorisé dans plxShow::demarrage(), comme suit à la ligne 313 du fichier class.plx.motor.php :

    if(
        !empty($_POST) and
        $this->plxRecord_arts->f('allow_com') and
        $this->aConf['allow_com'] and 
        isset($_SESSION['user']) and
        isset($_SESSION['profil'])
    ) {
      # ....
    }
    
  • Super merci beaucoup

  • Excuse moi bazooka07, j'ai fait la modif du fichier class.plx.motor.php , et du coup le site ne s'affiche plus ?

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Sans voir le code source des fichiers que tu as modifié, c'est difficile de t'aider (class.plx.motor.php et commentaires.php)

    Dans ton formulaire s-tu bien conservé les champs qu'il y a dans le thème "défaut" ?

  • Merci de ta patience <3

    Tout en haut du fichier "commentaires.php" j'ai mis:

    <?php $userId = ($_SESSION['profil'] < PROFIL_WRITER ? '[0-9]{3}' : $_SESSION['user']);] ?>


    Et dans "class.plx.motor.php"
    j'ai remplacer la ligne: if(!empty($_POST) AND $this->plxRecord_arts->f('allow_com') AND $this->aConf['allow_com']) {

    PAR:
    if(
    !empty($_POST) and
    $this->plxRecord_arts->f('allow_com') and
    $this->aConf['allow_com'] and
    isset($_SESSION['user']) and
    isset($_SESSION['profil'])
    ) {
    # ....
    }

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Quand je mets "# ....", c'est pour éviter de remettre le code qui existe déjà et qui est à conserver !

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