développement de composant $this->items

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

  • [RÉGLÉ] développement de composant $this->items

    Salut, don't get me wrong, j'adore Joomla mais le développement de composant peut devenir une vraie tannée.
    Petit soucis du jour : développement de composant sur base de foo Astrid Gunther. Du cote administrateur, je récupèrere mes "foo". Dans la mesure ou je dois customiser la chose, j'ai rajouté quelques champs supplémentaires à mes tables et les ai intégré à la mise en place du composant. Maintenant, quand je cherche à lister ces nouveaux champs dans mon listing d'administrator, (administrator/com_foos/tmpl/foos/default.php), mes éléments rajoutés ne sont pas reconnus par le systeme.
    Autrement dit, si je cherche à afficher le nom de famille de mon élément, foreach ($this->items as $i => $item) : ... $item->Family-Name; (Family-name est le champs de ma table), le systeme me renvoie "0". Je me doute bien que c'est parce que mon Family-Name n'est pas pris en compte mais comment puis signifier à joomla de prendre en compte ce parametre pour que je puisse le ressortir?
    Merci si qlq'un a une piste.
    Dernière édition par fabvincent à 11/08/2022, 12h28

  • #2
    Hello.

    N'as-tu pas oublié de sélectionner les nouveaux champs dans ta requête sql ?
    Généralement dans la méthode getListQuery() du model heritant de JModelList.

    Tu dois avoir un warning indiquant que $item->Family-Name n'existe pas.
    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
      Certainement que si... mais ou est-ce que ja la retrouve???

      Commentaire


      • #4
        Peut etre ceci : dans administrator/components/com_foos/src/Model/CategoryModel.php ?

        protected function getListQuery()
        {
        $user = Factory::getUser();
        $groups = $user->getAuthorisedViewLevels();

        // Create a new query object.
        $db = $this->getDbo();
        $query = $db->getQuery(true);

        $query->select($this->getState('list.select', 'a.*'))
        ->select($this->getSlugColumn($query, 'a.id', 'a.alias') . ' AS slug')
        ->select($this->getSlugColumn($query, 'c.id', 'c.alias') . ' AS catslug')
        ->from($db->quoteName('#__foos_details', 'a'))
        ->leftJoin($db->quoteName('#__categories', 'c') . ' ON c.id = a.catid')
        ->whereIn($db->quoteName('a.access'), $groups);

        Commentaire


        • #5
          Peut-être.

          Il faut voir quel model tu utilises dans ton contrôleur.

          Si tu ne sélectionnes pas tes nouvelles rubriques dans ta requêtes sql, c'est un peu normal que ta propriété $item->Family-Name ne soit pas initialisée.
          Mais comme dit tu dois avoir un warning php quand tu essaies d’accéder une propriété inexistante.
          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


          • #6
            Ok, nailed it.
            en fait, je ne regardais pas au bon endroit... comme d'habitude...
            document com_foos/administrator/component/com_foos/src/Model/FoosModel.php
            Je en retouve pas le dossier une fois le composant réinstallé. pas grave.
            Merci pour le lead, mais bon sang, la créa de composant est un vrai monde à part...

            Commentaire

            Annonce

            Réduire
            Aucune annonce pour le moment.

            Partenaire de l'association

            Réduire

            Hébergeur Web PlanetHoster
            Travaille ...
            X