A propos de cropResize

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

  • [RÉGLÉ] A propos de cropResize

    Bonjour,
    J'avais posé la question il y a quelques mois pour retailler puis recadrer une image, la solution avait été cropResize.
    Cela fonctionnait bien dans le composant. j'utilisais Joomla 3.7.2 à ce moment là.

    Ensuite, j'avais désactivé ce composant car le site n'était pas finalisé.
    Aujourd’hui je réactive ce composant et cropResize pose un souci. Il fait que la page ne s'affiche pas. J'ai commenté les lignes où je l'utilise et la page fonctionne bien.
    J'utilise aujourd'hui Joomla 3.8.3

    Alors je me suis re-penché sur la doc (https://api.joomla.org/cms-3/classes...nt_CROP_RESIZE)
    Je ne note pas de différence avec ce qu'elle était il y a quelques mois.

    Savez-vous si quelque chose à changé ?

    Voici le code qui fonctionnait avant.

    Code PHP:
    <!-- DEBUT DE TEST -->
        <?php    
        $idPhoto 
    1;
        
    $imageoriginale "https://demo.php****.com/crop-images/demo_files/pool.jpg";

        
    $image = new JImage($imageoriginale);
        
    $newimage $image->cropResize('250''180');
        
    $newimage->toFile('/media/com_esoffers/images/photos_annonce/annonces1'.$idPhoto.'.jpg');
        
    ?>
            <!-- Image originale -->
            <img src="<?php echo $imageoriginale?>" />
            <!-- Image retaillée -->
            <img src="/media/com_esoffers/images/photos_annonce/annonces1<?php echo $idOffers?>.jpg" />
    <!-- FIN TEST -->

    Quelqu'un a-t'il des infos à propos d'un éventuel changement à propos de cropResize ?

    Bien cordialement.

    Eric
    Dernière édition par Agrepe à 26/03/2018, 08h06

  • #2
    Bonjour Eric,

    C'est normal que la photo soit sauvée avec comme indice $idPhoto et lue avec $idOffers
    UP, le plugin universel à découvrir sur https//up.lomart.fr
    bgMax
    , AdminOrder, MetaData, Zoom, ArtPlug, Custom, Memo, Filter, ... sur http://lomart.fr/extensions

    Commentaire


    • #3
      Bonjour Lionel

      Effectivement, mais ce n'est pas la raison du souci (j'ai mis ces lignes uniquement ici, ce morceau de codé est uniquement pour ce post)

      Bon, j'ai corrigé et re-resté, mais cela ne change rien.
      Je me suis même dit que cela pouvait être dû au fait que l'mage originale ne soit pas sur le serveur, je l'ai donc copié dans le dossier.
      /media/com_esoffers/images/photos_annonce/pool.jpg

      Quand je commente, de
      /* $image = ...
      à
      ... $idPhoto.'.jpg');*/
      La page s'affiche bien

      Code PHP:
      /*
      <!-- DEBUT DE TEST -->
          <?php    
          $idPhoto 
      1;
          
      $imageoriginale "/media/com_esoffers/images/photos_annonce/pool.jpg";

      /*
          $image = new JImage($imageoriginale);
          $newimage = $image->cropResize('250', '180');
          $newimage->toFile('/media/com_esoffers/images/photos_annonce/annonces1'.$idPhoto.'.jpg');
      */
          
      ?>

          <!-- Image originale -->
              <img src="<?php echo $imageoriginale?>" />
              <!-- Image retaillée -->
              <img src="/media/com_esoffers/images/photos_annonce/annonces1<?php echo $idPhoto?>.jpg" />


      <!-- FIN TEST -->*/
      Qand j'ôte /* et */ la page ne s'affiche plus.

      Voici ce que dit la console: Failed to load resource: the server responded with a status of 500 (Internal Server Error)

      Je joins la capture écran.

      Cliquez sur l'image pour l'afficher en taille normale

