Bonjour,
il y a déjà beaucoup de post sur le pluginMedia et je vais malheureusement en ouvrir un nouveau.
Le pluginMedia fonctionne parfaitement en local et j'ai un problème uniquement en ligne.

Lors de la génération de la miniature, j'ai un message d'erreur

Error: Class 'Imagine\Gd\Imagine' not found
File: /home/gaulemor/public_html/app/Plugin/Media/View/Helper/MediaHelper.php
Line: 33
Notice: If you want to customize this error message, create app/View/Errors/fatal_error.ctp

Si met l'image manuellement, l'erreur n'apparait pas. C'est donc un problème dans le redimensionnement.
Auriez-vous une idée du problème ? Je ne comprends pas pourquoi le plugin marche en local et pas en ligne.

Voici le MediaHelper : la ligne 33 est $imagine = new Imagine\Gd\Imagine();

// On a déjà le fichier redimensionné ?
        if (!file_exists($dest_file)) {
            require_once APP . 'Plugin' . DS . 'Media' . DS . 'Vendor' . DS . 'imagine.phar';
            $imagine = new Imagine\Gd\Imagine();
            try{
                $imagine->open($image_file)->thumbnail(new Imagine\Image\Box($width, $height), Imagine\Image\ImageInterface::THUMBNAIL_OUTBOUND)->save($dest_file, array('quality' => 90));
            } catch (Imagine\Exception\Exception $e) {
                $alternates = glob(str_replace(".{$pathinfo'extension']}",".*", $image_file));
                if(empty($alternates)){
                    return '/img/error.jpg';
                }else{
                    try{
                        $imagine->open($alternates[0])->thumbnail(new Imagine\Image\Box($width, $height), Imagine\Image\ImageInterface::THUMBNAIL_OUTBOUND)->save($dest_file, array('quality' => 90));
                    } catch (Imagine\Exception\Exception $e) {
                        return '/img/error.jpg';
                    }
                }
            }
        }

Voici la génération de la miniature dans mon index.ctp :

<?php if (!empty($v'Post']'thumb'])): ?>
<?php echo $this->Media->image($v'Post']'thumb'], 300, 168); ?>
<?php if (!empty($v'Post']'content'])): ?>
<p><?php echo $this->Text->truncate($v'Post']'content'] = preg_replace('/<img(.*?)>/', '', $v'Post']'content']), 65, array('html' => true)); ?></p>

6 réponses


Grafikart
Réponse acceptée

Dit juste que quand tu inclue le phar ça ne marche pas en leur envoyant la page imagine. http://imagine.readthedocs.org/en/latest/

On dirait que ton hébergeur ne supporte pas l'inclusion du phar :(
Tu arrive à inclure la librairie en dehors du framework ?

Gwy2
Auteur

Je suis assez surpris car mon hébergeur est assez complet (me semble t'il) : e-clicking
Comment puis je savoir si la librairie est inclue ?

Gwy2
Auteur

Bonsoir,
Je suis de temps en temps en relation avec les techniciens du serveur. Pourriez-vous me dire qu'elle est le nom du composant qui n'est pas installer ou la librairie ?
Je vais essayé de prendre contact avec eux.

Merci de votre réponse.

Gwy2
Auteur

Merci beaucoup de ta réponse. Je vais directement les contacter.

Gwy2
Auteur

Bonsoir,
Je viens d'avoir la confirmation que le phar n'étais pas actif.
Mon site va être migré sur un nouveau serveur qui possède le phar.

Merci Grafikart d'avoir identifié ce problème. Sans ta réponse, je serais sans doute encore bloqué.