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

    Je souhaite inclure du contenu depuis une variable de modèle en utilisant un binding de type @FILE.
    Le document à inclure porte le numéro de l’id du document MODx qui l’appelle, suivi de l’extension "html"

    J’observe ceci :
    @FILE 31.html

    [b]fonctionne, mais
    @FILE [*id*].html

    ne fonctionne pas; j’obtiens :
    Could not retrieve document ’31.html’.
    Je suppose que c’est dû à l’ordre dans lequel les instructions sont parsées.
    J’aimerais pourtant bien avoir
    @FILE [*id*].html
    comme valeur par défaut pour ma variable de modèle [*contenu_externe*]. Que faire ?
      • 15001
      • 697 Posts
      J’ai encore essayé de créer ce snippet et de l’appeler depuis ma variable de modèle.
      Le problème est que lorsqu’un appel de snippet est stocké dans une variable de modèle, celle-ci ne semble pas comprendre qu’elle doit exécuter le snippet. J’obtiens simplement l’impression de l’appel de snippet lorsque j’appelle ma variable de modèle. Devrais-je créer un plugin ?

      GetHtmlFileMatchingId :
      <?php
      $fichier='assets/site/'.$modx->documentIdentifier;
      $fichier.='.html';
      $fichier = '@FILE '.$fichier;
      return $fichier;
      ?>

      En fait la solution que je recherche peut se résumer à :

      - Comment appeler une variable de modèle depuis le contenu d’une variable de modèle ?
      ou
      - Comme exécuter un snippet depuis le contenu d’une variable de modèle ?

      Merci.
        • 15001
        • 697 Posts
        C’est à devenir dingue; j’ai encore essayé ceci :

        Dans le code source du document :
        [*contenu*]

        Le contenu de la variable [*contenu*] :
        @FILE [(base_url)]/assets/site/[[GetHtmlFileMatchingId]]

        Le snippet GetHtmlFileMatchingId :
        <?php
        $fichier=$modx->documentIdentifier;
        $fichier.='.html';
        // $fichier = '@FILE '.$fichier;
        echo $fichier;
        ?>


        Le résultat :
        Could not retrieve document ’/0100_site/assets/site/9.html’.
        Pourtant la page existe.

        Si j’écris @FILE assets/site/9.html dans la variable [*contenu*], ça marche.

        Une idée ?