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

    Je n’arrive vraiment à rien de bon avec ditto. (Est ce qu’il n’existerait pas un bon tutorial pas-à-pas sur le sujet ?)
    J’ai regardé la plupart des doc techniques/officielles et quand j’essaye d’appliquer un paramètre rien ne fonctionne comme prévu :-(
    Par exemple j’utilise le paramètre pour couper un texte et il continue de tout afficher...

    Prenons un problème concret: j’aimerai que sur la première page de mon site il y ait un extrait d’un article présent sur le blog...
    Je ne veux qu’un seul article que je choisirai manuellement mais je voudrais qu’il s’agisse d’un extrait d’un certain nombre de lignes (le début).

    Le document de mon blog à un index de 2 et celui de l’article qui m’intéresse a un index de 3.
    L’Id du document à indiquer à ditto, est ce bien la valeur ’menu index’ qu’on peut voir en editant la page ?

    Voici mon code qui ne fonctionne pas:
     [!Ditto? &startID=`2` &paginate=`1` &summarize=`1` &total=`1` &trunc=`1` &truncSpli=`0` &truncLen=`30`!]


    Tout est bizarre. D’abord il m’affiche l’article présent dans le document d’index 4 avec cette commande.
    Pourquoi m’affiche-t-il le 4 ? Alors là je n’y comprends rien...
    Et si je mets startID 3 ou 4 et bien il me dit ’No documents found.’
    Au delà de ça, il ne tient absolument pas compte que je lui demande de couper à 30 caractères. Il affiche tout.
    Donc voilà si quelqu’un peut m’éclairer sur mes erreurs, il me rendra un grand service.
    Je crois que je passe à côté de quelque chose d’essentiel ...
      • 23050
      • 1,842 Posts
      Hello smiley

      Quelle version de Ditto utilises-tu ?

      Si la dernière version, en 2.1, essaie de remplacer &startID=`2` par &documents=`2`

      Pour tronquer un texte, le paramètre &summarize ne suffit plus. Il faut utiliser le paramètre &extenders=`summarize` : http://ditto.modxcms.com/extenders/summary.html
      Mais perso, je ne l’utilise jamais car je trouve que la coupure n’est jamais aussi bien faite que par un humain laugh Donc je mets mon extrait dans l’intro et je l’appelle dans mon template avec [+introtext+]

      &paginate a priori, tu n’en as pas besoin puisque tu n’affiches qu’un seul document. La pagination est utilisée pour dispatcher plusieurs documents sur plusieurs pages

      Essaie tout ça et fais un tour sur la doc que je t’ai linkée, tu devrais t’en sortir.
        • 2089
        • 69 Posts
        Merci de ton aide.
        En fait j’arrive déjà à y voir un peu plus clair... mais ça ne fonctionne pas encore pour la coupure.

        Au niveau des ID apparement ces ID n’ont aucun rapport avec le ’menu index’ qu’on peut appercevoir dans le manager.
        Pour connaitre l’ID du document il faut ouvrir le blog, consulter la page et regarder dans la barre d’adresse il y a un truc du genre
        http://l(....)/MODx/index.php?id=51
        C’est ce chiffre qui est le bon.
        Apparement ça marche aussi avec &startID et comme tu l’indiques le nouveau paramètre &documents fonctionne aussi.
        Maintenant je peux choisir le document que j’affiche avec ditto, c’est pas beau ça smiley
        Ca c’est pour la partie qui marche.

        Par contre pour la coupure je n’ai pas avancé.
        Comme toi j’ai contourné le problème en utilisant une balise [+introtext+], ce qui effectivement fonctionne.
        Ca marche assez bien mais je suis obligé de créer ce texte (ce qui n’est pas un drame j’admets).

        Ceci dit juste pour la compréhension du fonctionnement j’aimerai quand même couper un texte existant.
        Actuellement voici comment se présente la commande:
        [!Ditto? &documents=`51` &trunc=`1` &truncSpli=`0` &truncLen=`8` &extenders=`summary`!]


        Bon ça ne coupait rien alors pour etre certain j’ai crée un template personnalisé via un chunk dans lequel j’ai introduit la balise [+summary+]
        <div class="ditto_item" id="ditto_item_[+id+]">
            <h3 class="ditto_pageTitle"><a href="[~[+id+]~]">[+pagetitle+]</a></h3>
        <h2>La balise summary en clair:</h2>
        [+summary+]
        </div>

        et j’ai changé ditto dans le code de la page:
        [!Ditto? &documents=`51` &trunc=`1` &truncSpli=`0` &truncLen=`8` &extenders=`summary` &tpl=`templateDittoHome`!]

        Effectivement le nouveau template pour ditto est bien pris en compte puisqu’il m’affiche une ligne de plus que j’ai ajouté si vous avez remarqué:
        ’La balise summary en clair’
        Il a donc bien pris mon nouveau template... mais le texte est toujours aussi long malheureusement. Pourtant avec une longueur de 8 .. ça devrait se voir.

        En fait pour bien comprendre comment ça marche: ditto retourne du texte formaté avec un template. Donc il retourne du HTML qui s’insère à la page, non ? Donc puisqu’il retourne effectivement qqch c’est que la combianison pour couper le texte n’est pas bonne.
        Bon évidement s’il faut combiner 4 commandes pour couper le texte les risques d’erreurs sont plus grands.
        quelqu’un y voit-il un peu plus clair ?


        ps. ditto en version 2.1.0
          • 23050
          • 1,842 Posts
          L’ID d’un document est affiché entre parenthèses, juste après le document, dans l’arbre des documents smiley

          Pour la troncature, je vais sécher car ça fait un bail que je ne l’ai pas utilisé :/
            • 2089
            • 69 Posts
            Ha oui...c’est drole j’avais été cherché l’info si loin et elle était devant mon nez.
            Bah on ne peut pas dire que l’interface soit évidente non plus pour le débutant comme moi.
            Il faut bien savoir où aller quand on commence pour comprendre toutes les relations qui existent dans le logiciel.
            La doc est orientée de façon très technique mais il y a peu d’explication généralistes qui expliquent comment coller toutes ces pièces ensemble. Je ferais bien un petit tuto du genre MODx pour les nuls quand j’aurais assimilé assez du logiciel.
            Ceci dit le plus dur pour moi reste le XHTML et le CSS car je débute la-dedans aussi.

            Si jamais quelqu’un s’y connait pour couper du texte avec ditto je suis prenneur smiley
              • 19036
              • 119 Posts
              Salut !

              J’ai aussi eu ce genre de problème pour tronquer des textes...ditto semble ne pas être optimal pour ce genre de chose, mais je pense qu’une bonne alternative est celle-ci:

              http://modxcms.com/forums/index.php/topic,30108.msg183177.html#msg183177

              Nomme ton snippet comme ceci:  phx:character_limit
              Utilise le code suivant dans ton snippet:
              <?php
              $output_truncated = substr($output, 0, $options);
              return $output_truncated;
              ?>


              Le seul problème que j’ai encore, c’est qu’il me coupe le mots....alors je vais poster cette question sur le post susmentionné.

              A plus
              Mehdi
                Scuse my english...I&#39;m swiss