Fórumok

Portrait programmatisch ändern

Yannick Weinz, módosítva 12 év-val korábban

Portrait programmatisch ändern

Junior Member Bejegyzések: 69 Csatlakozás dátuma: 2010.11.15. Legújabb bejegyzések
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?
thumbnail
André Bunse, módosítva 12 év-val korábban

RE: Portrait programmatisch ändern

Junior Member Bejegyzések: 85 Csatlakozás dátuma: 2012.03.16. Legújabb bejegyzések
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, módosítva 12 év-val korábban

RE: Portrait programmatisch ändern

Junior Member Bejegyzések: 69 Csatlakozás dátuma: 2010.11.15. Legújabb bejegyzések
Hm ja das hilft mir nicht wirklich, aber danke... So sieht der Code z.Z. aus:

@ProcessAction(name="processPortraitChange")
	public void processPortraitChange(ActionRequest request, ActionResponse response) throws IOException, SystemException, PortalException{
		User user = UserHelper.getUser(request);
		UploadPortletRequest uploadRequest=PortalUtil.getUploadPortletRequest(request);
		File portrait = uploadRequest.getFile(PROPERTY_PORTRAIT_FILE);
		if(Validator.isNotNull(portrait)){
			try{
			UserLocalServiceUtil.updatePortrait(user.getUserId(), FileUtil.getBytes(portrait));
			UserLocalServiceUtil.updateUser(user);
			} catch (Exception e){
			}
		}else{
			Map<string, string> parameter = new HashMap<string, string>();
			parameter.put(PROPERTY_ACTION, "portrait");
			parameter.put(PROPERTY_ERROR_MESSAGES, "2");
			response.sendRedirect(SitesConfiguration.getURL(SitesConfiguration.getCurrentSite(request),request, parameter));
		}
	}
</string,></string,>


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...
thumbnail
Olaf Kock, módosítva 12 év-val korábban

RE: Portrait programmatisch ändern

Liferay Legend Bejegyzések: 6403 Csatlakozás dátuma: 2008.09.23. Legújabb bejegyzések
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?