Quelle est la relation entre un composant (search) et son module ?

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

  • Quelle est la relation entre un composant (search) et son module ?

    Bonjour,

    Je ne comprends pas comment le module search utilise le composant Search. Ce que je souhaite faire me paraissait simple mais le résultat obtenu ne correspond pas à ce que je souhaite : afficher le résultat d'une recherche dans un template assigné.

    Pour ce faire, j'ai cru qu'en copiant le module de recherche Search et en l'affectant au deuxième template aurait suffit, mais ce résultat est bien affecté au premier template.

    Du coup j'ai voulu modifier le code du module ou du composant mais je ne parviens pas à comprendre comment un module appel son composant ? Voilà, conscient que cette question est vaste, j'ose espérer avoir des réponses.

    Merci et à bientôt.
    Dernière édition par kurkaine à 18/07/2008, 05h00

  • #2
    Il vous faut modifier le code dans le composant:
    /components/com_search/views/search/view.html.php
    ligne 33
    Example pour utiliser rhuk_milkyway au lieu du template par défaut

    class SearchViewSearch extends JView
    {
    function display($tpl = null)
    {
    global $mainframe;
    $mainframe->setTemplate('rhuk_milkyway');
    Jean-Marie Simonet / infograf768
    Joomla co-fondateur. Joomla Production Working Group.
    Sauf demande explicite de ma part, merci de ne pas utiliser de Message Privé pour poser des questions. Le forum est là pour ça.

    Commentaire


    • #3
      Merci beaucoup de cette réponse qui m'apprends beaucoup plus qu'il n'en parait sur l'utilisation de l'api Joomla.

      J'ai testé et effectivement j'ai pu sélectionner le template. Cependant je vais compliqué car ce n'est pas tout à fait ce que je souhaite obtenir. En fait, suivant le module de recherche (j'ai deux modules de recherches), je souhaite appeler choisir un template différent. Pour paraitre plus compréhensible sur mon ambition, il faut savoir que dans un cas je vais effectuer une recherche standard joomla et dans un autre cas je ne vais rechercher que dans le contenu de chaque article suivant une occurence précise (mais l'affichage sera le même).

      J'ai remarqué que les tags à rechercher sont construit dans le répertoire /plugin/search/. Chaque plugin écrit à ce niveau donne un critère de sélection dans la requête SQL.
      1. Dans la fonction display($tpl = null) on peut donc passer le template à choisir. Mais je n'ai pas trouvé qui appel cette fonction ? Je souhaiterai dans un premier temps, lors de l'appel de cette fonction lui passer le template.
      2. Une autre question qui pourrait résoudre mon problème. Suivant le module de recherche (au pire je ne le copie pas car ça reste un mod_search et j'en écris un second: mod_search2) je souhaiterai que lors du lancement d'une recherche, je ne parcours pas l'ensemble des plugins définit dans /plugins/search mais mes plugins que j'aurai défini dans /plugins/search2. Comment faire ?

      Bon, là je suis un peu parti en live mais la réponse que vous m'avez apporté m'a montré à quel point Joomla était souple, et je suis sûr qu'il est possible de résoudre mon problème sans créer un nouveau composant/plugins/module de recherche équivalent à celui existant.

      Si vous trouvez le courage de me lire, de comprendre mon besoin écrit dans un charabia, et pire encore, de me répondre (positivement) je vous serez très reconnaissant.

      Commentaire


      • #4
        Ne pas confondre $tpl et template (sous-entendu template du site).
        $tpl correspond aux vues par défault dans les sous dossiers tmpl

        Quant au module, ses critéres sont définis par le composant qui charge les plugins publiés.
        Jean-Marie Simonet / infograf768
        Joomla co-fondateur. Joomla Production Working Group.
        Sauf demande explicite de ma part, merci de ne pas utiliser de Message Privé pour poser des questions. Le forum est là pour ça.

        Commentaire


        • #5
          D'accord, en fait tout dépend du composant.

          Toutefois j'ai trouvé une solution un peu bizarre mais qui marche.
          1. Je copie le module de recherche
          2. Je créé un nouveau menu "module"
          3. Je place ce menu à une position qui n'est pas défini (dans la gestion des modules)
          4. Je demande au menu de s'afficher que les pages qui sont assignés au second template (toujours dans la gestion des modules)


          Maintenant lorsque je fais une recherche dans le nouveau module de recherche les résultats sont bien affichés dans le second template. C'est barbare mais je n'ai pas mieux.

          Sinon pour effectuer ma recherche sélective que dans le contenu d'un article et sans fouiller dans les autres plugins, je n'ai pas trouvé mieux de créer un second composant/module/plugins com_search, qui est une copie conforme.

          Merci beaucoup

          Commentaire

          Annonce

          Réduire
          1 sur 2 < >

          C'est [Réglé] et on n'en parle plus ?

          A quoi ça sert ?
          La mention [Réglé] permet aux visiteurs d'identifier rapidement les messages qui ont trouvé une solution.

          Merci donc d'utiliser cette fonctionnalité afin de faciliter la navigation et la recherche d'informations de tous sur le forum.

          Si vous deviez oublier de porter cette mention, nous nous permettrons de le faire à votre place... mais seulement une fois
          Comment ajouter la mention [Réglé] à votre discussion ?
          1 - Aller sur votre discussion et éditer votre premier message :


          2 - Cliquer sur la liste déroulante Préfixe.

          3 - Choisir le préfixe [Réglé].


          4 - Et voilà… votre discussion est désormais identifiée comme réglée.

          2 sur 2 < >

          Assistance au forum - Outil de publication d'infos de votre site

          Compatibilité: PHP 4.1,PHP4, 5, 6DEV MySQL 3.2 - 5.5 MySQLi from 4.1 ( @ >=PHP 4.4.9)

          Support Version de Joomla! : | J!3.0 | J!2.5.xx | J!1.7.xx | J!1.6.xx | J1.5.xx | J!1.0.xx |

          Version française (FR) D'autres versions sont disponibles depuis la version originale de FPA

          UTILISER À VOS PROPRES RISQUES :
          L'exactitude et l'exhaustivité de ce script ainsi que la documentation ne sont pas garanties et aucune responsabilité ne sera acceptée pour tout dommage, questions ou confusion provoquée par l'utilisation de ce script.

          Problèmes connus :
          FPA n'est actuellement pas compatible avec des sites Joomla qui ont eu leur fichier configuration.php déplacé en dehors du répertoire public_html.

          Installation :

          1. Téléchargez l'archive souhaitée : http://afuj.github.io/FPA/

          Archive zip : https://github.com/AFUJ/FPA/zipball/master

          2. Décompressez le fichier de package téléchargé sur votre propre ordinateur (à l'aide de WinZip ou d'un outil de décompression natif).

          3. Lisez le fichier LISEZMOI inclus pour toutes les notes de versions spécifiques.

          4. LIRE le fichier de documentation inclus pour obtenir des instructions d'utilisation détaillées.

          5. Téléchargez le script fpa-fr.php à la racine de votre site Joomla!. C'est l'endroit que vous avez installé Joomla et ce n'est pas la racine principale de votre serveur. Voir les exemples ci-dessous.

          6. Exécutez le script via votre navigateur en tapant: http:// www. votresite .com/ fpa-fr.php
          et remplacer www. votresite .com par votre nom de domaine


          Exemples:
          Joomla! est installé dans votre répertoire web et vous avez installé la version française du fichier FPA:
          Télécharger le script fpa-fr.php dans: /public_html/
          Pour executer le script: http://www..com/fpa-fr.php

          Joomla! est installé dans un sous-répertoire nommé "cms" et vous avez installé la version française du fichier FPA:
          Télécharger le script fpa-fr.php dans: /public_html/cms/
          Pour executer le script: http://www..com/cms/fpa-fr.php

          En raison de la nature très sensible de l'information affichée par le script FPA, il doit être retiré immédiatement du serveur après son utilisation.

          Pour supprimer le script de votre site, utilisez le lien de script de suppression fourni en haut de la page du script. Si le lien de suppression échoue pour supprimer le script, utilisez votre programme FTP pour le supprimer manuellement ou changer le nom une fois que le script a généré les données du site et le message publié sur le forum. Si le script est toujours présent sur le site, il peut être utilisé pour recueillir suffisamment d'informations pour pirater votre site. Le retrait du script empêche des étrangers de l'utiliser pour jeter un oeil à la façon dont votre site est structuré et de détecter les défauts qui peuvent être utilisé à vos dépends.
          Voir plus
          Voir moins
          Travaille ...
          X