Go Back   vb.org Archive > vBulletin 4 Discussion > vB4 Programming Discussions
Prev Previous Post   Next Post Next
  #11  
Old 08-16-2011, 02:53 AM
EquinoxWorld EquinoxWorld is offline
 
Join Date: Nov 2009
Location: Naples
Posts: 354
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by kh99 View Post
What you have is probably the best way to keep invalid values from being saved. The PHP Validation code will allow you to check a value and print a message under it if it's invalid, but it will still be saved (maybe you knew that already and that's why you created the thread).

What you might be able to do in your plugin is print an error message then redirect back to the option page like:

PHP Code:
define('CP_REDIRECT''options.php?do=options&dogroup=' $vbulletin->GPC['grouptitle']);
print_stop_message('error_phrase'$vbulletin->GPC['title']); 

(You'd want to use a real error phrase name, but I'm not sure of the other parameters you'd want). I don't think there's any easy way to get the error message to display under the value unless you let it save the invalid values (that is a reasonable option - you could check the values the mod code and use defaults if they're invalid, put in PHP validation code for your fields, and then whenever someone goes to the adminCP they'll see the error message).
Thank you so much for your reply! I did just what you suggested and it all works PERFECT. If the user set the first option to "yes" then the following three are required to be entered if the user does not enter them (before saving) the missing field error appears automatically (because of the validation code), if the user still tries to save (after a missing fields warning popup) the error message from the plugin appears and nothing saves and the user is redirected back to the option group! Truly idiot proof. This is what I used for future references (replace params with your own if using this code):

Plugin:

Hook: admin_options_processing

PHP Code:
if ($settings['cotw_sotw_pay_credits']  == 1)  {


if (empty(
$settings['cotw_sotw_first_place_prize'])) {
         
define('CP_REDIRECT''options.php?do=options&dogroup=cotw_sotw_options' $vbulletin->GPC['grouptitle']); 
         
print_stop_message('cotw_missing_param'$vbulletin->GPC['title']);
if (empty(
$settings['cotw_sotw_second_place_prize'])) {
            
define('CP_REDIRECT''options.php?do=options&dogroup=cotw_sotw_options' $vbulletin->GPC['grouptitle']); 
            
print_stop_message('cotw_missing_param'$vbulletin->GPC['title']);
if (empty(
$settings['cotw_sotw_third_place_prize'])) {
            
define('CP_REDIRECT''options.php?do=options&dogroup=cotw_sotw_options' $vbulletin->GPC['grouptitle']); 
            
print_stop_message('cotw_missing_param'$vbulletin->GPC['title']); 
            }
        }
    }
    

Validation code for each option:

PHP Code:
global $vbulletin;

if (
$vbulletin->options['cotw_sotw_pay_credits'] == 1)  {
         
       if (empty(
$data))  {
           
          
               
                           
$error 'invalid_value';
                        return 
false;
    
    }
    else {
        
        return 
true;
    }
}
else {
return 
true;

Thank you so much for your help kh99 and nhawk. Couldn't have asked for more. :up:
Reply With Quote
 

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 12:47 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.07709 seconds
  • Memory Usage 2,721KB
  • Queries Executed 12 (?)
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
  • (7)bbcode_php
  • (8)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (15)post_thanks_box
  • (15)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (15)post_thanks_postbit_info
  • (15)postbit
  • (15)postbit_onlinestatus
  • (15)postbit_wrapper
  • (1)showthread_list
  • (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_threadedmode.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_threaded
  • showthread_threaded_construct_link
  • 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