2

I'm looking to implement a membership system where there are several different levels of membership. For example

  • Institution
    • Properties
      • Name
      • Address
      • Telephone
    • Owner (Joomla User)
      • Richard
    • Members (Joomla Users)
      • Nurul
      • Jose
    • Type (User Group or Access Level)
      • Full, Associate or Affiliate

In the example above, Richard is the admin / owner of the Institution, and has assigned Nurul and Jose as Instituion Members.

This scenario doesn't fit in with the default model of Joomla Users, so I'm trying to get my head around the best approach. So far I have the following

  • Institution
    • Custom component to handle custom properties stored in it's own database table
    • When a Institution is created, a User Group is dynamically created (using the Institution Name), and assigned to the relevant Access Level depending on the selected Institution type (Full, Associate, Affiliate)
  • Members
    • Will be Joomla users
    • Custom properties will be handled by a third-party plugin i.e. RSMembership
    • When a Member is created / assigned, they will inherit the User Group / Access Level from selected Institution

Questions I'm still trying to figure out are

  • Is this a suitable approach for Joomla?
  • Should the Institution type be a User Group or an Access Level?
1

We've done (what sounds to be) the exact same thing you are requesting using only OSE Membership and the OSE License add-on.

We set up 3 levels of membership (Trial, Basic, & Premium), one of which was free and the others were paid subscriptions. The "owner" created the "institution" profile upon registration and we were able to specify an unlimited number of fields required (or optional) for the profile. The "owner", also, chose how many "licenses" his/her subscription needed (extra fee) and could then assign that number of "members", each of which had their own contact info and profile.

For access to certain parts of the site, we created user groups and access levels for each of the membership tiers. Then, using a "bridge" from OSE to User Groups, we assigned the "owner" and "members" to the appropriate groups. Since the memberships were paid on an annual basis, the "owner" and all "members" would have their access levels revoked once their membership expired.

Other "bridges" which we used were:

  • Joomla! Groups
  • Joomla! Articles
  • K2 User Groups
  • K2 Articles
  • K2 Categories
  • AcyMailing Mailing Lists
  • DocMan Categories
  • Event Booking Events/Discounts
  • Menu Items
  • Modules

We had "complete" control over settings and access to these "bridged" components based on the membership level. You can do the same with many other components that we did not need.

Disclaimer: We needed the system heavily customized, so we had OSE tailor it to our specific needs (for a nominal fee). There may be a few things that our setup did that are not common "out of the box" for this component, but OSE can do those customizations for you (if you need them) at a very reasonable price. We, also, did a number of integrations ourselves, transferring the data to other systems. With Joomla! there really aren't many limits to what you can do if you know PHP, MySQL, and the Joomla! MVC.


Alternate Solutions: There are many other components that can probably do the same thing. Membership Pro claims the same features for paid memberships. However, our requirements went well beyond what you are needing, and OSE Membership was the only one that existed when we built the site (several years ago) which fit our needs.

If you don't need higher levels of paid subscription management, Community Builder may be a good option, too.

  • Thanks Michael, that's a great help. I'll take a look at those plugins and see if they fit are requirements ... keeping my fingers crossed! – Sean Dooley Sep 5 '16 at 14:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.