Foren

Dossier avatar liferay

Xavier Borelly, geändert vor 7 Jahren.

Dossier avatar liferay

New Member Beiträge: 7 Beitrittsdatum: 01.02.17 Neueste Beiträge
Bonjour a tous!

Actuellement je doit crée un portlet permettant de la part d'un utilisateur d'importer un grand nombre de photo et de les affecter à différent utilisateur en fonction d'un champs précis.

Jusqu'ici rien de très dur, mais je bloque sur un point, devant modifier le moins possible la structure de la BDD, je me retrouve a chercher le dossier où sont enregistrer les avatars sur liferay, ne le trouvant pas, mais me doutant qu'il existe je présume qu'il doit être cacher (ou a quelque part ou je n'ai pas encore chercher).

Je viens donc vous demandez votre aide pour le trouver ou savoir si il y a autre moyen de lier la valeur lportal.user_.portraitId de la base de donnée à une image. Merci d'avance.
thumbnail
Eric COQUELIN, geändert vor 7 Jahren.

RE: Dossier avatar liferay

Expert Beiträge: 254 Beitrittsdatum: 03.11.13 Neueste Beiträge
Bonjour,

Les avatars ne sont pas stockés dans la librairie documentaire au sens GED mais dans les images. Voir la librairie ImageLocalServiceUtil.

La table IMAGE. Je pense que le fichier est toujours stocké sur le répertoire data/document_library mais il n'est pas accessible depuis la librairie.

L'avantage de l'image vs les documents est que s'il ne s'agit que de stocker des images alors c'est largement suffisant. Car en utilisant la librairie, vous embarquez tous les mécanismes de version, de permission, de commentaires, etc... En plus, il y'a des URL qui permettent d'accéder en direct à l'image en précisant potentiellement sa taille ainsi l'image est redimensionnée côté serveur : http://www.monsite.fr/image/user_male_portrait. Par contre la partie "user_male_portrait" n'est pas configurable à ma connaissance sauf à faire un hook.

Les avatars et les logos de site utilisent ce mécanisme.
Xavier Borelly, geändert vor 7 Jahren.

RE: Dossier avatar liferay

New Member Beiträge: 7 Beitrittsdatum: 01.02.17 Neueste Beiträge
Bonjours! merci déjà de ta réponse rapide! emoticon

Alors grâce a toi j'arrive a remplir la table Image de liferay! emoticon

Le problème est que quand je prend l'id obtenu et que je modifie la table user pour le changer, cela ne m'affiche pas mon image... c'est pas normal ou j'ai sauté une étape?

Actuellement pour tester je fait un new File en allant chercher une image sur mon pc, je fait ensuite ImageLocalServiceUtil.updateImage(2001, file); puis je vais modifier la valeur portaitId de la table User_ avec mysql workbench.

(et quand je fait http://www.monsite.fr/image/monimage j'ai juste un fond blanc....)
thumbnail
Eric COQUELIN, geändert vor 7 Jahren.

RE: Dossier avatar liferay

Expert Beiträge: 254 Beitrittsdatum: 03.11.13 Neueste Beiträge
La mise à jour du portrait se fait via UserLocalServiceUtil et pas ImageLocalServiceUtil. Je n'ai pas le nom de la fonction en tête...

Et attention, une maj via SQL direct sur la table ne rafraichit pas le cache... Tes données étant en cache, si tu veux procéder de cette façon il te faut alors soit redémarrer le serveur soit vider le cache depuis la console d'admin.

Mais si tu utilises le bon service de maj du portrait (userLocalServiceUtil de mémoire) alors tu n'auras pas le pb de cache.
Xavier Borelly, geändert vor 7 Jahren.

RE: Dossier avatar liferay

New Member Beiträge: 7 Beitrittsdatum: 01.02.17 Neueste Beiträge
Ben franchement merci! c'était exactement ça qu'il me fallait!

Bon par contre je passe par <<ImageLocalServiceUtil.updateImage(Long idPortrait, File file);>> vus que en entré j'ai des fichiers, le problème actuel est : vus que je doit rentrer un id, quel Id je "sacrifie" pour faire mes import d'avatar? Ou alors je fait une boucle avec un test pour trouver un Idportrait vide?