Bonjour à tous,
j'utilise comme beaucoup de membres le plugin Média de grafikart,
Je développe actuellement un blog, et si on supprime une image via le plugin, la miniature, qui ne sert plus à rien, encombre le fichier uploads,
donc je partage ici (pas de compte github..) un moyen de supprimer les miniatures créer via 'imagine'.
Je n'est pas fait le test unitaire pour la bonne raison que je ne mis suis pas encore intéressé..
Et comme un code vaut mieux qu'une longue explication :
Tous d'abord dans app/Config/core.php insérer cette ligne :
Configure::write('Miniature_size', 80);
Cette variable défini la dimension de vos miniatures, dans cette exemple, votre site aura des miniatures carré, et seront toutes de même taille.
Ensuite, dans app/Plugin/Media/Model/Media.php, ajouter ce code dans la fonction beforeDelete après la déclaration de $info :
foreach(glob(WWW_ROOT.$info'dirname'].'/'.$info'filename'].'_'.Configure::read('Miniature_size').'x'.Configure::read('Miniature_size').'.'.$info'extension']) as $v){
unlink($v);
}
Pour afficher une miniature dans une vue :
echo $this->Media->image($post'Post']'thumb'], Configure::read('Miniature_size'), Configure::read('Miniature_size'));
Voila, c'est tous ce que j'avais à partager, en espèrent avoir été claire sans avoir créer de bug dans ce plugin.
Une nouvelle mise à jour à été faite sur github, les miniatures sont effacées en ajax, et le code est plus claire que le mien..
foreach(glob(WWW_ROOT.$info'dirname'].'/'.$info'filename'].'_*x*.jpg') as $v){
unlink($v);
}
Par curiosité, as tu trouve un moyen de pouvoir ajouter une limitation d'image avec ce plugin ?
Je n'ai même pas chercher car c'est inutile pour mon projet et ta question est vague, mais je pence que sa ce passer dans :
app/Plugin/Media/Model/Media.php, il y a une fonction qui s'appelle beforeSave, donc qui s’exécute avant les sauvegardes.
Bonsoir.
Pour commencer, je dirais que ce n'est pas la bonne section de forum pour ce sujet, ensuite pour répondre à AcidBrun, tu peux depuis le modèle lors de ton appel au Behavior du Plugin Media, définir le nombre de fichiers que tu autorises à l'upload par contenu (c'est à dire pour un Post par exemple).
@Airday : Il te suffit de l'ajouter dans l'appel dans ton actsAs.
Par exemple :
public $actsAs = array(
'Media.Media' => array(
'path' => 'img/uploads/%f',
'extensions' => array('jpg', 'png', 'jpeg'),
'limit' => 3
)
);
De cette manière, les uploads sur le modèle seront limité à 3 par utilisateur.