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

    Cherchant à mettre un peu d’ajax sur mon site de test j’ai rencontré un petit problème.
    Lors d’un clic sur un lien du menu je mets à jour mon div de contenu grâce à un micro snippet de ma conception (merci le wiki), jusqu’ici ça fonctionne. smiley

    Là où ça coince c’est que j’aimerai bien renvoyer un breadcrumb remis à jour dans la réponse à la requête ajax.
    Pour le moment j’ai fait quelques essais comme par exemple récupérer en bdd le code de breadcrumb et le passer dans eval (oui je sais c’est le mal) mais ça ne fonctionne pas.
    Le chemin retourné est celui de la page d’accueil uniquement, j’ai aussi essayé de modifier $modx->documentObject[’id’] ou encore $modx->documentIdentifier avec l’ID du contenu appelé par ajax avant l’appel à eval() mais rien n’y fait.
    Je ne sais pas trop si mon approche est la bonne et quelle serait la meilleur méthode.

    Merci de vos réponses.
      • 26981
      • 7 Posts
      Après plus amples investigations dans l’api de modx j’ai trouvé une solution à mon problème.
      Je poste ici peut-être que ça servira à quelqu’un d’autre.

      Dans le fichier backend qui traite la requête ajax il faut mettre à jour l’objet document avec au minimum les champs id et pagetitle pour que le breadcrumb fonctionne.

      // identifiant du document appelé
      $id_page = 123;
      
      // recupère les champs du document qui nous intéresse
      $modx->documentObject = $modx->getDocument($id_page, 'id, pagetitle');
      
      // exécute le snippet et retourne le code html
      echo $modx->runSnippet('breadCrumbs');