• recueil d'appels de snippets, chunks (ModX in action)#

  • mrcou Reply #1, 5 years, 9 months ago

    Reply
    Bonjour,

    j'aimerai regrouper dans un même topic des exemples d'appels de snippets, chunks et autres TVs, appels pouvant être imbriqués les uns dans les autres.

    Exemple :
    [!DropMenu? &startDoc=`[[UltimateParent]]`!]


    Voici les exemples demandés :
      [list]
    • appel d'une TV dans une autre TV
    • appel d'une TV dans un paramètre de snippet
    [/list]

    • appel d'une TV dans le code d'un snippet

    • appel d'un snippet dans le code d'un snippet
    • utilisation d'un placeholder avec un snippet
    • appel d'un snippet dans une TV
    [/list]

    (note du modérateur : corrigé quelques pb de syntaxe de formattage de listes -> notamment [\li] au lieu d'un slash... )


  • heliotrope Reply #2, 5 years, 9 months ago

    Reply
    Voici un exemple d'appel de snippet dans le code d'un snippet :-)

    Sa fonction est d'attacher une gallery(maxiGallery) à la page en cours
    En fonction e l'ultimate parent on ajoute un chunk qui est un texte de presentation.
    Pour bien faire il faudrait rajouter du code pour changer les parametres du doc en cours pour -> ne pas mettre en cache

    Pour que ce soit plus simple pour le client $action est une TV(radio) oui/non

    if(isset($action) && $action=="oui"){//TV passée en parametres du snippet
    
    
    $ultimateID = $modx->runSnippet('UltimateParent');
    $snippetName = 'MaxiGallery';
    $snParams = array();
    
    $snParams['manager_webgroups'] = 'Registered Users';
    $snParams['display'] = 'embedded';
    $snParams['embedtype'] = 'lightboxv2';
    $snParams['pics_in_a_row'] = 3;
    
    switch($ultimateID){
    
    case 58:
    $snParams['language'] = 'fr';
    $messIntro = "{{introGallery-FR}}\n";
    $output .= $messIntro; 
    $output .= $modx->runSnippet($snippetName, $snParams);
    return $output;
    break;
    
    case 71:
    $snParams['language'] = 'en';
    $messIntro = "{{introGallery-UK}}\n";
    $output .= $messIntro; 
    $output .= $modx->runSnippet($snippetName, $snParams);
    return $output;
    break;
    
    case 109:
    $snParams['language'] = 'de';
    $messIntro = "{{introGallery-DE}}\n";
    $output .= $messIntro; 
    $output .= $modx->runSnippet($snippetName, $snParams);
    return $output;
    break;
    
    
    }
    }
    
    


    Appel dans la page

    [[attachGallery? &action=`[*action*]`]]


  • davidm Reply #3, 5 years, 9 months ago

    Reply
    Merci pour l'exemple Heliotrope
    Ce genre d'appels récursif est encore délicat à manier mais cela va changer avec le nouveau parser


  • El-Cherubin Reply #4, 4 years, 2 months ago

    Reply

    Est ce que quelqu'un pourrait m'indiquer ou trouver une definition de "TV"...?

    merci


  • Nilo Reply #5, 4 years, 2 months ago

    Reply
    Peut être ici :http://www.savepoint.fr/index.php?id=56