Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 08-27-2011, 05:52 PM
Raman Raman is offline
 
Join Date: Jun 2005
Posts: 11
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Custom Field Check and redirect

Hello Everybody,

I have added a custom field to UserField table and would like to make is a required field.

To control that I am thinking about adding a system wide plugin which could check to see for logged in user, if that field is filled in other wise redirect the user to profile page to fill it.

Can any one point me the hook location I can use and how can i check the field value.

Would really appreciate any help

With Regards
Reply With Quote
  #2  
Old 08-27-2011, 07:51 PM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

You could do something like this, using hook location global_bootstrap_complete:

PHP Code:
global $vbulletin;

if (!
in_array(THIS_SCRIPT, array('usercp''profile''sendmessage')) && 
    empty(
$vbulletin->userinfo['field1']))
{
     
$vbulletin->url "profile.php?do=editprofile";
     eval(
print_standard_redirect("You must fill in the biography field"falsetrue));


This is checking for 'usercp', 'profile', and 'sendmessage' (the "contact us" page) so that users can get to those even if they haven't filled out the field. You may find that there are other script names you want to put in there.

You can also use a phrase for the message by changing the eval line like this:

PHP Code:
eval(print_standard_redirect('phrase_name'truetrue)); 
Reply With Quote
  #3  
Old 08-27-2011, 09:14 PM
Raman Raman is offline
 
Join Date: Jun 2005
Posts: 11
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thank you so much, you made my day

I am so happy and appreciate your kind help

Have a nice day

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

Your solution is working like charm, Just wanted to see what variable of THIS_SCRIPT would be for Admincp and Modcp

AS now I am not able to get into above controls

Please help
Reply With Quote
  #4  
Old 08-27-2011, 11:34 PM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hmm...which hook did you use? I just realized that the hook I mentioned is for vbulletin version 4. Try using global_setup_complete.

When I tried it, it had no effect on the admincp or modcp pages even if the field was not filled in.

Edit: But to answer your question, the admincp and modcp pages don't set THIS_SCRIPT, but if you need to you could check if VB_AREA == 'AdminCP' or 'ModCP', like:

PHP Code:
if (VB_AREA != 'AdminCP' && VB_AREA != 'ModCP' && !in_array(THIS_SCRIPT, array('usercp''profile''sendmessage')) &&  
    empty(
$vbulletin->userinfo['field1'])) 

BTW, if you can't get back in to the adminCP to change the plugin, you can temporarily disable all hook code by editing includes/config.php and adding this line right under <?php
PHP Code:
define('DISABLE_HOOKS'true); 

Edit: Also I think you need a check in there for userid != 0 so that guests (and maybe some other requests that don't check for the user beign logged in) aren't affected, like:

PHP Code:
if ($vbulletin->userinfo['userid'] > && 
    !
in_array(THIS_SCRIPT, array('usercp''profile''sendmessage')) && 
     empty(
$vbulletin->userinfo['field1']))


I was getting pages with the format all jumbled up, and it seems to somehow be related to this mod. I'm thinking that the request for the CSS was getting denied so that maybe this will fix it.
Reply With Quote
Благодарность от:
souperman
  #5  
Old 08-28-2011, 02:13 PM
Raman Raman is offline
 
Join Date: Jun 2005
Posts: 11
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

These all are very useful points to consider for this plugin.

Thanks a lot for taking your time to point these out, I will try applying these as I am going through coding

Thanks a lot
Reply With Quote
Reply


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 03:56 AM.


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.03857 seconds
  • Memory Usage 2,213KB
  • Queries Executed 11 (?)
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
  • (5)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (5)post_thanks_box
  • (1)post_thanks_box_bit
  • (5)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit
  • (5)post_thanks_postbit_info
  • (5)postbit
  • (5)postbit_onlinestatus
  • (5)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_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
  • fetch_musername
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • post_thanks_function_fetch_thanks_bit_start
  • post_thanks_function_show_thanks_date_start
  • post_thanks_function_show_thanks_date_end
  • post_thanks_function_fetch_thanks_bit_end
  • post_thanks_function_fetch_post_thanks_template_start
  • post_thanks_function_fetch_post_thanks_template_end
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete