Highlighted

AEM Community Members Component

prasannar139996

28-02-2018

We are using AEM 6.2, Communities FP3, SP1. for our project. Our project has a requirement to customize OOTB “AEM Community Members Component”. We got a recommendation from Adobe to overlay the Community Members Component.

We have overlaid two components

1) /apps/social/group/components/hbs/communitygroupmemberlist

2) /apps/social/group/components/hbs/communitygroupmember

For inviting new users /libs/social/messaging/components/hbs/userchooser is being used which returns user list in json format ( URL is

http://localhost:4502/content/we-retail/community/en/groups/jcr:content/content/primary/communitygro...userlist.social.0.20.json)

The response is

{"id":"/content/we-retail/community/en/groups/jcr:content/content/primary/communitygroups/userlist","properties":{"searchLastName":"true","jcr:lastModifiedBy":"admin","jcr:created":1425503455434,"jcr:createdBy":"admin","jcr:lastModified":1425503537087,"jcr:primaryType":"nt:unstructured","searchMiddleName":"true","showUsers":"true","searchGivenName":"true","searchDisplayName":"true","searchEmail":"true"},"editable":true,"totalSize":-1,"items":[{"id":"/social/authors/testuser","name":"Test User","type":"user","profilePath":"/home/users/testuser/profile","admin":false,"superSizeAvatarUrl":"/etc/designs/default/images/social/avatar.png","disabled":false,"numberOfPosts":0,"avatarUrl":"/etc/designs/default/images/social/avatar.png","largeAvatarUrl":"/etc/designs/default/images/social/avatar.png","path":"/home/users/testuser","authorizableId":"testuser","resourceType":"social/console/components/hbs/users/user","url":"/social/authors/testuser.social.json","friendlyUrl":""}],"resourceType":"social/messaging/components/hbs/userchooser","url":"/content/we-retail/community/en/groups/_jcr_content/content/primary/communitygroups/userlist.social.json","friendlyUrl":"/content/we-retail/community/en/groups.html"}

We have a requirement where profile image is stored in Mongo and need to have different profile url customized for our application.

In order to extend backedn APIs I could not find AbstractUserChooserCollection and UserChooserSocialComponentFactory class for the component /libs/social/messaging/components/hbs/userchooser which returns a userlist.social.0.20.json.

As per Adobe's documentation in order to extend backend APIs the overlaid component has to extend One Abstract Class and SocialComponentFactory.

For example if I need to extend Community Comments Component then the two class available for extending are AbstractCommentCollection and CommentSocialComponentFactory

I could not find any Abstract class and SocialComponentFactory in the documentation to Extend

"The Adobe AEM Quickstart and Web Application."

Reference JSON response of we-retail website which I want to change

/content/we-retail/community/en/groups/jcr:content/content/primary/communitygroups/userlist.social.0.20.json

Replies

Highlighted

prasannar139996

05-03-2018

I could not find any Abstract class and SocialComponentFactory in the documentation to Extend

"The Adobe AEM Quickstart and Web Application."

Reference JSON response of we-retail website which I want to change

/content/we-retail/community/en/groups/jcr:content/content/primary/communitygroups/userlist.social.0.20.json

Also I could not find any Abstract class and SocialComponentFactory in the documentation to Extend for below components

1) social/group/components/hbs/communitygroupmemberlist

2) social/group/components/hbs/communitygroupmember

Highlighted

prasannar139996

05-03-2018

Hi Ashok

Comments, Updates and Notfications are showing the profile image based on the implementation of the link which you had provided.

Extend the User Profile Information in Communities Components

But in my case it does not go through that class.

Thanks

Highlighted

apanghal

Employee

12-03-2018

There are few extensions of AbstractUser which comes OOTB to cater specific needs of features more related to user administration via group members or console members UI ( on author instance) . e.g. CommunityGroupUser​ , CommunityMemberUser and may not pick updated avatar URL from custom implementation. Implementing these interfaces is also possible but can be very extensive customization. Usual avatar images on publish side where UGC is being created and consumed can be extended via the approach given on thread I shared earlier.

Highlighted

prasannar139996

14-03-2018

Hi Ashok

For customizing Comments Component below are the classes/interfaces available

1) com.adobe.cq.social.commons.comments.api.AbstractCommentCollection - This can be used for creating a Collection Class.

2) com.adobe.cq.social.commons.comments.api.CommentSocialComponentFactory - This can be used for Component Factory class.

Community Members Component has two components

1) social/group/components/hbs/communitygroupmemberlist

2) social/group/components/hbs/communitygroupmember

For Customizing Community Members Component We would require Collection class and ComponentFactory classes to extend the backend. Currently we don't have these classes as part of maven dependancies.

Also the implementation of the below classes are not part of AEM maven dependancies and are not exposed as Collection and ComponentFactory class

1) com.adobe.cq.social.group.client.impl.CommunityGroupUserImpl

2) com.adobe.cq.social.group.client.impl.CommunityGroupMemberListComponentImpl

3) com.adobe.cq.social.group.client.impl.CommunityGroupMemberListComponentFactory

Also there are another two components( social/messaging/components/hbs/userchooser and social/console/components/hbs/userlist ) which is used to invite or add members to community group.

These two components are used within the community members component and these also don't have classes, which can be extended.

Since these classes are not available we are not able to extend the functionality for eNet project to have custom profile URL, get custom profile image path, which is stored in Mongo and also

display administrators of the community group in the front end.

Please let us know.