Explode

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

  • [RÉGLÉ] Explode

    Bonjour,
    Dans un composant j'utilise un champ multi-choix.

    Dans une des vues du composant je récupère la liste des options choisies de la manière suivante.

    Code PHP:
    <?php echo $this->item->classification?>
    Ce qui affiche :
    point-de-vue.png, picnic.png, aire-de-jeux.png, boissons.png, camping.png, chemin-eclaire.png, coin-du-feu.png, ensoleille.png, equipement-necessaire.png, feu-interdit.png
    J'ai besoin d'afficher les images.
    J'ai fait :

    Code PHP:
    <?php
    $delimiter 
    ",";
    $str $this->item->caractristiques;
    explode($delimiter$str);
    ?>
    Un print_r me permet d'afficher :
    Array ( [0] => point-de-vue.png [1] => picnic.png [2] =>aire-de-jeux.png [3] => boissons.png [4] => camping.png [5] => chemin-eclaire.png [6] => coin-du-feu.png [7] => ensoleille.png [8] => equipement-necessaire.png [9] => feu-interdit.png )

    Je cherche comment afficher les images à la place des noms. (Ces images sont enregistrées dans le dossier images du site)

    Quelqu'un a-t-il une idée ?

    Cordialement.

    Eric
    Dernière édition par Agrepe à 13/01/2020, 21h35

  • #2
    Je me réponds à moi-même si cela peut aider, toutefois un petit souci persiste.

    D'abord, voici ce que j'ai fait :

    Code PHP:
    <?php 
    $delimiter 
    ",";
    $str $this->item->caractristiques;
    $liste explode($delimiter$str);
    $UploadPath='/images/com_randonne/images/';

    ?>
    <?php 
    foreach ($liste as $value) {
        
    $Values $value;
        echo 
    $UploadPath."".$Values;
        
    ?>

        <div style = "width:68px; margin: 5px 10px">
        <img src="<?php echo $UploadPath."".$values?>">
        </div>

    <?php
        
    }
    ?>
    Là où je bute c'est qu'il reste un espace dans le chemin de l'image (construit par le foreach) juste devant le nom du fichier image.

    "/images/com_randonne/images/ picnic.png"

    Je ne vois pas ce qui se passe ?

    Commentaire


    • #3
      Bonjour

      Pour supprimer un espace, en PHP, il y a la fonction "trim()".

      Sur base de ce que je lis de ton code; perso, si j'avais à écrire quelque chose dans ce genre, aussi minimal, je ferais comme ceci :

      Code PHP:
      <?php

      $arr 
      explode("'"$this->item->caractristiques);

      $sImg '';

      foreach (
      $arr as $item) {
          
      $sImg.= '<img class="thumbnails" src="/images/com_randonne/images/' trim($item) . '" />';
      }

      echo 
      '<div>' $sImg '</div>';

      ?>
      (non testé)

      Maintenant je ne comprends pas pourquoi tu as un chemin /images/.../images (pourquoi cette répétition) ni pourquoi tu n'utilises pas le dossier /media.

      Le chemin vers les images devrait dans le meilleur des mondes ne pas être écrit en dur; n'y-a-t-il pas une fonction en Joomla pour obtenir certains chemins ? Premier lien que je trouve sur Google : https://www.joomshaper.com/forums/me...oded-to-images

      (toujours éviter de hardcoder; plus tu respectes le framework Joomla plus ton outil sera évolutif et profitera des nouvelles de Joomla)

      Bonne journée;
      Dernière édition par cavo789 à 14/01/2020, 09h11
      Agrepe likes this.
      Christophe (cavo789)
      Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)
      Développeur de marknotes, logiciel de gestion de prises de notes avec interface web et de multiples convertisseur https://github.com/cavo789/marknotes
      Mes logiciels OpenSource : https://www.avonture.be

      Cette année, le JoomlaDay FR aura lieu à Bruxelles les 15 et 16 mai 2020, vous je ne sais pas mais moi, une licorne peut venir à la maison, je n'y serais pas. Non peut-être ! Évènement à ne pas rater. Plus d'infos sur https://www.joomladay.fr

      Commentaire


      • #4
        ton espace ne viendrait-il pas de <?php echo $UploadPath."".$values; ?> au lieu de <?php echo $UploadPath."/".$values; ?>
        sinon tes données sont séparées par virgule et espace.
        si tu fait un ltrim de $Values çà donne quoi ?
        Agrepe likes this.

        Commentaire


        • #5
          Bonjour,
          Merci beaucoup pour votre aide.

          Je n'avais pas tenté 'trim' car il n'y avait jamais l'espace sur le premier item, (sans que je ne sache pourquoi ?) je cherchais donc dans la structure du code, "trim" a bien résolu le problème.

          A propose du chemin avec image/.../images c'est simplement que dans le dossier j'ai plusieurs sous-dossiers pour classer les images correctement.

          Je regarde de près le lien que tu m'as communiqué : https://www.joomshaper.com/forums/me...oded-to-images

          Pour avancer un peu plus, dans ma table j'ai un champ "Nom" et un champ "Image", dans le cas évoqué je ne récupère que les valeurs des champs "Image"

          J'aurai aimé récupérer le nom qui correspond à l'image pour l'afficher dans une info bulle au survol de l'image.


          Comment pourrais-je faire pour utiliser la valeur du champ "nom" qui correspond à l'image affichée pour en faire l'info bulle ?

          Cordialement.

          Commentaire


          • #6
            Pour ce qui est de la présence de l'espace, cela tends à montrer que le séparateur n'est pas juste une virgule mais suivie d'un espace.
            Christophe (cavo789)
            Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)
            Développeur de marknotes, logiciel de gestion de prises de notes avec interface web et de multiples convertisseur https://github.com/cavo789/marknotes
            Mes logiciels OpenSource : https://www.avonture.be

            Cette année, le JoomlaDay FR aura lieu à Bruxelles les 15 et 16 mai 2020, vous je ne sais pas mais moi, une licorne peut venir à la maison, je n'y serais pas. Non peut-être ! Évènement à ne pas rater. Plus d'infos sur https://www.joomladay.fr

            Commentaire


            • #7
              Bonjour,
              Effectivement il est bien présent quand on affiche la liste.

              Merci beaucoup pour votre aide à ce sujet.

              J'ouvre un autre post pour l'autre partie de la réflexion à propos des infos bulles.

              Cordialement.

              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