I have free memberships set up as I have created administrator and moderator member levels.
The only issue is that these have to be manually assigned.
I have a free mod to automatically assign membership level that could possibly be modified to select a member level based on a profile field.
http://www.boonex.com/unity/extensions/entry/FREE_MOD_DeeEmm_Auto_Member_Level
But this only applies when the member joins.
Only other way I can think of achieving this is to modify pedit.php
- First add a field to the profile - a drop down selector that contains all member levels
- Then in pedit - test for value of this field when the profile is saved
- Add / remove membership level as required. (SQL Query)
However...
It is worth considering that the member can only be assigned one member level - not good if you have a member who is both a guitarist and a drummer - in this case it is better to give automatic group membership - which incidentally might be what you really need as each group has a dedicated forum etc.
In this case you need a different mod -
http://www.boonex.com/unity/extensions/entry/FREE_MOD_DeeEmm_Auto_Group_Fan_On_Join_MOD
I was working on a premium version of this with an admin panel interface - to be able to set up custom profile fields via the admin panel that could be associated with groups. It even had some boolean functions to be able to select group membership from a variety of profile fields.
Again - this only works on join - not when profile is edited, so might need to be modified to do what you need.
HTH
/DM