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 03-19-2004, 06:38 PM
the3jams the3jams is offline
 
Join Date: Jul 2002
Posts: 31
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Can anyone help with some modcp code?

I'm having trouble with some code and was wondering if someone who is more knowledgeable would be able to help? Here is my situation....

I'm trying to give my mods more editing options in their modcp. In /modcp/user.php I have added this code to try and let them edit the join date of users.
PHP Code:
// ###################### Start editjoindate #####################
if ($_REQUEST['do'] == 'editjoindate')
{
    
globalize($_REQUEST, array('userid' => INT));

    if (empty(
$userid))
    {
        
print_stop_message('invalid_user_specified');
    }

    
$noalter explode(','$undeletableusers);
    if (!empty(
$noalter[0]) AND in_array($userid$noalter))
    {
        
print_stop_message('user_is_protected_from_alteration_by_undeletableusers_var');
    }

    
$user $DB_site->query_first("
        SELECT * FROM " 
TABLE_PREFIX "user WHERE userid = $userid
    "
);

    
print_form_header('user','doeditjoindate'01);
    
construct_hidden_code('userid'$userid);
    
print_table_header(construct_phrase($vbphrase['x_y_id_z'], $vbphrase['join_date'], $user['username'], $user['userid']));
    
print_time_row($vbphrase['join_date'], 'joindate'$user['joindate'], 0);
    
print_submit_row();

}

// ###################### Start doeditjoindate #######################
if ($_POST['do'] == 'doeditjoindate')
{
    
globalize($_POST, array('userid' => INT'joindate' => STR));

    
$noalter explode(','$undeletableusers);
    if (!empty(
$noalter[0]) AND in_array($userid$noalter))
    {
        
print_stop_message('user_is_protected_from_alteration_by_undeletableusers_var');
    }

    if (empty(
$userid))
    {
        
print_stop_message('invalid_user_specified');
    }

    
$DB_site->query("
        UPDATE " 
TABLE_PREFIX "user SET
        joindate = 
$joindate
        WHERE userid = 
$userid
    "
);

    if (
can_moderate(0'canviewprofile'))
    {
        
define('CP_REDIRECT'"user.php?do=viewuser&userid=$userid");
    }
    else
    {
        
define('CP_REDIRECT'"index.php?do=home");
    }
    
print_stop_message('updated_joindate_successfully');


Everything worked fine except that it wont store the changed join date. Instead it sets it to 0. It probably has to do with the print_time_row and the way I'm updating the db, but I can't figure it out.

Can anyone help?
Reply With Quote
  #2  
Old 03-19-2004, 06:47 PM
Xenon's Avatar
Xenon Xenon is offline
 
Join Date: Oct 2001
Location: Bavaria
Posts: 12,878
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

you have to convert the joindate from the string into a timestamp before you enter it into the DB.

look at admincp/user.php about how they did it
Reply With Quote
  #3  
Old 03-19-2004, 07:36 PM
the3jams the3jams is offline
 
Join Date: Jul 2002
Posts: 31
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks for you reply.
This is all I saw in the update routine of admincp/user.php that looked like they were converting the joindate...

PHP Code:
        require_once('./includes/functions_misc.php');
        
$user['joindate'] = vbmktime(1200intval($joindate['month']), intval($joindate['day']), intval($joindate['year'])); 
I don't know if that's what you where referring to but I tried it anyway and it still didn't work. Also where do they actually update the user table? I didn't see any update queries for posts, joindate, etc.

Maybe I'm getting in over my head. For some reason I didn't think vb2's code was this hard for me to figure out
Reply With Quote
  #4  
Old 03-19-2004, 07:58 PM
Xenon's Avatar
Xenon Xenon is offline
 
Join Date: Oct 2001
Location: Bavaria
Posts: 12,878
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

yes it's this line, but you have to make sure, the formular of your editfield is exaclty like the one in the ACP.

also remove the => STR form the globalize call, as you will get an array, and not a string then
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:50 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.06145 seconds
  • Memory Usage 2,215KB
  • 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
  • (2)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (4)post_thanks_box
  • (4)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (4)post_thanks_postbit_info
  • (4)postbit
  • (4)postbit_onlinestatus
  • (4)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
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete