We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 2327
    • 214 Posts
    Bjr,

    Je lis ça et là qu’il est possible grâce au snippet Phx de restreindre l’affichage d’un doc à son seul auteur, indépendamment du groupe auquel il apartient.

    Fonction très intéressante en FrontEnd. Mais comment faire concrètement ? Je crois qu’il faut faire appel à la variable createdby, mais comme débutant, je suis perdu dans la syntaxe Phx.

    Quelqu’un pourrait-il m’aider ? Merci.
      • 11975
      • 2,542 Posts
      Salut,

      [*createdby:is=``:then=``*]


      :-)
        Made with MODx : [url=http://www.copadel.com]copadel, fruits et l
        • 2327
        • 214 Posts
        Merci beaucoup Heliotrope de cette réponse si rapide.

        Je viens de tester. Mais ...je ne dois pas m’y prendre correctement.

        1) A quel endroit dois-je mettre ce code ? Dans le titre du document concerné, son contenu ? Désolé, je suis perdu...

        2) Tu m’indiques le code [*createdby:is=``:then=``*]. J’imagine que je dois mettre quelque chose entre les `` ? Le renvoi à l’id de l’utilisateur logué pour le premier, mais pour le 2°.....?


        Aie, désolé..suis paumé.
          • 6726
          • 7,075 Posts
          OK prenons les choses dans l’ordre :

          • PHx doit être installé (la syntaxe ci-dessus est propre à PHx, non au parser de MODx)
          • tu dois mettre le code n’importe où dans le template, c’est une TV. Si tu utilise ce code dans un chunk qui sert de template à un snippet, alors il faut utiliser la syntaxe pour les placeholders [+ ...... +]

          Oui tu mets entre les ` ` les valeurs que tu veux tester

          Edit : Hmmm, par contre attention la valeur de createdby est l’ID de l’auteur, et pas son nom.
          Helio, pour tested l’ID contre celle de l’utilisateur loggué, il faudrait peut-être un petit snippet s’appuyant sur getLoginUserID, non ?

          Ca donnerait un truc du genre

          [tt][*createdby:is=`[[getLoginUserID]]`:then=`[*content*]`*][/tt]

          ?
            .: COO - Commerce Guys - Community Driven Innovation :.


            MODx est l'outil id
            • 2327
            • 214 Posts
            Merci..bon vous me rassurez sur ma nullité... ça n’a pas l’ai aussi simple. Je vais tester. Merci !
              • 21946
              • 283 Posts
              Bonjour, cela m’intéresse mais je ne me suis jamais encore lancé dans l’API de modx donc je bloque. Je suppose qu’il faut dans les grandes lignees faire ça une fois qu’on a créer un snippet UserId?

              [+phx:if=`[*createdby*]`:is=`[!UserId!]`:then=`toute la page html`:else=`vous n'avez pas accès à cette page ! `+]


              J’ai essayé ça pour récupérer l’id de l’internaute loggé avec un snippet mais ça ne fonctionne pas; donc je suppose que j’ai rien compris à l’API de modx.
              <?php
              $id=$modx->getLoginUserID( );
              return $id;
              ?>
                [url=http://www.savepoint.fr/index.php?id=38] -petits tuyaux pour les d
                • 6726
                • 7,075 Posts
                Je ne peux pas vraiment t’aider mais regarde peut-être le lien que j’ai posté ci-dessus:
                http://wiki.modxcms.com/index.php/API:getLoginUserID
                  .: COO - Commerce Guys - Community Driven Innovation :.


                  MODx est l&#39;outil id
                  • 21946
                  • 283 Posts
                  oui j’étais tombé dessus en faisant des recherches mais ça n’a pas fonctionné chez moi et ça m’étonne qu’on ne puisse pas récupérer l’id de façon plus simple huh
                    [url=http://www.savepoint.fr/index.php?id=38] -petits tuyaux pour les d
                    • 2327
                    • 214 Posts
                    Ben moi, ca ne marche pas non plus.

                    Ce getLoginUserID, il est "livré d’origine" ou c’est un snippet qu’il faut créer ?

                    En ce dernier cas, on crée un snippet nommé getLoginUserID et on place le code ci-après à l’intérieur des balises php ?

                    # Returns current user id
                        function getLoginUserID($context= '') {
                            if ($context && isset ($_SESSION[$context . 'Validated'])) {
                                return $_SESSION[$context . 'InternalKey'];
                            } 
                            elseif ($this->isFrontend() && isset ($_SESSION['webValidated'])) {
                                return $_SESSION['webInternalKey'];
                            } 
                            elseif ($this->isBackend() && isset ($_SESSION['mgrValidated'])) {
                                return $_SESSION['mgrInternalKey'];
                            }
                        }


                    Ensuite, je vais dans le content d’un doc par exemple, et en amont de ce contenu, je place :

                    [+createdby:is=`[[getLoginUserID]]`:then=`[*content*]` :else=`visible seulement pour l\’auteur`+]


                    Mais si je fais cela j’ai un parse error...Pas simple.... undecided
                      • 6726
                      • 7,075 Posts
                      Attention le code ci-dessus est un template et non un code utilisable tel quel !

                      Pour commencer il faut définir le contexte

                      [tt]function getLoginUserID($context= ’web’)[/tt]

                      ou

                      [tt]function getLoginUserID($context= ’manager’)[/tt]

                      La suite du code permet de récupérer les données de sessions pour l’utilisateur, soit celle de l’utisateur du manager (contexte = manager), soit celle de l’utilisateur web (contexte = web)
                        .: COO - Commerce Guys - Community Driven Innovation :.


                        MODx est l&#39;outil id