composer une url à partir d'un extract d'un subform

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

  • composer une url à partir d'un extract d'un subform

    Bonjour
    J'étais arrivé à composer une url à partir d'un subform qui comprenait des champs de saisies texte.
    J'arrivais à afficher le lien car il se trouvait dans un même menu
    Code:
    <i class="fa fa-link fa-1x" aria-hidden="true"></i></span> Liens ressources web externes </h3>
            <div>
            <a href="/index.php?option=com_content&view=article&id=<?php echo $this->item->jcfields[40]->rawvalue; ?>&catid=168&Itemid=156&lang=fr"><?php echo $this->item->jcfields[40]->value; ?></a>
    ...
    Maintenant plus compliqué, le champ subform comporte un champ sql
    Cliquez sur l'image pour l'afficher en taille normale

Nom : Capture d’écran du 2023-05-02 22-13-40.png 
Affichages : 142 
Taille : 20,3 Ko 
ID : 2051225
    Quand je fais
    Code:
     echo $this->item->jcfields[40]->rawvalue;
    Je récupère
    Code:
    {"row0":{"field42":"120","field41":""}}
    1/ comment récupérer la valeur "120" du champ "field42" pour extraire la valeur "XXX" ?
    2/ comment récupérer la catégorie "YY" de l'article (dans ce cas l'id=120) ?, voir l'itemid "ZZ" ?

    pour faire le lien de type
    Code HTML:
    <a href="/index.php?option=com_content&view=article&id=<?php echo $this->item->XXX; ?>&catid=YY&Itemid=ZZ&lang=fr"><?php echo $this->item->XXX; ?></a>
    Faciliter l'adoption du meilleur du Libre auprès du grand public https://clibre.eu/ - Connaissez-vous des communicants ... pour promouvoir joomla ? https://forum.joomla.fr/forum/th%C3%...mouvoir-joomla

  • #2
    Bonjour
    Bon je tatonne
    Code PHP:
    <?php $structures = (array)$this->params->get('structures');
            foreach(
    $structures as $item) {
                    
    $structureLie $item->structure-lie;
          echo  
    "structureLie" .$structureLie ;
    }
    J'essaie d'extraire dans une boucle mais cela ne donne rien

    Est-ce que j'ai été clair ?
    Dis autrement, je souhaite récupérer la valeur d'un champ dans un subform qui n'est pas une valeur texte (ce que j'avai réussi à faire) mais lui-même un champ personnalisé joomla
    Faciliter l'adoption du meilleur du Libre auprès du grand public https://clibre.eu/ - Connaissez-vous des communicants ... pour promouvoir joomla ? https://forum.joomla.fr/forum/th%C3%...mouvoir-joomla

    Commentaire


    • #3
      Bonjour
      petite relance car je suis complètement bloqué sur ce qui n'est peut-être pas très compliqué ?
      Faciliter l'adoption du meilleur du Libre auprès du grand public https://clibre.eu/ - Connaissez-vous des communicants ... pour promouvoir joomla ? https://forum.joomla.fr/forum/th%C3%...mouvoir-joomla

      Commentaire


      • #4
        Bonsoir
        J'ai bien trouvé cela: https://docs.joomla.org/Custom_fields_type:_Subfields mais je n'ai pas abouti
        1/ Est-ce que ce code
        Code PHP:
        {"row0":{"field42":"120","field41":""}} 
        est spécifique au framework joomla est interrogeable par celui-ci ou est-ce du php standard car je pourrai le demander sur un forum php ?
        2/ après j'aurai besoin de retrouver la catégorie catid et l'itemid de l'article correspondant à cet id=120; comment faire avec le framework ou il faut faire avec une requete sql ?
        Dernière édition par herve à 10/05/2023, 17h05
        Faciliter l'adoption du meilleur du Libre auprès du grand public https://clibre.eu/ - Connaissez-vous des communicants ... pour promouvoir joomla ? https://forum.joomla.fr/forum/th%C3%...mouvoir-joomla

        Commentaire


        • #5
          c'est un JSON
          cherche un exemple de code où on va lire le contenu d'un JSON (on "explode" puis on accède typiquement)
          mais j'ai pas d'exemple prêt à l'emploi
          Présentations : slides.woluweb.be | Coordonnées complètes : www.woluweb.be

          Un message d’erreur sur votre site Joomla... ayez le reflexe de consulter la base de connaissance : https://kb.joomla.fr

          Ce forum, vous l'aimez ? Il vous a sauvé la vie ? Vous y apprenez régulièrement ? Alors adhérer à l'AFUJ, l'Association Francophone des Utilisateurs de Joomla : https://www.joomla.fr/association/adherer

          Commentaire


          • #6
            Bonjour
            Bien vu, cela m'a donné des billes pour continuer.
            j'ai trouvé de l'aide avec le forum developpez.net car c'est du php
            Après j'ai un autre souci qui n'est pas forcément ré solvable car je dois ensuite récupérer d'autres variables pour construire l'rul

            Car en fait l'objet retourne plusieurs valeurs de field42; 129 puis 121​ (article pour un éditeur différent d'un article joomla)
            Code PHP:
            array(1) { [0]=> object(stdClass)#3820 (2) { ["row0"]=> object(stdClass)#1906 (2) { ["field42"]=> string(3) "129" ["field41"]=> string(0) "" } ["row1"]=> object(stdClass)#1846 (2) { ["field42"]=> string(3) "121" ["field41"]=> string(0) "" } } } array(1) { [0]=> NULL }​ 
            Le HTML attendu serait par exemple
            Code HTML:
            a) /index.php?option=com_content&view=article&id=129&catid=16&Itemid=156&lang=fr
            b) /index.php?option=com_content&view=article&id=121&catid=15&Itemid=153&lang=fr​
            Mon code actuel
            Code PHP:
            <?php if (!empty($this->item->jcfields[40]->value)): ; ?>
                <br /><br /><h3>... un peu html
                    <?php
                    $data 
            json_decode($this->item->jcfields[40]->rawvalue);
                    
            $idStruct=$data->row0->field42$catStruct=16$Itemid=156;        
                    
            ?>
                    <a href="/index.php?option=com_content&view=article&id=<?php echo $idStruct;?>&catid=<?php echo $catStruct;?>&Itemid=<?php echo $Itemid;?>&lang=fr"><?php echo $this->item->jcfields[40]->value?></a>
                <?php endif; ?>
            Comme c'est du joomla, je ne pense pas qu'il puisse aider mais bon je suis prêt à renoncer à utilsier le subform (cela permettait d'envisager par exemple d'ajouter une données producteur/réalisateur à un film). mais en voulant trop faire générique, cela devient trop compliqué !

            Par contre si c'était possible de savoir comment récupérer la catégorie de l'article (il y a plusieurs catégories de structures) voir de l'itemID ce serait super?
            Faciliter l'adoption du meilleur du Libre auprès du grand public https://clibre.eu/ - Connaissez-vous des communicants ... pour promouvoir joomla ? https://forum.joomla.fr/forum/th%C3%...mouvoir-joomla

            Commentaire


            • #7
              Bonjour
              j'avance à petit pas avec de l'aide par ailleurs
              Code PHP:
              <?php        
                          $field_value 
              json_decode($this->item->jcfields[113]->rawvalue);
                          
              $article_id $field_value->row0->field109;  
                          echo 
              $article_id  ;
                          
              $app Factory::getApplication();
                          
              $factory $app->bootComponent('com_content')->getMVCFactory();
                          
              $table $factory->createTable('Article''Table');    
                          
              $table->load($article_id);
                          
              $item_catid $table->catid;
                          
              $item_id="156"/* éditeurs */
                          
              ?>

                          <a href="/index.php?option=com_content&view=article&id=<?php echo $article_id;?>&catid=<?php echo $item_catid;?>&Itemid=<?php echo $item_id;?>&lang=fr"><?php echo $this->item->jcfields[40]->value?></a>​
              Bon je n'arrive pas encore à afficher l'url mais je ne dois pas être loin

              A part cela , je vois la possibilité de publier l'url en php avec le routeur
              Code PHP:
              $rhelper = new RouteHelper;
              $myroute $rhelper->getRoute($article_id'com_content.article'''$language ‘fr’$catid $item_catid);​ 
              Est-ce une bonne idée car je crains toujours un peu les modifications dans le framework qui feraient que dans quelques années cela devient obsolètes
              Faciliter l'adoption du meilleur du Libre auprès du grand public https://clibre.eu/ - Connaissez-vous des communicants ... pour promouvoir joomla ? https://forum.joomla.fr/forum/th%C3%...mouvoir-joomla

              Commentaire


              • #8
                Bonjour
                Bon j'y suis presque arrivé mais comme cela a un peu évolué dans le temps et que dès fois je me suis perdu dans le nom des variables, j'ai redémarré un fil de discussion plus clean si cela peut faciliter la finition (>https://forum.joomla.fr/forum/d%C3%A...r-d-une-boucle
                Faciliter l'adoption du meilleur du Libre auprès du grand public https://clibre.eu/ - Connaissez-vous des communicants ... pour promouvoir joomla ? https://forum.joomla.fr/forum/th%C3%...mouvoir-joomla

                Commentaire

                Annonce

                Réduire
                Aucune annonce pour le moment.

                Partenaire de l'association

                Réduire

                Hébergeur Web PlanetHoster
                Travaille ...
                X