We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 33976 ☆ A M B ☆
    • 571 Posts
    A première vue, pas de $_POST lorsque tu utilises tes liens de pagination, donc pas de chunk retourné (et donc pas d'appel getPage).

    Une possibilité (à la va-vite) serait d'utiliser $_GET.
    Aussi, plutôt que d'utiliser un chunk, pourquoi ne pas utiliser runSnippet ?

    Par exemple :

    <?php
    /**
     * @var modX $modx
     */
    
    // Paramètres communs à tous les départements
    $parametres = array(
        'element' => 'getResources',
        'elementClass' => 'modSnippet',
        'parents' => $modx->resource->get('id'),
        'depth' => 2,
        'limit' => 6,
        'pageVarKey' => 'page',
        'includeTVs' => 1,
        'includeContent' => 1,
        'includeTVList' => 'ma_tv,tarif,ref,tel,departement',
        'tpl' => 'article',
        'processTVs' => 1,
        'pageLastTpl' => '<li class="control"><a[[+title]] href="[[+href]]">Dernière page</a></li>',
        'pageFirstTpl' => '<li class="control"><a[[+title]] href="[[+href]]">Première page</a></li>',
    );
    
    // Switch selon le département choisi
    switch ($_GET['departement']) {
        case 'ardeche':
            // on ajoute les paramètres spécifiques au département
            $parametres = array_merge($parametres, array(
                'tvFilters' => 'departement==Ardeche',
                'resources' => '-12,-13',
            ));
            // on execute le snippet
            return $modx->runSnippet('getPage', $parametres);
            break;
    
        case 'drome':
            $parametres = array_merge($parametres, array(
                'tvFilters' => 'departement==Drome',
                'resources' => '-12,-13',
            ));
            return $modx->runSnippet('getPage', $parametres);
            break;
    
        default:
            return 'Aucun département sélectionné';
            break;
    }
    
    return 'Normalement on ne doit jamais voir ce message, sinon une erreur s\'est glissée dans le code!';
    


    Note : code non testé, mais l'idée est là.
    Bon courage
      • 38506
      • 103 Posts
      oui je m'étais taté pour faire un snippet comme ça, mais je me disais que c'étais plus compliqué.

      J'ai passé en GET. par contre ton code marche mais lorsque je sélectionne les départements, ils me renvoie apres vers l'accueil ...
        • 38506
        • 103 Posts
        Enfait ça doit venir de $_GET car j'ai le meme soucis lorsque je met ça avec mon ancien code
          • 38506
          • 103 Posts
          j'ai posté un autre sujet car ya des problèmes qui se sont rajoutés :c
            • 38506
            • 103 Posts
            Quote from: romain at Feb 16, 2012, 05:09 AM
            A première vue, pas de $_POST lorsque tu utilises tes liens de pagination, donc pas de chunk retourné (et donc pas d'appel getPage).

            Une possibilité (à la va-vite) serait d'utiliser $_GET.
            Aussi, plutôt que d'utiliser un chunk, pourquoi ne pas utiliser runSnippet ?

            Par exemple :

            <!--?php
            /**
             * @var modX $modx
             */
            
            // Paramètres communs à tous les départements
            $parametres = array(
                'element' =--> 'getResources',
                'elementClass' => 'modSnippet',
                'parents' => $modx->resource->get('id'),
                'depth' => 2,
                'limit' => 6,
                'pageVarKey' => 'page',
                'includeTVs' => 1,
                'includeContent' => 1,
                'includeTVList' => 'ma_tv,tarif,ref,tel,departement',
                'tpl' => 'article',
                'processTVs' => 1,
                'pageLastTpl' => '<li class="control"><a[[+title]] href="[[+href]]">Dernière page</a[[+title]]></li>',
                'pageFirstTpl' => '<li class="control"><a[[+title]] href="[[+href]]">Première page</a[[+title]]></li>',
            );
            
            // Switch selon le département choisi
            switch ($_GET['departement']) {
                case 'ardeche':
                    // on ajoute les paramètres spécifiques au département
                    $parametres = array_merge($parametres, array(
                        'tvFilters' => 'departement==Ardeche',
                        'resources' => '-12,-13',
                    ));
                    // on execute le snippet
                    return $modx->runSnippet('getPage', $parametres);
                    break;
            
                case 'drome':
                    $parametres = array_merge($parametres, array(
                        'tvFilters' => 'departement==Drome',
                        'resources' => '-12,-13',
                    ));
                    return $modx->runSnippet('getPage', $parametres);
                    break;
            
                default:
                    return 'Aucun département sélectionné';
                    break;
            }
            
            return 'Normalement on ne doit jamais voir ce message, sinon une erreur s\'est glissée dans le code!';
            


            Note : code non testé, mais l'idée est là.
            Bon courage
              • 38506
              • 103 Posts
              hello !

              Sais-tu comment faire pour mettre un message d'erreur ? du genre s'il n'y a pas d'article pour le département choisi ?

              Merci wink