Forum CMS Made Simple FR

Version complète : [Résolu] Génération d'une vignette sur les articles
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Pages : 1 2

jjmortibus

Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: #1.9.3
#~ Url du site : http://www.team-alcatraz51.com/index.php
#~ Hébergeur / Soft : ovh
#~ Informations Système :
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~



Bonjour,

Je voudrais savoir s'il est possible de générer une vignette sur les articles c'est à dire :
J'ai créé un nouveau champ fichier, et lors de la création d'un nouveau article j'insère une image via ce champ (pas par l'éditeur Tinymice) et j'aimerai lors de l'affichage une vignette de cette image apparaisse et non pas l'image en taille réelle.
Salut,
Javais trouvé une astuce, mais il faudra l'adapter en ce qui concerne la partie config.php car c'était avant les nouveauté du module news (création d'url et choix du dossier pour l'upload).
http://www.cmsmadesimple.fr/forum/viewto...521#p15521
Je vérifierai ce soir comment l'améliorer.

jjmortibus

Bonjour Jean le Chauve, cela fonctionne mais le seul problème est qu'il faut que je passe une fois l'image uploadée par le gestionnaire d'images pour générer la vignette ... n'y a t'il pas un moyen d'automatiser cela sinon merci bien.Smile
Certainement, mais il faudra coder.

jjmortibus

bien j'ai trouvé une solution alternative ou on n'a pas besoin de changer le config.php :
Télécharger ce script http://code.google.com/p/timthumb/ qui génère des miniatures et les mets dans en cache, ensuite il suffit dans le gabarit ou l'on veux voir une miniature (soit le détail ou autre) insérer le code
Code :
<img src="chemin du script?src={$entry->file_location}/{$field->value}&w=150"  />
chemin du script = chemin vers le script téléchargé il vaux mieux mettre ce script à la racine de votre CMS

on peux mettre les paramètres que l'on veux à la suite du chemin de l'image plus de détail à cette adresse :
http://www.binarymoon.co.uk/demo/timthumb-basic/

On peux ensuite aisément insérer un lien en lightbox vers l'image originale.
Tenez :

http://dl.dropbox.com/u/11814293/CMS%20M...le-1.1.xml

C'est un module que j'ai créé sur la base de TimThumb. Je ne l'ai pas diffusé car je trouve qu'il manque de fonctionnalités avec une distribution sur la forge.

Il ne fonction qu'avec l'utilisation de mod_rewrite, et de cette façon :

Image originale (1024x768) : http://www.monsite.fr/uploads/images/test.jpg

Pour avoir une image redimensionnée en 800px de large toutes proportions respectées : http://www.monsite.fr/thumbms_w800/uploa...s/test.jpg

Pour avoir une image redimensionnée en 200px de hauteur toutes proportions respectées : http://www.monsite.fr/thumbms_h200/uploa...s/test.jpg

Pour avoir une image redimensionnée en 400px x 400px (croppée) : http://www.monsite.fr/thumbms_w400_h400/...s/test.jpg

Pour avoir une image redimensionnée compressée (de 0 qualite la plus mauvaise à 100 qualité la plus haute : http://www.monsite.fr/thumbms_q70/upload...s/test.jpg

Tous les paramètres se rajoutent donc en les séparant par un underscore "_".

Ca fonctionne avec toutes les images du site même si elles ne sont pas dans "uploads".

Ca gère la mise en cache (fichiers cache dans tmp/thumbsms_cache).

Voilà.
nan sérieux ? tu te rends compte :o

un truc comme ca c'est excellant kraygoon !

perso je le garde sous le coude ca me sera certainement utile ainsi qu'a tout ceux qui ne sont pas novice et utilisent cmsms comme un outils pour pro Smile

je te ferrais des retours dès que je l'aurais utilisé Wink
Je l'utilise dans tous mes nouveaux site. Ça permet de générer les vignettes à la volée et couplé avec du Smarty (Template, News, Gallery, etc.) c'est très sympa.
Bin en v'la une bonne idée Smile
Je vais aussi le tester, car c'est un vrai manque au module news.

jjmortibus

ben voilà une méthode plus propre que celle que j'avais énoncé et qui reprend le même script tinthumb qui est vraiment très efficace ! Smile
Bonne idée Kraygoon !
Pour ma part j'utilise généralement le plugin Supersizer couplé à un champ additionnel du module News, c'est efficace et le client n'a pas à gérer lui-même les dimensions de son fichier image.

Je jette un oeil à ton module dès que possible Smile
Airelibre : quel code utilises-tu pour coupler Supersizer à un champ additionnel ?
Airelibre : quel code utilises-tu pour coupler Supersizer à un champ additionnel ?
C'est assez simple,
1. Tu crées un champ supplémentaire dans le module Articles (définition de champs). Ce champ doit être un fichier. Appelons-le "image".
2. Dans ton gabarit de sommaire ou détail d'un article, tu met un code du type (ici c'est un exemple de gabarit de sommaire) :
Code :
{if $entry->image neq ''}
  {capture assign='photoarticle'}uploads/news/id{$entry->id}/{$entry->image}{/capture}
  <a href="{$entry->moreurl}" title="{$entry->title|cms_escape:htmlall}">
      <img src="{supersizer url=true width=120 path=$photoarticle}" alt="{$entry->title}" />
  </a>
{/if}

