Forums

Home » Liferay Portal » Deutsch

Combination View Flat View Tree View
Threads [ Previous | Next ]
toggle
Yannick Weinz
Portrait programmatisch ändern
February 28, 2012 2:54 AM
Answer

Yannick Weinz

Rank: Junior Member

Posts: 65

Join Date: November 15, 2010

Recent Posts

Hallo zusammen,

stehe z.Z. vor dem Problem, das ich ein custom Profil-Portlet mache und da auch das User Portrait ändern will. Problem dabei ist, das man programmatisch das Profilbild erst dann ändern kann, wenn man einmal das ganze über das Control Panel gemacht hat (zumindestens ist das jetzt die einzige Lösung, die ich dafür gefunden habe).

Ich mache das ganze z.Z. mithilfe von "UserLocalServiceUtil.updatePortrait(...)", aber wie gesagt, wenn ichs nicht schonmal im Control Panel geändert habe, funktioniert das nicht (das alte Bild bleibt).

Auch ein "UserLocalServiceUtil.updateUser(...)" bringt keine Veränderungen...

Hab mir versucht anzusehen, wie das Control Panel das macht, aber da wird (soweit ich das sehe) nur irgendeine Javascriptfunktion aufgerufen, die mir nicht wirklich weiterhilft.

Weiß jemand, wie ich das Problem beheben kann?
André Bunse
RE: Portrait programmatisch ändern
March 16, 2012 9:57 AM
Answer

André Bunse

Rank: Junior Member

Posts: 85

Join Date: March 15, 2012

Recent Posts

Hallo Yannick,

bin gerade über folgenden Beitrag gestolpert.

How to change user portrait

Ansonsten würde ich empfehlen etwas mehr Code zu zeigen.

HTH
André
Yannick Weinz
RE: Portrait programmatisch ändern
April 10, 2012 1:00 AM
Answer

Yannick Weinz

Rank: Junior Member

Posts: 65

Join Date: November 15, 2010

Recent Posts

Hm ja das hilft mir nicht wirklich, aber danke... So sieht der Code z.Z. aus:
 1
 2@ProcessAction(name="processPortraitChange")
 3    public void processPortraitChange(ActionRequest request, ActionResponse response) throws IOException, SystemException, PortalException{
 4        User user = UserHelper.getUser(request);
 5        UploadPortletRequest uploadRequest=PortalUtil.getUploadPortletRequest(request);
 6        File portrait = uploadRequest.getFile(PROPERTY_PORTRAIT_FILE);
 7        if(Validator.isNotNull(portrait)){
 8            try{
 9            UserLocalServiceUtil.updatePortrait(user.getUserId(), FileUtil.getBytes(portrait));
10            UserLocalServiceUtil.updateUser(user);
11            } catch (Exception e){
12            }
13        }else{
14            Map<String, String> parameter = new HashMap<String, String>();
15            parameter.put(PROPERTY_ACTION, "portrait");
16            parameter.put(PROPERTY_ERROR_MESSAGES, "2");
17            response.sendRedirect(SitesConfiguration.getURL(SitesConfiguration.getCurrentSite(request),request, parameter));
18        }
19    }


Und der funktioniert auch ohne Probleme, sofern man, nach erstellen des Benutzers, einmal sein Portrait im Control Panel geändert hat. Davor aber passiert schlichtweg NICHTS, es gibt also keine Fehlermeldung oder eine Konsolenausgabe oder sonst was und das Portrait wird auch nciht geändert, sondern es wird weiterhin einfach das Standardprotrait angezeigt...
Olaf Kock
RE: Portrait programmatisch ändern
April 21, 2012 3:14 AM
Answer

Olaf Kock

LIFERAY STAFF

Rank: Liferay Legend

Posts: 1437

Join Date: September 23, 2008

Recent Posts

Sevencogs-hook legt neue Benutzer an und verpasst ihnen auch gleich ein neues Profilbild - der Sourcecode ist im Plugin direkt enthalten (Bestandteil des 6.1.0 CE Downloads). Vielleicht hilft der Beispielcode darin?