Récupération du contenu $this dans un module ?

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

  • Récupération du contenu $this dans un module ?

    Bonjour,
    Je m'explique mon composant m'affiche un résultat de documents sous forme de liste. Celle-ci s'affiche via une requête faite par un module de recherche.
    J'aimerais appliquer des filtres sur ce résultat via un autre module. Comment faire ?

  • #2
    Hello.

    Ce n'est pas la bonne méthode.

    Tes modules doivent utiliser un des model de ton composant pour faire la requête et pas l'inverse.

    C'est logique un module ajoute une fonctionnalité à ton composant, mais le "moteur" reste ton composant.

    Inspire toi de ce qui est fait par joomla.

    Regarde mod_articles_latest ou mod_articles_news par exemple.

    Dans le helper du module tu trouves l'appel au model du composant.

    Code PHP:
    $model JModelLegacy::getInstance('Articles''ContentModel', array('ignore_request' => true)); 
    Ensuite tu lui passes les infos pour faire le boulot, dont tes infos de filtres (par exemple) :
    Code PHP:
    $model->setState('filter.published'1); 
    Et ensuite tu lui fait faire la requête et tu recupères les infos :
    Code PHP:
    $items $model->getItems(); 
    Dernière édition par roland_d_alsace à 21/02/2019, 17h52
    woluweb aime ceci.
    A tous les utilisateurs de Joomla du très Grand Est de la France et du Jura suisse
    Rejoignez le Joomla Users Groupe Alsace...
    roland_d_alsace va-t-il devenir roland_du_grand_est ?

    Commentaire


    • #3
      Oula !
      Merci roland pour ces infos je vais enquêter la-dessus

      Commentaire


      • #4
        Bonjour, cela ne fonctionne pas.
        J'ai pu créé un helper.php qui me récupère la liste de ma recherche via le composant.
        Code:
        class ModAffinesearchHelper {
        
            public static function getAffines($params){
        
                $config = [
                        'view'              => 'Books',
                        'tmpl'              => 'component',
                        'task'              => 'browse',
                        'layout'            => 'listing',
                        'nb_column'            => 'span3',
                        'render_toolbar'    => false
                ];        
                $items = FOF30\Container\Container::getInstance('com_nglibrary', [
                        'tempInstance' => true,
                        'input' => $config
                ])->dispatcher->dispatch();
            }
        puis je le récupère dans mon tmpl\default.php
        via
        Code:
        ModAffinesearchHelper::getAffines($params);
        mais comment récupérer les données sous forme de table de ce contenu ?
        Merci de votre aide

        Commentaire


        • #5
          Je peux voir dans le debugger les infos ici :
          controller->viewInstances['Books']
          mais comment les récupérer ?

          Commentaire

          Annonce

          Réduire
          Aucune annonce pour le moment.

          Partenaire de l'association

          Réduire

          Hébergeur Web PlanetHoster
          Travaille ...
          X