Ici on aura donc une image de 120px de large. Mais les options de Supersizer sont très complètes et vous permettent tous types de transformations, notamment celle que je trouve la plus intéressante : redimensionner à largeur et hauteur fixe en conservant les proportions Smile Ce que CGSmartImage ne fait pas (encore).

Dernière note : j'ai du remettre l'adresse complète du répertoire de l'image avec l'id de l'article car le module News fournit une url absolue du répertoire avec les fichiers, mais Supersizer attend une Url relative.
Ca à l'air sympa ce Supersizer, je suis passé à côté.
Merci Smile

ataxel

Merci, ce post m'a sauvé la mise!
A + tard.
De rien Wink Il y a aujourd'hui un nouveau module géré par Calguy, l'un des développeurs principaux du système : CGSmartImage.

Encore récent, il dispose déjà de pas mal de fonctions, en particulier une fonction d'inclusion qui peut être pratique (l'image est codée en base64 au sein du code - mais je crois que Supersizer le fait aussi).

Ce qui est surtout intéressant avec ce module, c'est qu'il va petit à petit prendre la place des générations de vignettes au sein de tous les modules de Calguy (Robert Campbell de son vrai nom). Il dispose donc d'une API qui peut pratique pour tous les développeurs de modules !

SamLi

airelibre a écrit :C'est assez simple,
1. Tu crées un champ supplémentaire dans le module Articles (définition de champs). Ce champ doit être un fichier. Appelons-le "image".
2. Dans ton gabarit de sommaire ou détail d'un article, tu met un code du type (ici c'est un exemple de gabarit de sommaire) :
Code :
{if $entry->image neq ''}
  {capture assign='photoarticle'}uploads/news/id{$entry->id}/{$entry->image}{/capture}
  <a href="{$entry->moreurl}" title="{$entry->title|cms_escape:htmlall}">
      <img src="{supersizer url=true width=120 path=$photoarticle}" alt="{$entry->title}" />
  </a>
{/if}

Ici on aura donc une image de 120px de large. Mais les options de Supersizer sont très complètes et vous permettent tous types de transformations, notamment celle que je trouve la plus intéressante : redimensionner à largeur et hauteur fixe en conservant les proportions Smile Ce que CGSmartImage ne fait pas (encore).

Dernière note : j'ai du remettre l'adresse complète du répertoire de l'image avec l'id de l'article car le module News
fournit une url absolue du répertoire avec les fichiers, mais Supersizer attend une Url relative.

Merci pour l'info.
J'ai essayé avec ton code, ça ne fonctionne pas chez moi.
Il n'arrive pas à trouver l'URL de mon image.. Il y a bien un quelque chose qui s'affiche, mais c'est la petit icone avec la feuille quand le chemin de l'image est invalide Sad
Bonjour,

C'est le code :
Code :
{capture assign='photoarticle'}uploads/news/id{$entry->id}/{$entry->image}{/capture}

qui stocke l'url de l'image dans la variable smarty "photoarticle". Le plus simple est donc de voir dans les fichiers du répertoire uploads où sont situées tes images. Dans mon cas c'est par exemple dans uploads/news/id5/maphoto.jpg

Et pour toi ?

SamLi

Hello, j'ai vérifié suite à ta question chez moi c'est uploads/news/id6/maphoto.jpg
Donc ca semble coller avec l'url stockée dans la variable "photoarticle".
As-tu bien le plugin Supersizer installé ?
Page : http://dev.cmsmadesimple.org/projects/supersizer

SamLi

Salut,

J'ai copié le contenu du fichier function.supersizer.php dans une nouvelle balise utilisateur que j'ai appelée supersizer.
Est-ce correct?
Non, il faut copier le fichier de supersizer dans le répertoire "plugins"

SamLi

Awh. Désolé... Bon je pense que mon problème est clos.. Je vais tester.
Pages : 1 2