[Résolu] Ouverture d’un accordéon depuis une extension (Créer un compte)

  • WordPress :5.7
  • Statut : résolu
3 sujets de 1 à 3 (sur un total de 3)
  • Auteur
    Messages
  • #2382598
    Kikahled
    Participant
    Initié WordPress
    5 contributions

    Bonjour à tous !

    Ma configuration WP actuelle :

    • Extensions en place : Search In Place (extension de recherche, utilisée pour du find-in-page)

    Problème(s) rencontré(s) :

    J’ai installé il y a peu une extension permettant d’effectuer d’une recherche dans le contenu de la page, avec mise en surbrillance du (des) terme(s) recherché(s). L’extension propose un pop-up pour les résultats en AJAX, et le click sur un des résultats amène à un scroll de la page pour focus le résultat souhaité.

    Le problème intervient lorsque la recherche agit sur du texte placé en contenu d’un accordéon ; le pop-up AJAX répertorie effectivement les occurrences, cependant le click sur les résultats ne fonctionne que pour les termes situés dans le titre de l’accordéon, et non pas dans le contenu de celui-ci.

    J’aimerais donc corriger ce problème, de sorte qu’après recherche d’un terme et sélection d’un résultat contenu dans un accordéon, la fenêtre scroll jusqu’à ce dernier et l’ouvre.

    En observant le script JS de l’extension, je suis tombé sur ceci :

    openAccordion = function(e)
    {
    	if(e.is(':hidden'))
    	{
    		var t,h;
    
    		// Elementor accordion
    		t = e.closest('.elementor-tab-content');
    		if(t.length)
    		{
                        var p;
                        while(t.length && t.is(':hidden'))
                        {
                            if(!t.hasClass('elementor-active'))
                            {
                                h = $('#'+t.attr('id').replace('content', 'title'));
                                if(h.length) h.click();
                            }
                            p = t.parent();
                            t = p.closest('.elementor-tab-content');
                        }
    
    			return;
    		}
    
    		// Divi accordion
    		t = e.closest('.et_pb_toggle_content');
    		if(t.length)
    		{
    			h = t.siblings('.et_pb_toggle_title');
    			if(h.length) h.click();
    			return;
    		}
    
    		// SiteOrigin accordion
    		t = e.closest('.sow-accordion-panel-content');
    		if(t.length)
    		{
    			h = t.siblings('.sow-accordion-panel-header-container');
    			if(h.length) h.find('.sow-accordion-open-button').click();
    			return;
    		}
    	}
    }

    Cette fonction semble justement prévue pour régler mon problème, or je me suis aperçu à l’aide de quelques console.log qu’on ne rentre dans aucune des conditions présentes (Elementor / Divi / SiteOrigin). Je comprends plus ou moins l’objectif des quelques lignes de code ci-présentes (détecter l’éditeur de page, chercher le bloc accordéon le plus proche du terme recherché, simuler un click sur le titre de l’accordéon pour l’ouvrir…) mais je ne parviens pas à appliquer cette démarche pour l’éditeur Gutenberg.

    Quelqu’un saurait donc m’aider ? Je vous remercie par avance pour votre intérêt !

    #2382640
    Flobogo
    Modérateur
    Maître WordPress
    17600 contributions

    Bonjour,

    La demande est assez pointue, il faudrait qu’on bon codeur puisse vous répondre ce qui n’est pas le cas de la plupart des membres de ce forum, modérateurs compris.

    Vous aurez donc plus de chances d’obtenir une réponse en vous adressant au support de l’extension, qui semble très réactif.

    #2382660
    Kikahled
    Participant
    Initié WordPress
    5 contributions

    Bonjour,

    Je vous remercie pour votre réponse ! Je vais tenter ma chance sur ce support, c’est effectivement une très bonne idée à laquelle je n’avais pas songé.

    Bonne journée et bonne continuation !

3 sujets de 1 à 3 (sur un total de 3)
  • Vous devez être connecté pour répondre à ce sujet.