View Single Post
  #4  
Old 05-24-2011, 12:40 PM
Bobbo Bobbo is offline
 
Join Date: Feb 2003
Posts: 47
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Sarteck's method probably works.

My code is pretty unique, so I'm not sure it makes sense to post it all here. I've integrated vBulletin with our CRM system. Only authorized customers can register and use our site.

I ended up building several plugins. One includes logic that dips into a MS SQL data base and checks to see what active service contracts our customers have. Depending on their contracts, they get assigned to various secondary usergroups.

Since they could have contracts for multiple products (and would need to be assigned to multiple usergroups), I create an array and then populate it in a do while loop.

So for example, $mygroup=array();

Then in the while loop based on my query results, I add the secondary usergroup to the array with $mygroup[] = 'x'; (where x is the usergroup id)

Once the while loop is completed, I convert the array to a normal string with a comma between each of the values with: $mydata = implode(",", $mygroup);

And then finally, I write the data to the table with $userdata->set('membergroupids', $mydata);



The extent of your specific code will really depend on what you are trying to accomplish. For example, what I do as described above is really for when the customer first registers and is hooked at register_activate_process. I have a different plugin that hooks at other locations that does current real time validation. So basically, if a service contract expires in our CRM system, when they use the site, their usergroup permissions get removed in real time. The code in this plugin removes the expiring usergroup id from an array and writes it back to the vBulletin database. There are also checks upon login, etc...

Hope that at least helps a little and gets you thinking.

B
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01057 seconds
  • Memory Usage 1,762KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.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
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • 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
  • showpost_complete