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

    Voici mon problème :
    Je voudrai afficher un texte (le ’content’) d’un document, uniquement sur la première page de listing. C’est un listing d’articles réalisé avec ditto. Il y a une pagination, je voudrai afficher le ’content’ sur la première page mais pas sur les pages suivant ’?start=1 ; ?start=2; etc.
    Contraint , il ne faudrait pas d’appel de snippet dans le contenu mais uniquement dans le template (de façon a ce que les editeurs ne puissent pas faire une boulette)...

    Ebauche de la solution, je vais donc placer un appel a un snippet maison dans le template. (il y a un snippet dèja pret pour ça ?) et je vais me baser sur la variable get ...

    En rédigeant, je me rend compte que c’est tout bête mais reste 2 questions :
    Est-ce qu’il existe un snippet déjà prêt ?
    Est-ce que modx recupère automatiquement les valeurs en $_GET ? (et comment y acceder) ...

      • 33719
      • 33 Posts
      ok, voilà la solution que j’ai adopté (nécessite le plugin phx):

      L’idée : le snippet fait la vérification pour voir si on est sur la première page de listing et fixe la valeur d’un placeholder en conséquence.
      Phx affiche le contenu voulu en fonction de la valeur de ce placeholder.

      Dans mon template :
                          [[is_listing_first_page]]
                          [+is_listing_first_page:is=`1`:then=`[*content*]`:else=` <p class="pagination"><!-- [+previous+] -->[+pages+]<!-- [+next+] --></p> `+]
      

      Dans un cas j’affiche le contenu du document, dans l’autre, j’affiche la pagination (la pagination est aussi, toujours présente en bas de page)
      Le snippet [[is_listing_first_page]] :
      if(isset($_GET['start']) && is_numeric($_GET['start']) && $_GET['start'] > 0)
      {
          $modx->setPlaceholder('is_listing_first_page','0');
      }
      else
      {
          $modx->setPlaceholder('is_listing_first_page','1');
      }
      return;

      Regarde simplement si le param start est passé en get, si il est numeric et > à 0

      Et voilà si ça intéresse quelqu’un...

      Une façon plus élégante de faire ?