Frontend users, gestion des miniatures -
snatch1974 - 28/10/2011
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: #1.9.4.3
#~ Url du site : www.nextrides.yannlamy.com
#~ Hébergeur / Soft : hébergeur pas cher
#~ Informations Système :
#~ ----------------------------------------------
#~ Cms Version: 1.9.4.3
#~ Installed Modules:
#~ CMSMailer: 2.0.1
#~ FileManager: 1.1.0
#~ MenuManager: 1.7.6
#~ ModuleManager: 1.4.2
#~ News: 2.11.4
#~ nuSOAP: 1.0.2
#~ Printing: 1.1.2
#~ Search: 1.6.10
#~ ThemeManager: 1.1.4
#~ TinyMCE: 2.8.4
#~ CGExtensions: 1.27.1
#~ FrontEndUsers: 1.16.2
#~ FEmessages: 1.1
#~ CGSimpleSmarty: 1.4.9
#~ CGFeedback: 1.5
#~ CTLModuleMaker: 2.0.3
#~ SelfRegistration: 1.6.12
#~ AjaxMadeSimple: 0.3.1
#~ Products: 2.15
#~ FormBuilder: 0.7
#~ FormBrowser: 0.4
#~ annonces: 1.0
#~ CustomContent: 1.7.3
#~ JQueryTools: 1.0.10
#~ CGUserDirectory: 1.2.6
#~ CGSmartImage: 1.6
#~ Config Information:
#~ php_memory_limit:
#~ process_whole_template: false
#~ output_compression: true
#~ max_upload_size: 6000000
#~ default_upload_permission: 664
#~ url_rewriting: mod_rewrite
#~ page_extension: .html
#~ query_var: page
#~ image_manipulation_prog: GD
#~ auto_alias_content: true
#~ locale:
#~ default_encoding: utf-8
#~ admin_encoding: utf-8
#~ set_names: true
#~ Php Information:
#~ phpversion: 5.3.8
#~ md5_function: On (Vrai)
#~ gd_version: 2
#~ tempnam_function: On (Vrai)
#~ magic_quotes_runtime: Off (Faux)
#~ E_STRICT: 0
#~ E_DEPRECATED: 0
#~ memory_limit: 64M
#~ max_execution_time: 90
#~ output_buffering: On
#~ safe_mode: Off (Faux)
#~ file_uploads: On (Vrai)
#~ post_max_size: 10M
#~ upload_max_filesize: 6M
#~ session_save_path: /tmp (1777)
#~ session_use_cookies: On (Vrai)
#~ xml_function: On (Vrai)
#~ Server Information:
#~ Server Api: cgi-fcgi
#~ Server Db Type: MySQL (mysql)
#~ Server Db Version: 5.1.56
#~ ----------------------------------------------
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~
Bonjour à tous,
me revoilà pour une nouvelle question restée sans réponse jusqu'à ce jour.
Dans Frontend Users, lors de l'édition des données personnelles, je propose aux utilisateurs d'uploader une image qui leur sert plus ou moins d'avatar.
l'upload se passe sans problème lors de mes tests, sauf, qu'aucune limite de taille n'est paramétrable dans l'admin du module... ou du moins, je n'ai pas trouvé.
En testant avec une photo de presque 3000px de large, je me retrouve avec cette image en plein format enregistré dans le dossiers 'feusers'.
En cherchant un peu partout, j'ai vu qu'auparavant il existait une fonction permettant de définir la taille de la vignette, option aujourd'hui disparue.
Ma question:
Comment faire en sorte que l'image uploadée soit redimensionnée à une taille convenable pour pouvoir être exploitée sur le site sans passer par un système de redimensionnement à la volée, à l'affichage?
merci de vos lumières
Frontend users, gestion des miniatures -
kraygoon - 28/10/2011
Je ne peux que te conseiller d'utiliser le module CGSmartImage qui va redimensionner la photo à la volée MAIS surtout la garder en cache pour de meilleures performances.
Frontend users, gestion des miniatures -
snatch1974 - 28/10/2011
J'ai installé CGSmartImage et retourner le truc dans tous les sens mais n'arrive pas à le lier à FEU.
pour récupérer mon image, j'ai fait une udt {avatar}:
Code :
global $gCms;
$feu =& $gCms->modules['FrontEndUsers']['object'];
$userid = $feu->LoggedInId();
$photo = $feu->GetUserPropertyFull('photo',$userid);
echo "<div id='avatar'><img src='uploads/feusers/".$photo."'/></div>";
avec cette udt, je peux afficher mon image n'importe où par la simple balise {avatar} mais pour la redimensionner avec CGSmartImage, je bloque...
j'ai essayé ce genre de truc:
Code :
{cgsi_convert filter_resize='w,150'}{avatar}{/cgsi_convert}
mais là, l'image de s'affiche plus, dans le code source le src est retourné vide:
Code :
<div id="avatar"><img src=""></div>
Frontend users, gestion des miniatures -
snatch1974 - 28/10/2011
J'ai trouvé une solution en modifiant mon udt:
Code :
global $gCms;
$feu =& $gCms->modules['FrontEndUsers']['object'];
$userloggedin = $feu->LoggedIn();
$width = $params['width'];
if($userloggedin){
$userid = $feu->LoggedInId();
$photo = $feu->GetUserPropertyFull('photo',$userid);
if(isset($photo)){
$photosrc = 'uploads/feusers/'.$photo;
$gCms->smarty->assign('avatarsrc', $photosrc);
$smarty = &$gCms->GetSmarty();
$smarty_data = "{CGSmartImage src=$photosrc filter_resize='w,$width'} ";
$smarty->_compile_source('temporary template', $smarty_data, $_compiled );
@ob_start();
$smarty->_eval('?>' . $_compiled);
$_contents = @ob_get_contents();
@ob_end_clean();
echo $_contents;
}
}
Donc, je récupère la source mon image.
j'inclu cette source dans la baliseCGSmartImage
je fais passer par un paramètre la taille souhaitée
par contre, je n'ai toujours pas la solution pour resizer l'image à l'upload
Frontend users, gestion des miniatures -
bess - 28/10/2011
pas besoin, tu laisses une grosse image pour l'upload, CGSmartImage s'occupera du reste lors de l'affichage avec gestion du cache pour les images déjà retaillées
Frontend users, gestion des miniatures -
snatch1974 - 28/10/2011
Et si un jour, j'arrive à avoir 10 000 inscrits qui me mettent chacun une image de 3 Mo, ça va me faire 30Go d'images qui servent à rien puisque seuls les fichiers tmp de CGSmartImage sont affichés....
Sinon, faudrait réussir à mettre une limite de taille ou de poids pour que l'upload puisse avoir lieu.
C'est juste une histoire d'espace disque sur le serveur qui me dérange...