vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=15)
-   -   Custom Profile Field in user.php (https://vborg.vbsupport.ru/showthread.php?t=190949)

biome.pat 09-15-2008 01:46 AM

Custom Profile Field in user.php
 
Hello! I'm trying to customize user.php in the admincp folder so that there are a few extra columns that show up while moderating new users. There are a couple of custom profile fields that need to be laboriously cross-checked before I allow folks to post, and it sure would be easier if they showed up on the main user moderation page. It would be even easier if I could get LDAP Authentication working, but that's a different story... grumble, mumble, etc.

Anyway, I know how to set it up and where to edit, but I can't seem to figure out what calls the contents of the custom field. I figured it would be $user[fieldX] or something, but that's not working. Any quick answers? I only know how to call it in a postbit, but I think this is different, if I understand correctly...

Thanks all!

Lynne 09-15-2008 01:53 AM

Are you making sure the fields are even available to be printed out right then? Did you modify a query to add them to the select statement?

biome.pat 09-15-2008 04:06 AM

Oh dear. And this is where my amateur-ness shines through. I don't know PHP aside from the chunks I try to edit, so the grand structure is above me. Excuse me if my terminology is a little wonky, but how would I query info from a different table? In the user moderation section, all the info is queried from the "user" table, but the custom profile fields are in the "userfield" table. Is there an easy way to organize that so that I could get the userfield info into the $users array that all the other info is dumped in?

Drats. I don't make sense, do I?

Well thanks regardless Lynne!

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

Alright, so I managed to learn a little PHP, and the parts I changed around were the query_read and $cell = array() bits... I'd love to hear your input as to whether this looks OK. Barring any unforeseen database explosions, I look forward to hearing from you :)

PHP Code:

// ###################### Start moderate + coppa #######################
if ($_REQUEST['do'] == 'moderate')
{

    $users = $db->query_read("
        SELECT
            " . TABLE_PREFIX . "user.userid,
            " . TABLE_PREFIX . "user.username,
            " . TABLE_PREFIX . "user.email,
            " . TABLE_PREFIX . "user.ipaddress,
            " . TABLE_PREFIX . "userfield.field6,
            " . TABLE_PREFIX . "userfield.field7,
            " . TABLE_PREFIX . "userfield.field8
        FROM
            " . TABLE_PREFIX . "user,
            " . TABLE_PREFIX . "userfield
        WHERE usergroupid = 4
            AND " . TABLE_PREFIX . "user.userid = " . TABLE_PREFIX . "userfield.userid
        ORDER BY username
    ");
    if ($db->num_rows($users) == 0)
    {
        print_stop_message('no_matches_found');
    }
    else
    {
        ?>
        <script type="text/javascript">
        function js_check_radio(value)
        {
            for (var i = 0; i < document.cpform.elements.length; i++)
            {
                var e = document.cpform.elements[i];
                if (e.type == 'radio' && e.name.substring(0, 8) == 'validate')
                {
                    if (e.value == value)
                    {
                        e.checked = true;
                    }
                    else
                    {
                        e.checked = false;
                    }
                }
            }
        }
        </script>
        <?php
        print_form_header
('user''domoderate');
        
print_table_header($vbphrase['users_awaiting_moderation'], 6);
        
print_cells_row(array(
            
$vbphrase['username'],
            
"First",
            
"Last",
            
$vbphrase['email'],
            
"UTORid",
            
"<input type=\"button\" class=\"button\" value=\"" $vbphrase['accept_all'] . "\" onclick=\"js_check_radio(1)\" />
            <input type=\"button\" class=\"button\" value=\"" 
$vbphrase['delete_all'] . "\" onclick=\"js_check_radio(-1)\" />
            <input type=\"button\" class=\"button\" value=\"" 
$vbphrase['ignore_all'] . "\" onclick=\"js_check_radio(0)\" />"
        
), 0'thead', -3);
        while (
$user $db->fetch_array($users))
        {
            
$cell = array();
            
$cell[] = "<a href=\"user.php?" $vbulletin->session->vars['sessionurl'] . "do=edit&amp;u=$user[userid]\" target=\"_user\"><b>$user[username]</b></a>";
            
$cell[] = "$user[field6]";
            
$cell[] = "$user[field7]";
            
$cell[] = "<a href=\"mailto:$user[email]\">$user[email]</a>";
            
$cell[] = "$user[field8]";
            
$cell[] = "
                <label for=\"v_
$user[userid]\"><input type=\"radio\" name=\"validate[$user[userid]]\" value=\"1\" id=\"v_$user[userid]\" tabindex=\"1\" />$vbphrase[accept]</label>
                <label for=\"d_
$user[userid]\"><input type=\"radio\" name=\"validate[$user[userid]]\" value=\"-1\" id=\"d_$user[userid]\" tabindex=\"1\" />$vbphrase[delete]</label>
                <label for=\"i_
$user[userid]\"><input type=\"radio\" name=\"validate[$user[userid]]\" value=\"0\" id=\"i_$user[userid]\" tabindex=\"1\" checked=\"checked\" />$vbphrase[ignore]</label>
            "
;
            
print_cells_row($cell0'', -4);
        }

        require_once(
DIR '/includes/functions_misc.php');
        
$template fetch_phrase('validated''emailbody''email_');

        
print_table_break();
        
print_table_header($vbphrase['email_options']);
        
print_yes_no_row($vbphrase['send_email_to_accepted_users'], 'send_validated'1);
        
print_yes_no_row($vbphrase['send_email_to_deleted_users'], 'send_deleted'1);
        
print_description_row($vbphrase['email_will_be_sent_in_user_specified_language']);

        
print_table_break();
        
print_submit_row($vbphrase['continue']);
    }
}


Lynne 09-15-2008 03:27 PM

Well, simply looking at the code, it looks fine. Does it give you what you want? (Sometimes what I do is rename the page to something like user1.php and that way I'm not screwing up the page the mods are using.)

biome.pat 09-15-2008 11:13 PM

Yeah, it seems to be working great! I was just worried that somehow I would erase EVERYTHING somehow. Y'know... just "DATABASE GONE". I suppose that pretty hard to do with query_read, but still :)

Thanks again for getting me thinking in the right direction. This made the today's couple-hundred user moderations somewhat more manageable!


All times are GMT. The time now is 08:22 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.01630 seconds
  • Memory Usage 1,772KB
  • 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
  • (1)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