Ajouter des données sup aux résultats de recherche joomla ex:l'auteur de l'article

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [RÉGLÉ] Ajouter des données sup aux résultats de recherche joomla ex:l'auteur de l'article

    Salut a toute la communauté, je paramètre actuellement mon site via joomla, en ce moment je personnalise le style des résultats de recherche renvoyer en modifiant le fichier : "default_results.php" (en prenant soin de l'avoir dupliqué dans mon dossier HTML de mon tamplate comme vu sur ce forum). j'utilise le fichier default_results.php pour modifié la hiérarchie des informations par ex , ajouter des classes et div ect... de manière a le stylisé, mais j'aimerai a présent et c'est la l'objet de mon problème ajouter quelques données en plus (non disponible par défaut dans ce fichier) ...la ça ce corse on sort de ma zone de confort... je me pose donc quelque questions :

    En lançant une recherche: le module de recherche de joomla m'affiche des Articles sous forme d'echo : <?php echo $result->text; ?> la balise text ici présente m'affiche par exemple une table de la BDD concernant l'article rechercher en l'occurrence un texte de l'article ... j'ai donc réussi en recherchant dans la BDD les "noms des champs pour en ajouter" j'ai donc rajouter des balises de la même manière en ajoutant a mon fichier par exemple : <?php echo $result->metadesc; ?> ici la description apparaît et ça, c'est cool par contre je n'arrive pas a ajouter "N'importe quelle donnée" (l'auteur de l'article par exemple) (qui ne fait pas partie de la table de l'article rechercher), mais apparaît dans une autre table -> Users.

    Je ne parviens pas a être très clair, mais en gros : je ne sais pas quelle balise utilisée pour afficher d'autres données que celle présente dans le fichier : "default_results.php". or mi quelques exceptions :

    text = Texte de l'article
    section = Categories de l'article
    title = Titre de l'article
    metadesc = Description Article
    created = Date de creation de l'article
    metakey = Mots clef assigner de l'article

    Petite interrogation ?
    -Y 'a-t-il besoin de modifier la requête d'affichage de table, si oui ou ce trouve cette requête ? Je ne la trouve pas pour vérifier justement ... mais je pense que la requête est large puisqu'elle couvre tout le site ...
    -Y a-t-il une méthode, un fichier qui sélectionne par lesquels je dois passer avant de demander l'affichage ?

    Merci pour votre aide : Arnaud
    Autodidacte en programmation pour le plaisir.

  • #2
    Re : Ajouter des données sup aux résultats de recherche joomla ex:l'auteur de l'artic

    Pour aller plus loin est il possible d'afficher toutes les données renvoyer d'un éléments rechercher, pour connaitre toutes les valeurs pouvant être récupérer indépendamment ?
    Autodidacte en programmation pour le plaisir.

    Commentaire


    • #3
      Re : Ajouter des données sup aux résultats de recherche joomla ex:l'auteur de l'artic

      je revient avec de nouvelles découvertes je peut afficher certaines tables des articles via ce script :

      <h1>Les balises active :</h1>
      <?php echo $result->extra_fields_search . ' = Affiche le champ supplémentaire' ; ?><br />
      <?php echo $result->metadesc . ' = descirption de l\'article ' ; ?><br />
      <?php echo $result->metakey . ' = Mots clefs' ; ?><br />
      <?php echo $result->created . ' = date'; ?><br />
      <?php echo $result->image_caption . ' = Legende de limage'; ?><br />
      <?php echo $result->image_credits . ' = Credit de limage'; ?><br />



      En revanche impossible de faire apparaitre les Hits de l'article ??
      qui elle aussi est dans la même table, ducoup je trouve que c'est sans queue ni tête ...

      <h1>test de nouvelles Balises</h1>
      <?php echo $this->hits . ''; ?><br />


      des idées ?
      Autodidacte en programmation pour le plaisir.

      Commentaire


      • #4
        Re : Ajouter des données sup aux résultats de recherche joomla ex:l'auteur de l'artic

        Bonsoir,
        Pour aller plus loin est il possible d'afficher toutes les données renvoyer d'un éléments rechercher, pour connaitre toutes les valeurs pouvant être récupérer indépendamment ?
        Il est possible de mettre un var_dump($result); dans le code. Mais le plus simple est d'installer J!Dump pour avoir un affichage dans une fenêtre modale. Un simple dump($result,'info libre'); suffira pour avoir le contenu du tableau
        UP, le plugin universel à découvrir sur https//up.lomart.fr
        bgMax
        , AdminOrder, MetaData, Zoom, ArtPlug, Custom, Memo, Filter, ... sur http://lomart.fr/extensions

        Commentaire


        • #5
          Re : Ajouter des données sup aux résultats de recherche joomla ex:l'auteur de l'artic

          yes merci ça fonctionne très bien, du coup tu as une solution pour afficher des données qui ne sont pas dans ce résultat ?
          Autodidacte en programmation pour le plaisir.

          Commentaire


          • #6
            Re : Ajouter des données sup aux résultats de recherche joomla ex:l'auteur de l'artic

            j'avance a petits pats : Une foi le var_dump($result); exécuté je me rend compte que justement les données que je souhaite récupérer ne sont pas dans cette variable (ce qui m'étonne pas trop mais j'en ai le coeur net) ... je souhaiterai donc pouvoir accéder au fichier de la requête qui crée cette variable afin de la modifié et de passer dans la variable toutes les données dont j'ai besoin pour les récupérer dans mon fichier default_results.php mais après de très longue rechèrche je sèche impossible de mettre la main sur ce paramètre ... des idées ?
            Autodidacte en programmation pour le plaisir.

            Commentaire


            • #7
              Re : Ajouter des données sup aux résultats de recherche joomla ex:l'auteur de l'artic

              Tu n'indiques pas (ou je n'ai pas trouvé) quelle extension tu veux modifier !
              Il faut modifier la requête SQL, mais cette modif sera écrasée à la première mise à jour de Joomla!
              Cela veut dire qu'il va falloir faire un clone de l'extension pour faire tes modifs
              UP, le plugin universel à découvrir sur https//up.lomart.fr
              bgMax
              , AdminOrder, MetaData, Zoom, ArtPlug, Custom, Memo, Filter, ... sur http://lomart.fr/extensions

              Commentaire


              • #8
                Re : Ajouter des données sup aux résultats de recherche joomla ex:l'auteur de l'artic

                Salut a toi Lomart et merci pour ton retour ,
                je v'ai t'apporter quelques précisions pour que tu puisse y voir plus clair dans mon bazard :

                je cherche donc plus précisément a modifier l'extension "Search" dispo dans le chemin suivant : COMPONENTS/COM_SEARCH/VIEWS/SEARCH/TMPL/default_results.php

                (c'est le module ou extension (je ne maitrise pas trop les terme exacte) de recherche classic de joomla)

                et je cherche effectivement à présent a modifier la requete SQL car j'ai compris grace a ta fonctions : var_dump(); que la variable $result dans ce même fichier ne renvoyais pas toutes les données dont j'aurait besoin.

                D'ailleur


                Cette variable comporte des données de plusieurs table pour exemple elle comporte : le titre d'un article qui ce trouve dans ma table item et le nom de la categories de cette article qui est dans une autre table, la table categories quand on fait appel a un élément d'une ligne de la table item on utilise la balise du nom de la colonne indiqué dans la BDD or quand on va chercher un élément d'une ligne de la table catégories la le nom est différents...

                sais tu pourquoi ?


                pour l'affichage du titre de l'article rechercher : <?php echo $result->title; ?> (ce nom "title" est bien le nom indiqué dans la colonne de la bdd)

                mais

                pour l'affichage du nom de la categories : <?php echo $result->section; ?> (ce nom "section" n'est pas le nom indiqué dans la colonne de la bdd le nom serait plutôt : "name")

                que signifie cette ligne $result->section quel role a la flèche dans cette example ?

                pour terminé
                je voudrai modifier le fichier et le script donc la requête SQL (selon moi) qui ajoute a cette variable $results les valeurs dont j'ai besoin... de manière a pouvoir afficher ensuite de nouvelles données dans mes résultats de rechèrche tout simplement :

                pour example afficher : les hits des articles , l'auteur , son url ect...


                as tu une idée de l'emplacement et de la ligne de code du fichier de l'extension qui indique a la var $results ces paramètres.


                Pour informations :

                j'ai déja réalisé un clone du fichier "default_results.php" dans la partie templates/monTemplate/html/com_search/search/default_results.php
                pour ne pas qu'il soit modifié lors d'une Maj

                Merci pour ton aide précieuse !
                Dernière édition par arnaud3 à 15/08/2016, 10h02
                Autodidacte en programmation pour le plaisir.

                Commentaire


                • #9
                  Re : Ajouter des données sup aux résultats de recherche joomla ex:l'auteur de l'artic

                  Pour informations :
                  j'ai déja réalisé un clone du fichier "default_results.php" dans la partie templates/monTemplate/html/com_search/search/default_results.php
                  pour ne pas qu'il soit modifié lors d'une Maj
                  C'est bien mais la partie à modifier n'est pas surchargeable. Le composant ou extension com_search utilise des plugins pour faire ses requêtes. Donc le code doit être dans \plugins\search\content\content.php
                  N'ayant jamais touché à cette partie, je préfère être prudent sur mes conseils.
                  A te lire, je pense que tu ne maitrises pas trop le PHP et le SQL, donc je te conseille surtout d'être très prudent. Chi va piano, va sano !
                  que signifie cette ligne $result->section quel role a la flèche dans cette example ?
                  elle permet de récupérer la valeur de l'élément section du tableau $result
                  quand on va chercher un élément d'une ligne de la table catégories la le nom est différents...
                  sais tu pourquoi ?
                  Simplement parce que la requête le demande : select('c.title AS section, ...
                  UP, le plugin universel à découvrir sur https//up.lomart.fr
                  bgMax
                  , AdminOrder, MetaData, Zoom, ArtPlug, Custom, Memo, Filter, ... sur http://lomart.fr/extensions

                  Commentaire


                  • #10
                    Re : Ajouter des données sup aux résultats de recherche joomla ex:l'auteur de l'artic

                    En effet je n'ai pas de grosses connaissances en la matière .
                    - En ce qui concerne la surcharge ok c'est noté, tu proposai de cloner le plug in ? si j'arrive a mes fin je le ferai de manière a pas avoir a recommencer a chaque Maj qu'en pense tu ?

                    -le code ce trouve bien dans \plugins\search\content\content.php merci !

                    j'ai trouver trois ligne de code intéressante dans ce fichier : L169 - L181 - L238



                    est ce que tu croit que rajouter a.hits sur ces trois lignes a la fin suffirait a integrer la valeurs hits a la variable $results un example :


                    L169 : $query->select('a.title AS title, a.metadesc, a.metakey, a.created AS created, a.language, a.catid')
                    L181 : ->group('a.id, a.title, a.metadesc, a.metakey, a.created, a.language, a.catid, a.introtext, a.fulltext, c.title, a.alias, c.alias, c.id')
                    L238 : 'a.title AS title, a.metadesc, a.metakey, a.created AS created, a.hits'


                    L169 (modifié): $query->select('a.title AS title, a.metadesc, a.metakey, a.created AS created, a.language, a.catid, a.hits')

                    L181 (modifié): ->group('a.id, a.title, a.metadesc, a.metakey, a.created, a.language, a.catid, a.introtext, a.fulltext, c.title, a.alias, c.alias, c.id, a.hits')

                    L238 (modifié): 'a.title AS title, a.metadesc, a.metakey, a.created AS created, a.hits'


                    c'est cette partie de ton message qui ma éclairer : select('c.title AS section, ...



                    **Pour infos la donnée Hits appartient a la même table que metadesc, metakey
                    Dernière édition par arnaud3 à 15/08/2016, 17h27
                    Autodidacte en programmation pour le plaisir.

                    Commentaire


                    • #11
                      Re : Ajouter des données sup aux résultats de recherche joomla ex:l'auteur de l'artic

                      ca doit aller, mais l'important est de tester et retester
                      Je n'ai pas le temps de me plonger dans le code pour vérifier
                      UP, le plugin universel à découvrir sur https//up.lomart.fr
                      bgMax
                      , AdminOrder, MetaData, Zoom, ArtPlug, Custom, Memo, Filter, ... sur http://lomart.fr/extensions

                      Commentaire


                      • #12
                        Re : Ajouter des données sup aux résultats de recherche joomla ex:l'auteur de l'artic

                        ok je comprend , merci pour ton aide lomart !
                        Autodidacte en programmation pour le plaisir.

                        Commentaire


                        • #13
                          Re : Ajouter des données sup aux résultats de recherche joomla ex:l'auteur de l'artic

                          Salut,
                          comme ta question m'interessait, j'ai posé la question sur joomla.stackexchange, un forum de devs joomla :
                          How to display author name in joomla search results - Joomla Stack Exchange ->
                          I wonder if it is possible to display author name or created_by or created_by_alias in com_search results page. In components/com_search/views/search/tmpl/default_results.php, this obviously would...


                          La réponse est nickel, je l'ai testée.
                          En fait, comme te l'indiquait Lomart, il faudrait modifier le plugin associé au composant com_search.
                          La solution est de passer par smart search (com_finder) au lieu de com_search.

                          Tu suis l'explication donnée par "lodder" dans la réponse de stackexchange,
                          puis dans ton override/surcharge du fichier default_result.php dans com_finder, à placer ici :
                          templates\YOUR_TEMPLATE\html\com_finder\search\def ault_result.php

                          tu rajoutes :
                          <p><?php echo $this->result->author; ?></p>
                          <li>
                          <h4 class="result-title <?php echo $mime; ?>">
                          <a href="<?php echo JRoute::_($route); ?>"><?php echo $this->result->title; ?></a>
                          </h4>
                          <?php if ($show_description) : ?>
                          <p class="result-text<?php echo $this->pageclass_sfx; ?>">
                          <?php echo $description; ?>
                          </p>
                          <?php endif; ?>
                          <p><?php echo $this->result->author; ?></p>
                          <?php if ($this->params->get('show_url', 1)) : ?>
                          <div class="small result-url<?php echo $this->pageclass_sfx; ?>">
                          <?php echo $this->baseUrl, JRoute::_($this->result->route); ?>
                          </div>
                          <?php endif; ?>
                          </li>
                          Un message d’erreur sur votre site Joomla ... ayez le reflexe de consulter lla base de connaissance : https://kb.joomla.fr

                          Ce forum, vous l'aimez ? il vous a sauvé la vie ? Vous y apprenez chaque jour ? Alors adhérez à l'AFUJ https://www.joomla.fr/association/adherer

                          Commentaire


                          • #14
                            Re : Ajouter des données sup aux résultats de recherche joomla ex:l'auteur de l'artic

                            Salut Ghazal,
                            Merci beaucoup pour ton aide la je suis clairement très proche de mon objectif.

                            En suivant toutes tes indications , désormais il m'est possible d'afficher le nom de l'auteur via

                            $this->result->author;
                            j'ai tenter de lister le contenu de la var :
                            $this
                            via

                            var_dump($this);
                            puis
                            dump($this,'result');
                            via J!DUMP pour un affichage plus clair...

                            et afin de pouvoir récupérer les "nom/identifiants" des valeurs disponible pour ensuite les afficher mais la je sèche...

                            je ne parvient pas a réunir une liste des $variables pouvant être afficher j'en trouve certaines mais pas toutes par example impossible de mettre la main sur :

                            author
                            comment pourrai je faire concrètement pour savoir quel "nom" fait référence a quoi et ou dans ma base de donnée afin de comprendre le procédé et avoir un large choix de données a afficher ?
                            Autodidacte en programmation pour le plaisir.

                            Commentaire


                            • #15
                              Re : Ajouter des données sup aux résultats de recherche joomla ex:l'auteur de l'artic

                              On va dire que $this est une variable contextuelle, cad que ça va représenter ce qu'on veut, en fonction du contexte.

                              Mais ce n'est pas sur ça que tu devrais porter ton attention.
                              author, created_by_alias, created_by, etc, font référence à des éléments définis dans la bdd :
                              regarde ta bdd, la table "#_content", avec id, isset_id, title, etc ...

                              Essaie ceci, par exemple :
                              <?php echo $this->result->created_by_alias; ?>
                              Un message d’erreur sur votre site Joomla ... ayez le reflexe de consulter lla base de connaissance : https://kb.joomla.fr

                              Ce forum, vous l'aimez ? il vous a sauvé la vie ? Vous y apprenez chaque jour ? Alors adhérez à l'AFUJ https://www.joomla.fr/association/adherer

                              Commentaire

                              Annonce

                              Réduire
                              Aucune annonce pour le moment.

                              Partenaire de l'association

                              Réduire

                              Hébergeur Web PlanetHoster
                              Travaille ...
                              X