Go Back   vb.org Archive > Community Discussions > Modification Requests/Questions (Unpaid)
  #1  
Old 12-26-2004, 06:02 PM
DougM DougM is offline
 
Join Date: Jul 2004
Location: TX
Posts: 21
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Change primary usergroup based on registration field

I'm certain this must have been addressed but cannot find it.

I need to change a user's primary usergroup based on their own selection from a menu "Please choose usergroup A, B or C"

I would like this to be done at registration via a custom profile field. I don't know how this would be done as I am also using email verification which dumps everyone into the same Registered User group. Any ideas?

Basically I just need users to select their own primary usergroup without my intervention, if not at registration, then somewhere. I'm really struggling with this. Any help or ideas are most appreciated.

Here is what I tried from another thread. In register.php changed
Code:
	if ($userinfo['coppauser'] OR ($vboptions['moderatenewmembers'] AND !$userinfo['posts']))
		{
			// put user in moderated group
			$user['usergroupid'] = 4;
		}
		if (empty($user['usergroupid']))
		{
			$user['usergroupid'] = 2; // sanity check
		}
to
Code:
		if ($userinfo['coppauser'] OR ($vboptions['moderatenewmembers'] AND !$userinfo['posts']))
		{
			// put user in moderated group
			$user['usergroupid'] = 4;
		}
		if (empty($user['usergroupid']))
		{
			$user['usergroupid'] = 2; // sanity check
		}
		if ($userfield['field11']=='Arch') // change this to suit you
		{
		   $user['usergroupid'] = 17;  // change this to suit you.
		}
Where 'Arch' is the choice from a selection drop-down from custom field 11 and 17 is the group I want them to join.

I actually want to have 3 choices (groups). Am I on the right track here?
Reply With Quote
  #2  
Old 01-27-2005, 01:59 AM
jzewatsky jzewatsky is offline
 
Join Date: Nov 2004
Posts: 51
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Has this gone anywhere. I'd love this on my site!
Reply With Quote
  #3  
Old 04-15-2005, 02:38 PM
cocjh1 cocjh1 is offline
 
Join Date: Dec 2004
Posts: 7
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Has anyone managed to implement this feature?
Would love to have this on my site.

C:
Reply With Quote
  #4  
Old 04-20-2005, 02:53 PM
cocjh1 cocjh1 is offline
 
Join Date: Dec 2004
Posts: 7
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Does anybody have an thoughts on how to implement this?

I require users to validate their email address, so after registration they are put into the 'Users Awaiting Email Confirmation' usergroup. I can't see how to remember their primary group choice so to move them after validating their email address.

Any ideas?

C:
Reply With Quote
  #5  
Old 04-20-2005, 05:04 PM
twoseven twoseven is offline
 
Join Date: Jan 2004
Location: in floris' pants
Posts: 226
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

you could always make a field in the database to remember a,b,c and after the user verifies his/her email addy then it looks for the a,b,c and puts the usergroup to that
Reply With Quote
  #6  
Old 06-17-2005, 12:13 PM
makaiguy's Avatar
makaiguy makaiguy is offline
 
Join Date: May 2004
Location: Aiken, SC, USA
Posts: 150
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

What would be the query code to add a user to a particular usergroup. Likewise, what would be the query code to remove a person from a particular group? This could then be added to php_include_start template.

I think if we knew that, many of us could work out our own conditionals as to how to apply it.

In my case, I'd like it to add/remove from an additional usergroup and not affect the user's primary group.
Reply With Quote
  #7  
Old 06-17-2005, 12:45 PM
Andreas's Avatar
Andreas Andreas is offline
 
Join Date: Jan 2004
Location: Germany
Posts: 6,863
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Add:

[sql] update user set membergroupids=if(membergroupids='', 'X', concat_ws(',', membergroupids, 'X')) where not find_in_set('X', membergroupids) and conditions[/sql]

Remove
[sql]update user set membergroupids=if(instr(membergroupids, ',X') >0, replace(membergroupids, ',X', ''), replace(membergroupids, 'X,', '')) where conditions[/sql]

X is the usergroup you want to add/remove, conditions are any conditions that apply (eg. userid=Y or smth.)
But executing such queries in phpinclude_start is not a good idea IMHO - and won't affect the current user settings.

To assign a User to a secondary usergroup based on the selection of a profile field, I released suich a Hack some time ago.
Reply With Quote
  #8  
Old 06-18-2005, 01:37 AM
makaiguy's Avatar
makaiguy makaiguy is offline
 
Join Date: May 2004
Location: Aiken, SC, USA
Posts: 150
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by KirbyDE
But executing such queries in phpinclude_start is not a good idea IMHO - and won't affect the current user settings.
Thanks so much, KirbyDE. Can you suggest a better place to execute the code that WOULD affect the current user settings?

Quote:
Originally Posted by KirbyDE
To assign a User to a secondary usergroup based on the selection of a profile field, I released suich a Hack some time ago.
I went and checked this out. Your hack looks good for a setting the user would choose during registration, but I need something that also acts dynamically as they edit the field entry in their profile sometime after registration.
Reply With Quote
  #9  
Old 06-23-2005, 05:31 PM
makaiguy's Avatar
makaiguy makaiguy is offline
 
Join Date: May 2004
Location: Aiken, SC, USA
Posts: 150
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Follow up, to give back to the community. I've now got this working, after embellishing what KirbyDE suggested a bit. Many thanks to Kirby for pointing in the right direction.

To add user to secondary user group X:
PHP Code:
// if no membergroupids already set, set to X
     
if ($bbuserinfo[membergroupids] == '')  
     {  
        
$updatefields $DB_site->query("
            UPDATE user
            SET membergroupids='X'          
            WHERE userid=
$bbuserinfo[userid]
        "
);
     }
// else if group X not found in existing list, add X to list
     
elseif ((strpos($bbuserinfo[membergroupids], 'X'))=== false
     {  
        
$updatefields $DB_site->query("
            UPDATE user
            SET membergroupids=concat_ws(',', membergroupids, 'X')  
            WHERE userid=
$bbuserinfo[userid]
        "
);
     }
  } 
To remove user from secondary group X:
PHP Code:
// if X only usergroup listed, blank it out
    
if ($bbuserinfo[membergroupids] == 'X')            
    {                                                   
      
$updatefields $DB_site->query("
          UPDATE user
          SET membergroupids=''                             
          WHERE (userid=
$bbuserinfo[userid])
      "
);
    }
// else X could be one of several. If it's there, remove it and its comma
    
else                                                 
    {                                                    
      
$updatefields $DB_site->query("
          UPDATE user
          SET membergroupids=if(instr(membergroupids, ',X') >0, replace(membergroupids, ',X', ''), replace(membergroupids, 'X,', ''))
          WHERE (userid=
$bbuserinfo[userid]) AND (find_in_set('X', membergroupids))
      "
);
    }
  } 
So a question. Still doing this in phpinclude_start. Is there a better place?
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 02:10 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.04497 seconds
  • Memory Usage 2,261KB
  • Queries Executed 13 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (2)bbcode_code
  • (2)bbcode_php
  • (2)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (9)post_thanks_box
  • (9)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (9)post_thanks_postbit_info
  • (9)postbit
  • (9)postbit_onlinestatus
  • (9)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete