Extension:UserProfiles

From Organic Design wiki

One project I work with is wanting to eventually have a full social network such as Friendica, but there are a number of specific aspects needed which none of them support yet. One of them is a simple but highly customisable (by administrators) user profile system. This similar requrement of having a specifically customised registration and profile or preferences system has been reoccurring a lot over the last year or two, so this time I've decieded to generalise these requests into an extension so it's easier to set up in future.

They want a user profile system with the following:

  • Usual registration, email confirmation and reset password mechasnisms - possibly with OpenID etc later
  • Ability to login by user and/or email address.
  • Easily modifyable sign-up and profile editing form and profile page rendering
  • Easy avatar upload and gravatar fallback
  • Quick search with autocomplete for finding users
  • Privacy selection for each field (admin, owner, users, public) determining who can read and write the field

The ArticleProperties extension has been used for the purpose of modifying the user accounts to exhibit more options and use custom forms, so that code can be re-used for this extensions. This leaves only the privacy system, quick search and making the forms more templatable to do.

Groups

Another functionality which would be good to add at some point is to have an "entities" category which contains sub-categories representing types of group entity such as social group, organisation, project, resource, role, bank account, server etc. These are category pages which contain other entities and users forming a hierarchy.

They are also an article (as every category page is) describing what it's about, it's purpose and various other useful information, links, file attachments and member articles. Some modification to entitiy category's pages would be made so that members can easily be added and removed - also from the user pages.

File attachments using the jQuery multiple upload plugin.