Go Back   vb.org Archive > vBulletin 4 Discussion > vB4 Programming Discussions

Reply
 
Thread Tools Display Modes
  #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
  #12  
Old 08-16-2011, 03:12 AM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by EquinoxWorld View Post
Thank you so much for your reply! I did just what you suggested and it all works PERFECT.
lol...I'm glad you got it working because I'm not even sure what I suggested I think you really have nhawk to thank.
Reply With Quote
  #13  
Old 08-16-2011, 03:15 AM
EquinoxWorld EquinoxWorld is offline
 
Join Date: Nov 2009
Location: Naples
Posts: 354
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by kh99 View Post
lol...I'm glad you got it working because I'm not even sure what I suggested I think you really have nhawk to thank.
We all put in to get this one resolved I think. nhawk has been also helping me out for some time now, he knows my gratitude is immense. Hope it helps someone else at some point, really glad to be a part of this community, collective thinking is the way to go my friends.
Reply With Quote
  #14  
Old 08-16-2011, 11:12 AM
nhawk nhawk is offline
 
Join Date: Jan 2011
Posts: 1,604
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Glad it worked out. I thought it would

FYI.. that same hook can be used to process custom checkboxes, or any other data that is customized and can't automatically be processed in a settings group.
Reply With Quote
  #15  
Old 08-16-2011, 11:23 AM
EquinoxWorld EquinoxWorld is offline
 
Join Date: Nov 2009
Location: Naples
Posts: 354
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by nhawk View Post
Glad it worked out. I thought it would

FYI.. that same hook can be used to process custom checkboxes, or any other data that is customized and can't automatically be processed in a settings group.
Thanks nhawk. I'll keep that in mind. I will actually implement that next when I try add some options for moderators outside of the admin panel. Should be interesting
Reply With Quote
Reply

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 05:32 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.05874 seconds
  • Memory Usage 2,227KB
  • Queries Executed 13 (?)
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
  • (3)bbcode_php
  • (4)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (1)pagenav_pagelink
  • (5)post_thanks_box
  • (5)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (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_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
  • 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
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete