vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=15)
-   -   Custom Field Check and redirect (https://vborg.vbsupport.ru/showthread.php?t=269238)

Raman 08-27-2011 04:52 PM

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

kh99 08-27-2011 06:51 PM

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)); 


Raman 08-27-2011 08:14 PM

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

kh99 08-27-2011 10:34 PM

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.

Raman 08-28-2011 01:13 PM

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


All times are GMT. The time now is 08:38 AM.

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.01742 seconds
  • Memory Usage 1,729KB
  • 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
  • (5)bbcode_php_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (5)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
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete