We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 4831
    • 57 Posts
    Bonjour,
    avec un snippet je récupère des données stockées dans différentes variables
    j’aimerai qu’elle s’affiche par défaut à l’emplacement de mes tv et qu’elle puisse être éditable
    j’ai mis dans mon snippet
    $modx->setPlaceholder(’truc’, $mavar);
    tant que je respecte la syntaxe [+truc+] dans ma page modx ça marche
    par contre si je veux rendre mon tv truc éditable (c à dire avec la syntaxe [*truc*] ou [#*truc*]), il reprend la valeur que lui donne la bdd.
    Comment faire pour que cette tv si elle est nulle ou valeur par défaut prenne la valeur de ma variable ?
    j’espère m’être bien fait comprendre
    d’avance merci pour vos réponses !
    jp
      • 11975
      • 2,542 Posts
      Salut,

      c’est pas tres explicite grin

      D’apres ce que je comprends c’est tout a fait normal que [*truc*] affiche la valeur stockée en db et non celle produite par le snippet.
      Est ce que tu pourrais etre plus precis dans l’application que tu cherches à développer.
      Sinon a premiere vue peut etre qu’un plugins associes au bon evenement peut faire l’affaire.

      :-)
        Made with MODx : [url=http://www.copadel.com]copadel, fruits et l
        • 4831
        • 57 Posts
        bon je vais essayer d’être plus compréhensible smiley
        j’ai une page modx avec des TV dedans
        je peux les éditer comme je veux.
        dans cette même page agis un snippet
        cette snippet me récupère des données et je relie certaines de ces données à des "placeholder" grâce à la commande setplaceholder (nomdutv,$valeur).
        le lien se fait quand j’écris mes TV avec la syntaxe [+truc+]
        par contre je ne peux pas modifier par le biais du frontend ces valeurs.
        De plus, si je les laisse sous la forme [*truc*] elle n’affiche pas la valeur donnée par mon snippet mais celle de la bdd.
        ce que je voudrais c’est le beurre et l’argent et la crémière : faire en sorte que ça affiche la valeur issue de mon snippet et que je puisse l’éditer et qu’une fois édité, le tout se retrouve dans ma bdd.
        voilà
        m’étonnerait qu’il faille juste changer la syntaxe mais bon... modx m’étonne toujours

        edit : je vais être plus précis sur ma question : à quoi ça sert la commande setplaceholder ? c’est juste un artifice visuel ou y’a moyen de s’en servir autrement ? y’a t il une commande dans modx qui pourrait m’aider ?
          • 16732
          • 592 Posts
          Les palceholders ne sont là que pour être remplacés par une chaîne de caractères .

          Si tu mets le placeholder [+monBeauP+] dans ton template et qu’un snippet dans la même page utilise $modx->setPlaceholder(’monBeauP’, $mavar);
          Au final, tu vas juste te retrouver avec le contenu de $mavar affiché à la place de [+monBeauP+] grin

          Pour ce que tu veux faire je pense que c’est un peu plus compliqué mais je n’ai pas compris comment fonctionne ta page :

          j’ai une page modx avec des TV dedans
          je peux les éditer comme je veux.
          à partir du manager, c’est ça ?... car si tu peux les éditer en front je ne comprends pas ta problématique ... peux-tu nous dire ce que fait ton snippet ?

          Normalement je pense qu’il est possible d’éditer une TV en front grace aux widgets... mais la problématique va être d’injecter la valeur issue de ton snippet au widget undecided.


          faire en sorte que ça affiche la valeur issue de mon snippet et que je puisse l’éditer et qu’une fois édité, le tout se retrouve dans ma bdd.
          ça je pense qu’il va falloir que tu le fasses à la mano en générant un formulaire éditable avec les valeurs issues de ton snippet et en rajoutant les fonctions de maj des valeurs dans ton snippet (ou dans un autre)


          Enfin je dis tout ça mais je n’ai peut-être pas bien compris ce que tu voulais faire wink
            • 4831
            • 57 Posts
            sisi ça répond exactement à ce que je voulais savoir : setplaceholder est juste "visuel" et ne peut pas être utilisé pour remplacer les valeurs contenues dans les tv.
            donc je suis en train d’écrire le code qu’il faut pour les mettre dans la bdd...
            merci smiley