We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 5811
    • 1,717 Posts
    Après quelques heures passées huh à comprendre comment marchait le snippet AjaxSearch, je me permet smiley de vous présenter quelques corrections / évolutions pour ce snippet.
    J’ai renuméroté arbitrairement cette version en 1.6.1 puisque issue de la version 1.6. Je verrais avec son auteur si il embarque ou pas ces corrections. En attendant merci si certains d’entre vous peuvent secouer ces évolutions / corrections.

    Personnellement j’ai fait les tests avec Firefox et IE6 sur des sites UTF-8 et ISO-8859-1

    Voici les évolutions / corrections effectuées.

    1/ Prise en charge du navigateur IE lorsqu’on veut afficher les résultats dans une fenêtre Ajax. Sans affichage d’une horrible barre. Testé en IE6. Donc doit marché en IE7.
    Permet d’afficher les résultats dans une fenetre + ou - opaque.

    Voir les démos:

    UTF-8 :
    Récits de voyage, tapez "année" comme mot recherché.
    Couleurs des Andes, tapez "rubén" comme mot recherché.

    L’erreur provenait d’une utilisation partielle de la librairie Ajax mootools
    Fichiers modifiés : snippet-ajaxSearch-tpl.php et AjaxSearch.js

    Ajout du parametre AS_opacity pour fixer l’opacité souhaitée de la fenetre résultats. 1.(opaque) par défaut.
    Pour comprendre, il convient de regarder la feuille css search.css jointe à titre d’exemple. Voir #ajaxSearch_output

    Attention, non vérifié avec la librairie Scriptaculous.

    D’autre part :
    - l’extension php mbstring de votre serveur doit etre activée (c’est généralement le cas)
    - la variable $database_connection_charset du fichier /manager/includes/config.inc.php doit impérativement être à jour et comporter le charset de la base mysql (utf-8, latin1, ...) sous peine d’avoir un warning (visible dans la fenetre d’affichage).

    2/ Prise en charge de l’UTF8 dans la fenetre Ajax résultats.
    Corrige le bug d’encodage. Affiche notamment correctement le lien "Cliquez ici pour voir tous les résultats."
    Et donne les résultats en pleine page lorsqu’on clique sur le lien.

    Cette erreur a été corrigé en tenant compte du charset de la base
    Fichiers modifiés : AjaxSearch.php et includes/AjaxSearch.inc.php

    Pour un affichage UTF8, les fichiers AjaxSearch/lang utilisés, le fichier include/templates.inc.php
    doivent etre encodés en UTF-8. La base en utf8.

    Pour un affichage ISO-8859-1, les fichiers AjaxSearch/lang utilisés, le fichier include/templates.inc.php
    doivent etre encodés en ANSI (ISO-8859-1). La base doit etre avec un charset latin1.

    3/ Prise en charge des caratères accentués dans les mots recherchés.

    Jusqu’à présent en ISO-8859-1, la saisie d’un mot avec des caractères accentués, gelait littéralement la recherche Ajax. Cette version corrige ces problèmes.

    Cette erreur a été corrigée en convertissant les mots de recherche selon le charset de la base et en utilisant la fonction htmlentities avec la fonction urlencode.
    Fichiers modifiés : AjaxSearch.php

    Prochaine étape :
    Par la suite je vais essayer de modifier le snippet pour prendre en compte un paramètre fixant en entrée
    une liste restreinte de documents (plusieurs sous-arbres de documents). Et ce pour limiter la recherche à un
    sous-ensemble de docs.

    Dernier point : le code du plugin n’a pas changé. Il n’y a donc pas lieu de le recharger, contrairement au snippet qu’il faut écraser avec le contenu du fichier snippet-ajaxSearch-tpl.php du répertoire réinstallé.

    smiley J’attends vos tests et retours éventuels avant de proposer la modification à son auteur.


    Une version 1.7 du snippet est maintenant disponible dans le repository
      • 5811
      • 1,717 Posts
      Voici une nouvelle version du snippet AjaxSearch. Version 1.6.2 issue de la version 1.6, reprenant les fonctionnalités de la version 1.6.1 décrites dans le post précédent.

      Cette nouvelle version apporte la sélection des documents sur lesquels peut porter la recherche. Les nouveaux paramètres sont :

      &parents [comma-separated list of integers MODx document IDs] (optional)
      Une liste, séparée par des virgules, de documents parents, donnant les documents où effectuer la recherche
      La profondeur de la recherche est donné par le paramètre &depth
      Par défault tous les documents sont pris en compte

      &depth [int] (optional)
      Nombre de niveaux où effectuer la recherche
      N’importe quel nombre >= 1. par défaut 25 (ce qui devrait suffire smiley )

      &documents [comma-separated list of integers MODx document IDs] (optional)
      Une liste, séparée par des virgules, de documents à prendre en compte

      Les paramètres &parents et &documents sont exclusifs. &parents prime sur &documents

      Quelques exemples :

      [!AjaxSearch!]
      recherche dans tous les documents

      [!AjaxSearch? &documents=`2,3,8,16`!]
      recherche dans les documents 2,3,8,16 exclusivement

      [!AjaxSearch? &parents=`5,7`!]
      recherche dans tous les documents fils des documents pères 5 et 7

      [!AjaxSearch? &parents=`5,7` &depth=`2`!]
      recherche sur 2 niveaux dans les documents fils des documents pères 5 et 7

      Je vais proposer cette nouvelle version à Kylej. J’attends son retour déjà sur la version précédente.

      Prochaine étape : je pense rajouter la notion de filtre comme pour ditto quelque chose du genre :

      Param: filter

      Possibilité de donner un groupe de filtres respectant le format "field,criteria,mode"
      où le mode signifie :

      1 - !=
      2 - ==
      3 - <
      4 - >
      5 - <=
      6 - >=
      7 - Text not in field value
      8 - Text in field value


      et ce de façon à pouvoir filtrer certains documents dans les arbres de documents.
      Filtre sur les champs des documents.

      Votre avis sur l’intéret de cette fonctionnalité, car personnellement j’en ai pas encore l’utilité moi-même.

      Voici attaché le code complet de la version 1.6.2 du snippet modifié. Merci de vos retours.

      Le même post en anglais : http://modxcms.com/forums/index.php/topic,5357.301.html

      Une version 1.7 du snippet est maintenant disponible dans le repository
        • 13843
        • 2 Posts
        Bonjour Coroico

        Il faut tout de suite dire que mes connaissances sur Modx sont limitées...

        Voilà mon problème.

        J’ai installé le snippet Ajaxsearch 1.6.2 et après quelques tatonement il marche parfaitement (Merci pour tes réponses aux question qui t’ont été posées cela m’a beaucoup aidé), Cependant, quand sur mon site je passe sur une autre page et revient sur la page d’acceuil, le snippet ne fonctionne plus.

        j’utilise pour l’instant IE6. j’ai remarqué un dédoublement des lignes dans le code html de mon modèle.

        voici le code à l’ouverture du site :

        ....

        <script type="text/javascript" src="manager/media/script/mootools/mootools.js"></script>
        <script type="text/javascript" src="assets/snippets/AjaxSearch/AjaxSearch.js"></script>
        <script type="text/javascript">
        <!--
        as_opacity = ’0.8 ’;
        stripHtml = 1;
        stripSnip = 1;
        stripSnippets = 1;
        useAllWords = 0;
        searchStyle = ’partial’;
        minChars = 4;
        maxResults = 3;
        showMoreResults = 1;
        moreResultsPage = 6;
        as_language = ’francais-utf8’;
        extract = 1;
        liveSearch = 0;
        docgrp = ’’;
        highlightResult = 1;
        listIDs = ’8,9,12’;
        -->
        </script>
        </head>

        et voici le même code après avoir changé de page et être revenu sur la page d’acceuil

        .....
        <script type="text/javascript" src="manager/media/script/mootools/mootools.js"></script>
        <script type="text/javascript" src="assets/snippets/AjaxSearch/AjaxSearch.js"></script>
        <script type="text/javascript">
        <!--
        as_opacity = ’0.8 ’;
        stripHtml = 1;
        stripSnip = 1;
        stripSnippets = 1;
        useAllWords = 0;
        searchStyle = ’partial’;
        minChars = 4;
        maxResults = 3;
        showMoreResults = 1;
        moreResultsPage = 6;
        as_language = ’francais-utf8’;
        extract = 1;
        liveSearch = 0;
        docgrp = ’’;
        highlightResult = 1;
        listIDs = ’8,9,12’;
        -->
        </script>
        <script type="text/javascript" src="manager/media/script/mootools/mootools.js"></script>
        <script type="text/javascript" src="assets/snippets/AjaxSearch/AjaxSearch.js"></script>
        <script type="text/javascript">
        <!--
        as_opacity = ’0.8 ’;
        stripHtml = 1;
        stripSnip = 1;
        stripSnippets = 1;
        useAllWords = 0;
        searchStyle = ’partial’;
        minChars = 4;
        maxResults = 3;
        showMoreResults = 1;
        moreResultsPage = 6;
        as_language = ’francais-utf8’;
        extract = 1;
        liveSearch = 0;
        docgrp = ’’;
        highlightResult = 1;
        listIDs = ’8,9,12’;
        -->
        </script>
        </head>

        Peux tu me dire s’il s’agit d’un bug ou d’une erreur de ma part... ?

        L’appel au snippet dans mon modèle est le suivant :

        [!AjaxSearch? &extract=`1` &ajaxMax=`3` &showMoreResults=`1` &moreResultsPage=`6` &AS_opacity=0.8 &parents=`1,7,11,12` &depth =`8`!]


        J’ai aussi essayé avec

        [[AjaxSearch? &extract=`1` &ajaxMax=`3` &showMoreResults=`1` &moreResultsPage=`6` &AS_opacity=0.8 &parents=`1,7,11,12` &depth =`8`]]

        Dans ce cas je n’ai pas de dédoublement mais la recherche se plante de temps en temps

        Merci d’avance pour m’aider à diminuer mon ignorance

        Merci d’avance
          • 5811
          • 1,717 Posts
          Non, il s’agit bien d’un bug. J’avais moi-même remarqué ce doublement de lignes. Mais pas eu le temps d’aller beaucoup plus loin huh
          J’ai réussi à l’isoler dans un test simple et j’ai posé la question sur le forum en Anglais. D’après Jason ce bug aurait déjà été identifié (See http://modxcms.com/bugs/task/865) et serait corrigé dans la version 0.9.6.1. Rassures moi, dis moi que tu es bien en 0.9.6 et que comme moi tu as eu la flemme de passer à la 0.9.6.1 laugh
          Reste donc plus qu’à vérifier que c’est bien le cas. Si par contre tu es déjà en 0.9.6.1, on en a pas fini undecided

          Merci pour ce retour. Il n’y a pas de mauvaises remarques. grin Le premier a qui réinstallé et testé et vérifié que c’est bon en 0.9.6.1, préviens l’autre wink
            • 13843
            • 2 Posts
            Bonjour Coroico

            D’abord merci pour ta réponse

            Je te rassurre je suis bien en 0.9.6

            J’ai quand même trouver une parade (pas très élégante) au problème en ne mettant pas mes pages en cache...
            Je ne sais pas si c’est une bonne façon de faire car je pense que cela sollicite davantage mon petit serveur (PC)
            Mais bon comme je suis le seul utilisateur du suite (il n’est pas encore publié grin).

            j’ai trop peur de monter en 9.6.1 pour l’instant, j’attends un peu et peut être que bientôt on touchera la V 1.00 wink

            Encore merci ton implication aussi soutenue

              • 5811
              • 1,717 Posts
              Je viens de migrer en 0.9.6.1 et je peux te confirmer qu’on a plus la double inclusion des lignes javascript wink

              j’ai trop peur de monter en 9.6.1 pour l’instant, j’attends un peu et peut être que bientôt on touchera la V 1.00
              Pour ma part j’hésitais aussi, peu convaincu par les apports de la nouvelle release. Maintenant j’ai procédé à une mise à jour et non à une réinstallation. Beaucoup plus facile. j’ai procédé comme indiqué dans http://wiki.modxcms.com/index.php/Upgrading_Guide en utilisant la méthode alternative. Je n’ai eu aucun problème

              La prochaine version sera une 0.9.7 et non une 1.0, mais peu importe, les apports seront eux conséquents.
                • 5811
                • 1,717 Posts
                Un post pour vous signaler que je viens de livrer dans le repository la version 1.7 du snippet AjaxSearch
                Cette version reprend les évolutions fonctionnelles livrées dans les posts précédents et apporte des correctifs à un certain nombre d’anomalies.
                  • 6726
                  • 7,075 Posts
                  Excellent !
                  Je vais jeter un coup d’oeil, sachant de toute façon que cette version tout le monde pourra la tester dans la 0.9.6.2 wink

                  (Par ailleurs, félicitations pour ton arrivée dans la testing team grin !)
                    .: COO - Commerce Guys - Community Driven Innovation :.


                    MODx est l&#39;outil id
                    • 23050
                    • 1,842 Posts
                    Wow Coroico, chouette ça !

                    Et félicitations pour ta promotion !!! (David, fais un nouveau post qu’on puisse le féliciter comme il se doit sans flooder ici ! :p )
                      • 6726
                      • 7,075 Posts
                      Ce serait plutôt à Helio de le faire, sur ce coup là j’y suis pour rien wink
                        .: COO - Commerce Guys - Community Driven Innovation :.


                        MODx est l&#39;outil id