vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB4 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=252)
-   -   How can I modify this in register.php? (https://vborg.vbsupport.ru/showthread.php?t=265833)

AFemaleProdigy 06-26-2011 07:57 PM

How can I modify this in register.php?
 
I have been trying for some time now to figure out how to create the option in user registration for the user to select which usergroup they are placed in. All I keep hearing is "pay someone to do it" or I get referred to mods that no longer work. And I see that many other people have asked about this as well, and not gotten any answers.

I don't have the money to hire someone to do this right now and need it done asap. I want to know how to do this myself. I understand the general concept, but I need some direction with the specific code.

Right now I am looking at register.php and am thinking that I need to modify this line of code to include the function that says "if userinfo.field12 = xyz, then place user in usrgeroup xx". So, assuming the user chooses their usergroup on the register.php page (which is generated by a custom profile field), then they are placed into the appropriate group.

The default code below says (correct me if I am wrong): If user email needs verified, place into usergroup 3. Otherwise if user needs to be moderated, place into usergroup 4. Otherwise place all other users in default usergroup 2.

Code:

if ($vbulletin->options['verifyemail'])
 {
  $newusergroupid = 3;
 }
 else if ($vbulletin->options['moderatenewmembers'] OR $vbulletin->GPC['coppauser'])
 {
  $newusergroupid = 4;
 }
 else
 {
  $newusergroupid = 2;
 }

So how could I write it to say all of that, plus modify the last else to say " else if userinfo.field12=x, place into usergroup xx. Then repeat for each userfield/usergroup option that can be selected?

If someone would help me with this I would greatly appreciate it!

--------------- Added [DATE]1309122673[/DATE] at [TIME]1309122673[/TIME] ---------------

Trying to figure this out. I came up with this and know it is not right, but I feel like I am so close! Ideas??

Code:

else if ($vbulletin->options['userinfo.field12'] != "Venue")
 {
  $newusergroupid = 10;


HMBeaty 06-26-2011 08:16 PM

Try this:
Code:

else if ($vbulletin->userinfo['field12'] != "Venue")
 {
  $newusergroupid = 10;


AFemaleProdigy 06-26-2011 08:52 PM

Thanks! However, I am not able to get that to work. I should probably also mention that the curstom field is a drop down menu (don't know if that matters). So I tried a variation of the following to select the particular option ID selected:

Code:

else if ($vbulletin->userinfo['field7'] != 5)
    {
    $newusergroupid = 10;
 }

So 5 = Venue, but that doesn't seem to work either. It is still putting users in the default 2 group.

Annnnnd this won't work...

Code:

if ($vbulletin->options['verifyemail'])
 {
  $newusergroupid = 3;
 }
 else if ($vbulletin->options['moderatenewmembers'] OR $vbulletin->GPC['coppauser'])
 {
  $newusergroupid = 4;
 }
 else if ($vbulletin->userinfo['field7'] != "Venue")
    {
    $newusergroupid = 10;
 }
 else
 {
  $newusergroupid = 2;
 }

hmmm...

--------------- Added [DATE]1309125402[/DATE] at [TIME]1309125402[/TIME] ---------------

Hey... could it be that I should be editing this instead?? I am using email activation. So upon clicking the activation link, it is putting user into default 2 group. Maybe I need to put that line of code into this somewhere??

Code:

if ($vbulletin->options['verifyemail'])
  {
    $activateid = build_user_activation_id($userid, (($vbulletin->options['moderatenewmembers'] OR $vbulletin->GPC['coppauser']) ? 4 : 2), 0);
    eval(fetch_email_phrases('activateaccount'));
    vbmail($email, $subject, $message, true);
  }
  else if ($newusergroupid == 2)
  {
    if ($vbulletin->options['welcomemail'])
    {
    eval(fetch_email_phrases('welcomemail'));
    vbmail($email, $subject, $message);
    }
  }


Boofo 06-26-2011 08:56 PM

Do you want them in the 10 usergroup is Venue shows up for the field?

--------------- Added [DATE]1309125490[/DATE] at [TIME]1309125490[/TIME] ---------------

If so, try this:

Code:

if ($vbulletin->options['verifyemail'])
{
        $newusergroupid = 3;
}
else if ($vbulletin->options['moderatenewmembers'] OR $vbulletin->GPC['coppauser'])
{
        $newusergroupid = 4;
}
else if ($vbulletin->userinfo['field7'] == "Venue")
{
        $newusergroupid = 10;
}
else
{
        $newusergroupid = 2;
}


AFemaleProdigy 06-26-2011 09:06 PM

Okaaay... so I did some experimenting thinking maybe the email activation was interfering and it turns out that it was. So this DOES work if email activation is turned off. So the next hurdle is, how to keep email activation enabled and have this work?

And yes, if the user selects drop down otion "Venue", then they will be placed into usergroup 10 which is for Venues only.

Code:

else if ($vbulletin->userinfo['field7'] != "Venue")
    {
    $newusergroupid = 10;
 }

--------------- Added [DATE]1309126284[/DATE] at [TIME]1309126284[/TIME] ---------------

So pending email activation throws them into usergroup 3, nullifying the line that says if field7 is "venue" put them into usergroup 10. Then when they click the activation link, they still bypass that line and are put into default group 2. How do I modify that?

--------------- Added [DATE]1309126611[/DATE] at [TIME]1309126611[/TIME] ---------------

I'm thinking maybe this is where the issue is?

Code:

if ($vbulletin->options['verifyemail'])
  {
    $activateid = build_user_activation_id($userid, (($vbulletin->options['moderatenewmembers'] OR $vbulletin->GPC['coppauser']) ? 4 : 2), 0);
    eval(fetch_email_phrases('activateaccount'));
    vbmail($email, $subject, $message, true);
  }
  else if ($newusergroupid == 2)
  {
    if ($vbulletin->options['welcomemail'])
    {
    eval(fetch_email_phrases('welcomemail'));
    vbmail($email, $subject, $message);
    }
  }


Boofo 06-26-2011 09:25 PM

!= means is not equal to
== means is equal to

AFemaleProdigy 06-26-2011 09:38 PM

Hmmm... well... did some more testing based on the != vs == and am not sure what to think of it.

If I use !- then it seems to work properly. If I select option "Venue", then it moves me to usergroup 10. If I select another option like "Patron", it moves me to the default usergroup 2.

If I use == then nothing I choose puts me into usergroup 10 like it should. What do you make of that?

And thanks for your help guys! You are awesome!! :)

--------------- Added 26 Jun 2011 at 18:43 ---------------

yeah, that is not right.. but the == isn't working either. hmmm

--------------- Added 26 Jun 2011 at 18:55 ---------------

So I can't get this to work

Code:

else if ($vbulletin->userinfo['field7'] == 11)
    {
    $newusergroupid = 9;
 }

Or this (which should equal the same as above)

Code:

else if ($vbulletin->userinfo['field7'] == "Entertainer")
    {
    $newusergroupid = 9;
 }


Boofo 06-26-2011 10:00 PM

Ok, you have to make sure that Venue is spelled correctly and it IS case-sensitive. How do you have the option set your that? It has to be Venue to work with the code I posted.

AFemaleProdigy 06-26-2011 10:02 PM

These are the values in the database table...

Code:

a:4:{i:0;s:6:"Patron";i:1;s:11:"Entertainer";i:2;s:5:"Venue";i:3;s:14:"Venue Employee";}
That is for profilefieldid 7

Boofo 06-26-2011 10:04 PM

I just thought of something. How can there be a user field for any users BEFORE they register?


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

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01185 seconds
  • Memory Usage 1,747KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (12)bbcode_code_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (1)pagenav_pagelink
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (10)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.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/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete