Joomladay francophone 2019 à Paris, les 8 et 9 mars 2019

Récupération donnée sur une page joomla

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

  • [Problème] Récupération donnée sur une page joomla

    Salut,
    j'utilise le composant joomsport pour le site de la fédération de futsal dont je suis membre
    J'essaye de créer un page spécifique à chaque club, reprenant des informations précise, comme leur classement , leur prochain match, joueur suspendu ..
    Mon problème réside dans le classement du club.
    J'ai posée la question sur le forum joomsport ,si une table de la DB contenait cet informartion, mais c'est pas le cas, la classement est généré suivant plusieurs fonction.
    Et le modérateur me renvoyie vers leur développeur, pour une solution personalisée et donc payant et trop chère pour un jeune fédération.

    J'ai réfléchit à contourner le problème en utilisant un module fournis qui permet d'afficher le classement d'un équipe précise, mais je ne vois pas créer module par équipe (( 2 division avec chacune 14 équipe ) X2) = 56 car deux provinces .

    donc j'ai pensée à creer une page en utilisant file_get_contents pour récupérer la page de classement générale pour chaque championnat et puis utiliser preg_match pour récupérer un tableau contenant toute les données du classement ( ranking, nom d'équipe, point ...)

    Mais cela ne semble pas marché , je me suis basé sur un ancien code php que j''avais et qui fonctionnais avant sur des site de base en php ( pas du style cms).
    j'ai aussi essayer en me basant sur un code venant de cette page https://openclassrooms.com/forum/suj...te-web-externe , mais rien non plus.

    Quelqu'un aurait-il une solution.

    je peux vous fournir l'adresse de mon site en dev et le login d'acces utilisateur de test en privé si vous le souhaité.

    Merci

  • #2
    Code PHP:
    <?php
    $url 
    "https://arthenos.be/index.php?option=com_joomsport&view=table&sid=9&gr_id=0&Itemid=123";


    $timeout 10;

    $ch curl_init($url);

    curl_setopt($chCURLOPT_FRESH_CONNECTtrue);
    curl_setopt($chCURLOPT_TIMEOUT$timeout);
    curl_setopt($chCURLOPT_CONNECTTIMEOUT$timeout);

    if (
    preg_match('`^https://`i'$url))
    {
    curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse);
    curl_setopt($chCURLOPT_SSL_VERIFYHOST0);
    }

    curl_setopt($chCURLOPT_FOLLOWLOCATIONtrue);
    curl_setopt($chCURLOPT_RETURNTRANSFERtrue);

    // Récupération du contenu retourné par la requête
    $contentcurl_exec($ch);

    curl_close($ch);
    echo 
    $content;

     
    ?>
    Grâce à ce code , je récupère bien la page mais impossible de récupérer les donnée qui m intéresse dedant. j'ai essaye avec reg_match_all .
    Une idée ?

    Voici le code que je cherche a récupérer
    Code HTML:
    <table class="table table-striped cansorttbl" id="jstable_1">
                        <thead>
                            <tr>
                                <th class="jsalcenter jsNoWrap jsCell5perc">
                                    <a href="javascript:void(0);">
                                        <span jsattr-short="#" jsattr-full="Classement">
    
                                            Classement                                    </span>
                                        <i class="fa"></i>
                                    </a>
                                </th>
    
                                <th style="text-align:left;" class="jsNoWrap">
                                    <a href="javascript:void(0);">
                                        Equipes <i class="fa"></i>
                                    </a>
                                </th>
                                                                    <th class="jsalcenter jsNoWrap jsCell5perc">
                                            <a href="javascript:void(0);">
                                                <span jsattr-short="Pl" jsattr-full="Joué">
                                                Joué
                                                </span>
                                                <i class="fa"></i>
                                            </a>
                                        </th>
    
                                                                        <th class="jsalcenter jsNoWrap jsCell5perc">
                                            <a href="javascript:void(0);">
                                                <span jsattr-short="W" jsattr-full="Victoire">
                                                Victoire
                                                </span>
                                                <i class="fa"></i>
                                            </a>
                                        </th>
    
                                                                        <th class="jsalcenter jsNoWrap jsCell5perc">
                                            <a href="javascript:void(0);">
                                                <span jsattr-short="L" jsattr-full="Défaites">
                                                Défaites
                                                </span>
                                                <i class="fa"></i>
                                            </a>
                                        </th>
    
                                                                        <th class="jsalcenter jsNoWrap jsCell5perc">
                                            <a href="javascript:void(0);">
                                                <span jsattr-short="D" jsattr-full="Partage">
                                                Partage
                                                </span>
                                                <i class="fa"></i>
                                            </a>
                                        </th>
    
                                                                        <th class="jsalcenter jsNoWrap jsCell5perc">
                                            <a href="javascript:void(0);">
                                                <span jsattr-short="Diff" jsattr-full="Pour - Contre">
                                                Pour - Contre
                                                </span>
                                                <i class="fa"></i>
                                            </a>
                                        </th>
    
                                                                        <th class="jsalcenter jsNoWrap jsCell5perc">
                                            <a href="javascript:void(0);">
                                                <span jsattr-short="GD" jsattr-full="Diff.">
                                                Diff.
                                                </span>
                                                <i class="fa"></i>
                                            </a>
                                        </th>
    
                                                                        <th class="jsalcenter jsNoWrap jsCell5perc">
                                            <a href="javascript:void(0);">
                                                <span jsattr-short="Pts" jsattr-full="Points">
                                                Points
                                                </span>
                                                <i class="fa"></i>
                                            </a>
                                        </th>
    
                                                                                        </tr>
                        </thead>
                        <tbody>
                                                <tr >
                                <td class="jsalcenter" style="box-shadow: inset 5px 0 0 0 #00CC00">1</td>
    
                                <td style="text-align:left;" class="jsNoWrap">
                                    <a href="/index.php?option=com_joomsport&amp;task=team&amp;tid=37&amp;sid=9&amp;Itemid=123"><img alt="" class="img-thumbnail img-responsive emblInline emblpadd3" src="https://arthenos.be/media/bearleague/thumb/bl15356260345.JPG" width="20" /></a><a href="/index.php?option=com_joomsport&amp;task=team&amp;tid=37&amp;sid=9&amp;Itemid=123">A.S. Boussu Futsal</a>                            </td>
                                                                    <td class="jsalcenter jsNoWrap">
                                            2                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            1                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            0                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            1                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            2 - 1                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            1                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            4                                    </td>
                                                                                        </tr>
                                                    <tr >
                                <td class="jsalcenter" style="box-shadow: inset 5px 0 0 0 #00CC00">2</td>
    
                                <td style="text-align:left;" class="jsNoWrap">
                                    <a href="/index.php?option=com_joomsport&amp;task=team&amp;tid=40&amp;sid=9&amp;Itemid=123"><img alt="" class="img-thumbnail img-responsive emblInline emblpadd3" src="https://arthenos.be/media/bearleague/thumb/bl15356219942746.png" width="20" /></a><a href="/index.php?option=com_joomsport&amp;task=team&amp;tid=40&amp;sid=9&amp;Itemid=123">La Squadra Mouscron</a>                            </td>
                                                                    <td class="jsalcenter jsNoWrap">
                                            2                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            0                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            1                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            1                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            1 - 2                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            -1                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            1                                    </td>
                                                                                        </tr>
                                                    <tr >
                                <td class="jsalcenter" style="box-shadow: inset 5px 0 0 0 #00CC00">3</td>
    
                                <td style="text-align:left;" class="jsNoWrap">
                                    <a href="/index.php?option=com_joomsport&amp;task=team&amp;tid=38&amp;sid=9&amp;Itemid=123"><img alt="" class="img-thumbnail img-responsive emblInline emblpadd3" src="https://arthenos.be/media/bearleague/teams_st.png" width="20" /></a><a href="/index.php?option=com_joomsport&amp;task=team&amp;tid=38&amp;sid=9&amp;Itemid=123">Chièvres Futsal Team</a>                            </td>
                                                                    <td class="jsalcenter jsNoWrap">
                                            0                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            0                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            0                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            0                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                             -                                     </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            0                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            0                                    </td>
                                                                                        </tr>
                                                    <tr >
                                <td class="jsalcenter" >4</td>
    
                                <td style="text-align:left;" class="jsNoWrap">
                                    <a href="/index.php?option=com_joomsport&amp;task=team&amp;tid=39&amp;sid=9&amp;Itemid=123"><img alt="" class="img-thumbnail img-responsive emblInline emblpadd3" src="https://arthenos.be/media/bearleague/thumb/bl15356218832645.png" width="20" /></a><a href="/index.php?option=com_joomsport&amp;task=team&amp;tid=39&amp;sid=9&amp;Itemid=123">Daring Péruwelz A</a>                            </td>
                                                                    <td class="jsalcenter jsNoWrap">
                                            0                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            0                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            0                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            0                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                             -                                     </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            0                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            0                                    </td>
                                                                                        </tr>
                                                    <tr >
                                <td class="jsalcenter" >5</td>
    
                                <td style="text-align:left;" class="jsNoWrap">
                                    <a href="/index.php?option=com_joomsport&amp;task=team&amp;tid=41&amp;sid=9&amp;Itemid=123"><img alt="" class="img-thumbnail img-responsive emblInline emblpadd3" src="https://arthenos.be/media/bearleague/thumb/bl1535622064181.jpg" width="20" /></a><a href="/index.php?option=com_joomsport&amp;task=team&amp;tid=41&amp;sid=9&amp;Itemid=123">MFB Argent Leuze A</a>                            </td>
                                                                    <td class="jsalcenter jsNoWrap">
                                            0                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            0                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            0                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            0                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                             -                                     </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            0                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            0                                    </td>
                                                                                        </tr>
                                                    <tr >
                                <td class="jsalcenter" >6</td>
    
                                <td style="text-align:left;" class="jsNoWrap">
                                    <a href="/index.php?option=com_joomsport&amp;task=team&amp;tid=42&amp;sid=9&amp;Itemid=123"><img alt="" class="img-thumbnail img-responsive emblInline emblpadd3" src="https://arthenos.be/media/bearleague/thumb/bl15356223901037.jpg" width="20" /></a><a href="/index.php?option=com_joomsport&amp;task=team&amp;tid=42&amp;sid=9&amp;Itemid=123">MFC Bon-Air Leuze A</a>                            </td>
                                                                    <td class="jsalcenter jsNoWrap">
                                            0                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            0                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            0                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            0                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                             -                                     </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            0                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            0                                    </td>
                                                                                        </tr>
                                                    <tr >
                                <td class="jsalcenter" >7</td>
    
                                <td style="text-align:left;" class="jsNoWrap">
                                    <a href="/index.php?option=com_joomsport&amp;task=team&amp;tid=43&amp;sid=9&amp;Itemid=123"><img alt="" class="img-thumbnail img-responsive emblInline emblpadd3" src="https://arthenos.be/media/bearleague/teams_st.png" width="20" /></a><a href="/index.php?option=com_joomsport&amp;task=team&amp;tid=43&amp;sid=9&amp;Itemid=123">MFC La Roë Péruwelz</a>                            </td>
                                                                    <td class="jsalcenter jsNoWrap">
                                            0                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            0                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            0                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            0                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                             -                                     </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            0                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            0                                    </td>
                                                                                        </tr>
                                                    <tr >
                                <td class="jsalcenter" style="box-shadow: inset 5px 0 0 0 #CC3300">8</td>
    
                                <td style="text-align:left;" class="jsNoWrap">
                                    <a href="/index.php?option=com_joomsport&amp;task=team&amp;tid=44&amp;sid=9&amp;Itemid=123"><img alt="" class="img-thumbnail img-responsive emblInline emblpadd3" src="https://arthenos.be/media/bearleague/teams_st.png" width="20" /></a><a href="/index.php?option=com_joomsport&amp;task=team&amp;tid=44&amp;sid=9&amp;Itemid=123">MFC Olympic Brunehaut</a>                            </td>
                                                                    <td class="jsalcenter jsNoWrap">
                                            0                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            0                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            0                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            0                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                             -                                     </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            0                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            0                                    </td>
                                                                                        </tr>
                                                    <tr >
                                <td class="jsalcenter" style="box-shadow: inset 5px 0 0 0 #CC3300">9</td>
    
                                <td style="text-align:left;" class="jsNoWrap">
                                    <a href="/index.php?option=com_joomsport&amp;task=team&amp;tid=45&amp;sid=9&amp;Itemid=123"><img alt="" class="img-thumbnail img-responsive emblInline emblpadd3" src="https://arthenos.be/media/bearleague/thumb/bl1535623991165.jpg" width="20" /></a><a href="/index.php?option=com_joomsport&amp;task=team&amp;tid=45&amp;sid=9&amp;Itemid=123">MFC Replay</a>                            </td>
                                                                    <td class="jsalcenter jsNoWrap">
                                            0                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            0                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            0                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            0                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                             -                                     </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            0                                    </td>
                                                                        <td class="jsalcenter jsNoWrap">
                                            0                                    </td>
                                                                                        </tr>
                                                </tbody>    
                    </table> 

    Commentaire


    • #3
      en Réalité c'est la partie entre <tbody> qui m'interresse le plus

      Commentaire


      • #4
        Franchement...
        ...je ne partirai pas dans cette direction.

        Dès que l'éditeur changera une balise html dans son template d'affichage, ton "décryptage" ne fonctionnera plus.

        J'ai fait un tel programme pour "aspirer" correctement un site de ventes aux enchères, pour récupérer articles et photos dans une DB histoire de faire rapidement des offres avec un logiciel maison.
        Mais je peux te dire qu'il ne fonctionne que quelques mois, puis je suis obligé de le modifier, car une balise HTML ou une class ou un ID sur lequel je m'appuyais pour identifier un élément a changé.

        Bref decoder une page html pour récupérer des informations c'est une source infinie et récurente d'emm..... !

        Le plus sûr est de récupérer les informations dans Joomsport.

        Je ne connais pas ce composant du tout, mais avec un tel nom, on peut supposer qu'il est "très Joomla" et qu'il respecte la logique du code de Joomla !

        Regarde donc la vue "table" (dans /components/com_joomsport/views/table/view.html.php) comment elle est foutue, normalement pour obtenir les données à afficher elle appelle la méthode getIem du model avec un $this->get('Item');

        Si c'est la cas, regarde dans le model (normalement c'est /components/com_joomsport/models/table.php) comme est faite cette méthode getItem().

        Et tu crée un nouveau layout de vue ou plutôt un petit composant qui utilisera dans son model de vue 'classement par clubs' le model de Joomsport avec un appel du type
        Code PHP:
        $model JModelLegacy::getInstance('Table''JoomsportModel', array('ignore_request' => true));
        $model->setState(....); // s'il y a des filtres ou critère de recherche - voir le model-
        ...
        $item $model->getItem(); // recuperation des données 
        Ça ce serait l'idéal et la formule la plus pérenne et la plus fiable.


        Sinon il y a une autre formule, si tu veux rester dans l’interprétation de page HTML, c'est de te créer "ton" affichage dans Joomsport.

        Soit tu peux crée une nouvelle vue en format raw au lieu de html donc en /components/com_joomsport/views/table/view.raw.php
        (en rajoutant &format=row dans l'url d'appel donc : https://arthenos.be/index.php?option...123&format=raw)

        Soit tu utilises les ovverrides de Joomla, et tu te crée un layout alternatif pour la vue "table".

        Ce layout tu l'utiliserais via un lien de menu spécifique.
        Il serait bien sûr démuni de toutes balises (en sortant un format style csv).
        Voir : https://magazine.joomla.org/issues/i...es-and-modules

        Bref avec Joomla tu as +ieurs possibilités bien plus simples et + fiables que ce que tu envisages.
        Dernière édition par roland_d_alsace à 24/02/2019, 13h54
        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


        • #5
          merci je vais regarder en me basant sur ton conseil.
          en attendant j'ai une solution même si c'est temporaire
          Code PHP:
          <?php
          $url 
          "https://aaa.aaa/index.php?option=com_joomsport&view=table&sid=9&gr_id=0&Itemid=123";


          $timeout 10;

          $ch curl_init($url);

          curl_setopt($chCURLOPT_FRESH_CONNECTtrue);
          curl_setopt($chCURLOPT_TIMEOUT$timeout);
          curl_setopt($chCURLOPT_CONNECTTIMEOUT$timeout);

          if (
          preg_match('`^https://`i'$url))
          {
          curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse);
          curl_setopt($chCURLOPT_SSL_VERIFYHOST0);
          }

          curl_setopt($chCURLOPT_FOLLOWLOCATIONtrue);
          curl_setopt($chCURLOPT_RETURNTRANSFERtrue);

          $contentcurl_exec($ch);

          curl_close($ch);

          $doc = new DOMDocument();
          $doc->preserveWhiteSpace FALSE;
          @
          $doc->loadHTML($content);
          $xpath = new DOMXpath ($doc);
          $expresion "//table[@id='jstable_1']//tr";
          $trs $xpath->evaluate($expresion);
          foreach (
          $trs as $tr)
          {
          $tdvals = array();
          foreach(
          $xpath->query('td'$tr) as $td) {
          if(
          trim($td->nodeValue) !== '') {
          $tdvals []= $td->nodeValue;
          }
          }

           
          $classement[$i]=implode(',',$tdvals);

            
          $i++;
          }



          // juste un affichage pour contrôler la manière donc je recupère les donnée
          foreach ($classement as $tdinfo)

              { echo 
          $tdinfo."<br/>";}



          ?>
          Dernière édition par bunny107 à 24/02/2019, 16h31

          Commentaire


          • #6
            J'avais cru comprendre que tu avais un calcul à faire sur les données récupérées de l'affichage du composant Joomsport (qui est bien sur ton site ?) pour sortir le classement de chaque club à raison d'une page différente par club.

            Mais vu ta dernière réponse, si c'est juste une autre "présentation" d'affichage avec les même données (ou une partie de celles-ci), c'est un simple override du template de la vue "table" qu'il faut faire.
            Voir : https://docs.joomla.org/Understanding_Output_Overrides
            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


            • #7
              Quand un club se connecte au site, j'ai un menu (jux megamenu) qui apparait et leur fournis des informations et des accès à des documents spécifique.
              et dans ce menu , j'ai une zone information qui reprend le classement des différente équipe du club, leur prochain match, s'il on des joueur suspendu (pour carte rouge ou par décision de commission sportive ..). En gros un résumé de leur situation au sein de la fédération.
              donc pour les match, suspension, les information sont directement dans la DB. Mais pour le classement , joomsport utilise un ensemble de fonction et requête pour générer le classement.
              Donc pas vraiment possible de récupérer les donnée en direct.
              C'est pour cela que je recherche une solution pour récupérer le classement de chaque équipe d'un club précis.
              et là j'ai soit la solution d'extraire les donnée directement de la page classement du championnat ( team 1 -> championnat P1, team 2-> championnat P2) ou de multiplier le module mod_js_table qui permet d'afficher le classement pour un championnat et pour soit une équipe ou le top 5 du championnat en question par le nombre d'équipe, ce qui devient lourd.
              Soit je trouve un solution pour modifier la valeur team_id dans $params du module avant son utilisation et sans modifier la valeur de params de la table "module" dans la DB.

              Donc la solution la plus rapide pour l'instant c'est la récupération de donnée.
              j'ai pensé a l'override de la vue "table" mais ne marche pas car j'affiche le classement pour les visiteurs classiques et donc j'ai besoin du template standard.


              Commentaire


              • #8
                Hello.

                Pourquoi ne pas simplement te créer ton module, en dupliquant le module en question et en changeant ce qu.il faut changer (nom dossier, nom fichier + xml) et en faisant la petite modif qui prendrait le team_id dans les information du membre ou du club plutôt que dans le parametrage du module ?
                Cela ne paraît pas très compliqué à priori non?

                Concernant les overrides, tu as lu mon message précédent concernant les layouts alternatifs ?
                C’est dans le lien de menu que tu définis le layout à utiliser.
                Tu peux donc concerver les 2 affichages sans problèmes.
                Dernière édition par roland_d_alsace à 25/02/2019, 00h13
                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


                • #9
                  Le problème est de trouver le team_id dans le code du module en question

                  J'ai déjà fait ce style de modification pour d'autre site ( réajuster des modules ) mais ici, je n'arrive pas a comprendre leur méthode , j'ai l'impression qu'il utilise justement $params comme base pour leur donnée de module dans le helper.php et puis le reste ce fait via des fonctions du composant.
                  joomsport est un bon produit quand on veut l'utiliser tel quel avec les fonction fournies mais si on cherche à personaliser comme je tante de le faire, cela me semble plus complexe que certain autres composant
                  .
                  je mets en lien le module en question ( ici )

                  Commentaire


                  • #10
                    Dans le helper de ton module sais-tu ce qu'est $gr_ip ?

                    $params dans joomla est généralement un array_merge des paramètres globaux composant et des paramètres du module (configurés dans le lien de menu).
                    Cela permet de prendre en compte les options du module laissées 'par défaut' dans le lien de menu et d'avoir les valeurs définies dans les paramètres du composant.

                    C'est donc array_merge des json_decode des $params qui proviennent des tables #__extenssion et #__menu.

                    Tu peux sans risque faire un $params->set('team_id',$new_value); pour forcer une valeur, si tu sais comment récupérer le team_id correspondant à l'utilisateur courant.

                    C'est un peu "à l'aveugle" vu que ton module appelle des méthodes du composant auxquelles je n'ai pas accès en ayant juste le module.
                    Mais c'est la méthode de programmation normale.
                    Mais si tu es sûr que le calcul utilise que team_id pour identifier les clubs, cela peut marcher (reste à voir l'influence des autres paramètres s'il y en a qui sont liés au club -d'où ma question concernant $gp_ip-).

                    Ce qu'il faudrait voir ce sont les méthodes de la classe appelées dans le helper du module en lignes 57 à 60, et surtout la méthode calculateTable (qui a justement en paramètre $gr_id).
                    Le 2ème paramètre $cItemId étant l'id du lien de menu (probablement pour calculer un lien de retour pour l'affichage ou pour contrôler les droits d'accès ACL).
                    Dernière édition par roland_d_alsace à 25/02/2019, 09h15
                    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


                    • #11
                      gr_id correspond à la table "groupe" dans la DB. J'ai fait des tests et la valeur reste toujours à 0
                      Pour te donner un idée , voici ce que l'on retrouve dans le champ "param"de la table "module" :

                      {"sidgid":"9|0","place_display":"0","team_id":"37" ,"enbl_onflyseason":"1","played_chk":"0","emblem_c hk":"1","win_chk":"0","lost_chk":"0","draw_chk":"0 ","diff_chk":"0","gd_chk":"0","point_chk":"1","per cent_chk":"0","goalscore_chk":"0","goalconc_chk":" 0","winhome_chk":"0","winaway_chk":"0","drawhome_c hk":"0","drawaway_chk":"0","losthome_chk":"0","los taway_chk":"0","pointshome_chk":"0","pointsaway_ch k":"0","grwin_chk":"0","grlost_chk":"0","grwinpr_c hk":"0","otwin_chk":"0","otlost_chk":"0","color_ch k":"0","curform_chk":"0","bonuspts_chk":"0","enbl_ full_link":"0","customitemid":"0","moduleclass_sfx ":"","module_tag":"div","bootstrap_size":"0","head er_tag":"h3","header_class":"","style":"0"}

                      Commentaire


                      • #12
                        le composant JSport

                        Commentaire


                        • #13
                          je viens de faire un essaye en ajoutant dans le fichier mod_js_table.php ce code avant la lignee $season ...
                          Code PHP:
                          $new_value="40";
                          $params->set('team_id',$new_value); 
                          Et cela fonctionne .
                          j'ai essaye avec une autre id de team et cela change bien dans le module
                          Donc me reste plus qu'a dupliquer le module en question et changer son nom, et puis j'ajuste le code pour récupérer l'id des team suivant le User de login.

                          merci beaucoup de ton aide
                          Dernière édition par bunny107 à 25/02/2019, 18h01

                          Commentaire


                          • #14
                            J'utilise joomsport mais je ne suis pas développeur donc je ne pourrais pas vous aider.

                            Question bête, pourquoi ne pas utiliser un item de menu pour chaque équipe, il y a la possibilité de choisir l'équipe (item de menu > fiche d'une équipe)

                            A vrai dire j'ai beau relire le post je ne comprend pas quel est le problème que vous essayez de résoudre

                            Commentaire


                            • #15
                              Envoyé par pouss Voir le message
                              J'utilise joomsport mais je ne suis pas développeur donc je ne pourrais pas vous aider.

                              Question bête, pourquoi ne pas utiliser un item de menu pour chaque équipe, il y a la possibilité de choisir l'équipe (item de menu > fiche d'une équipe)

                              A vrai dire j'ai beau relire le post je ne comprend pas quel est le problème que vous essayez de résoudre
                              L'idée était d'afficher automatiquement le classement du club de l'utilisateur courant.

                              L'id du club (team_id) doit donc provenir du profil membre.
                              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

                              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

                              Partenaire de l'association

                              Réduire

                              Hébergeur Web PlanetHoster
                              Travaille ...
                              X