Nom : Capture_cropSize.JPG 
Affichages : 33 
Taille : 81,4 Ko 
ID : 1978529

      Cordialement.
      Eric



      Commentaire


      • #4
        Salut,

        Active le mode débug, tu auras plus d'informations.

        Ensuite, tu peux essayer avec :
        Code PHP:
        $imageoriginale JPATH_ROOT."/media/com_esoffers/images/photos_annonce/pool.jpg"

        Commentaire


        • #5
          Bonjour,
          Merci pour vos aides.
          JPATH-ROOT élimine effectivement la mise en erreur, mais l’image n'est plus vue et le cropResize ne fonctionne pas.

          Là où je suis étonné est que cela fonctionnait parfaitement lors du développement de cette extension, mais cela c'était à l'automne dernier, depuis j'ai fais des mises à jours de JOOMLA.

          Cordialement.

          Eric

          Commentaire


          • #6
            Salut,

            Et tu es sur que ce n'est pas parce qu'il manque le JPATH-ROOT à $newimage->toFile('/media/com_esoffers/images/photos_annonce/annonces1'.$idPhoto.'.jpg');
            Code PHP:
            $newimage->toFile(JPATH-ROOT.'/media/com_esoffers/images/photos_annonce/annonces1'.$idPhoto.'.jpg'); 

            Commentaire


            • #7
              Bonjour fabrice4821,
              Suite à ton message, j'ai bien essayé, mais cela n'a rien changé si ce n'est que l'image n'est plus vue du tout.

              Avant cela fonctionnait sans. (Quand j'avais développé cette extension à l'automne dernier, les tests ne m'avis présenté aucun souci)

              Je cherche des docs tous azimut, (Par exemple: https://www.component-creator.com/jo...ropResize.html), je ne trouve rien qui parlerait d'évolution de cropResize avec des versions JOOMLA plus récente, je ne vois pas pourquoi cela ne fonctionne plus.

              Bien cordialement.

              Eric

              Commentaire


              • #8
                Je fais étape par étape pour tenter de comprendre où se situe la différence avec ce que j'avais fais (et qui fonctionnait)
                J'ai changé mes chemins pour utiliser des images qui se trouvent dans un dossier (à la racine) que j'ai appelé uploads, dans le quel je dépose les photos à retailler. (En l’occurrence pool.jpg dans mes tests)

                Si j'utilise: $uploadPath = JPATH_ROOT."/uploads/pool.jpg";
                $uploadPath renvoie : /var/www/joomla/uploads/pool.jpg
                Au lieu du chemin réel.

                Quand je fais : $uploadPath = 'uploads/pool.jpg'
                Le chemin est correct.

                Donc avec $uploadPath = JPATH_ROOT."/uploads/pool.jpg"; le cropResize ne peut pas retailler l'image


                Dernière édition par Agrepe à 27/03/2018, 14h59

                Commentaire


                • #9
                  Bonsoir,

                  Je viens de faire le test sur mon serveur avec le code ci dessous et cela fonctionne.
                  Code PHP:
                  $idPhoto 1;
                      
                  $imageoriginale JPATH_ROOT."/media/com_gmapfp/images/DSC0162.JPG";


                      
                  $image = new JImage($imageoriginale);
                      
                  $newimage $image->cropResize('250''180');
                      
                  $newimage->toFile(JPATH_ROOT.'/media/com_gmapfp/images/annonces1'.$idPhoto.'.jpg'); 
                  Le JPATH_ROOT te permet d'avoir le chemin réel, même si par Filezila ou autre tu n'en vois qu'une partie.
                  Pour exemple, le chemin de ton fichier logs ou de ton répertoire tmp dans la config.

                  Tu peux me donner un accès FTP en MP si tu souhaites que je donne un coup d’œil.

                  Commentaire


                  • #10
                    Bonsoir,
                    J'ai trouvé.
                    En fait, cela était dû au nom d'une des images.

                    Voilà en détails:
                    Dans le composant que j'ai développer, (Qui est un marketplace pour Easysocial) Je dois retailler les images déposées par les annonceurs.
                    Toutefois, il y a des images facultatives, alors au cas où l'annonceur ne dépose pas d'image sur son annonce, j'utilise une image de remplacement (No image par exemple) C'est cette image qui n'était pas correcte.

                    Voici mon code: (Qui fonctionne bien)
                    Code PHP:
                       <?php
                    //Image à recadrer et retailler
                                    
                    $uploadPath 'uploads' DIRECTORY_SEPARATOR $PhotoPrincipale;

                                    
                    //cropResize
                                    
                    $image = new JImage($uploadPath);
                                    
                    $newimage $image->cropResize('250''180');
                                    
                    $newimage->toFile('uploads/annonces1'.$idOffers.'.jpg');
                                
                    ?>


                                <div class="photo">
                                    <a href="<?php echo JRoute::_('index.php?option=com_esoffers&view=annonce&id='.(int) $item->id); ?>">

                                        <div class="photo">
                                            <img src="/uploads/annonces1<?php echo $idOffers?>.jpg" alt="" title="Voir l'annonce"/>
                                        </div>
                                    </a>
                                </div>
                    Merci pour votre aide et surtout désolé car le souci ne venait pas de cropResize.

                    Cordialement.

                    Eric

                    Commentaire

                    Annonce

                    Réduire
                    Aucune annonce pour le moment.

                    Partenaire de l'association

                    Réduire

                    Hébergeur Web PlanetHoster
                    Travaille ...
                    X