vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 General Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=111)
-   -   Custom Profile Fields Plugin (https://vborg.vbsupport.ru/showthread.php?t=133369)

evenmonkeys 12-06-2006 07:39 PM

Custom Profile Fields Plugin
 
1 Attachment(s)
It worked on vBulletin 3.5.4, but it's not working in 3.6.x anymore. :surprised:

Basically, I'm trying to port my modification of having your profile in your UserCP home to the newer version of vBulletin. However, the custom profile fields aren't playing very well.

The weird part, to me at least, is that it's displaying the user information corrently. However, it's not displaying the actual titles of the fields. In the last series of vBulletin, it used titles. Now it uses phrases. That's where I jump off.

Here's what I'm using. Doesn't show titles. Does show the user's info.
PHP Code:

// ****************************************
// CUSTOM PROFILE FIELDS
$profilefields $db->query_read_slave("
    SELECT profilefieldid, required, type, data, def, height
    FROM " 
TABLE_PREFIX "profilefield
    WHERE form = 0 " 
iif(!($permissions['genericpermissions'] & $vbulletin->bf_ugp_genericpermissions['canseehiddencustomfields']), "
        AND hidden = 0"
) . "
    ORDER BY displayorder
"
);

$search = array(
    
'#(\r\n|\n|\r)#',
    
'#(<br />){3,}#',
);
$replace = array(
    
'<br />',
    
'<br /><br />',
);

$customfields '';
while (
$profilefield $db->fetch_array($profilefields))
{
    
exec_switch_bg();
    
$profilefieldname "field$profilefield[profilefieldid]";
    
$profilefield['title'] = $vbphrase[$profilefieldname '_title'];

    if (
$profilefield['type'] == 'checkbox' OR $profilefield['type'] == 'select_multiple')
    {
        
$data unserialize($profilefield['data']);
        foreach (
$data AS $key => $val)
        {
            if (
$vbulletin->userinfo["$profilefieldname"] & pow(2$key))
            {
                
$profilefield['value'] .= iif($profilefield['value'], ', ') . $val;
            }
        }
    }
    else if (
$profilefield['type'] == 'textarea')
    {
        
$profilefield['value'] = preg_replace($search$replacetrim($vbulletin->userinfo["$profilefieldname"]));
    }
    else
    {
        
$profilefield['value'] = $vbulletin->userinfo["$profilefieldname"];
    }

    (
$hook vBulletinHook::fetch_hook('member_customfields')) ? eval($hook) : false;

    if (
$profilefield['value'] != '')
    {
        
$show['extrainfo'] = true;
        eval(
'$customfields .= "' fetch_template('memberinfo_customfields') . '";');
    }



If someone could help me, I'd really appreciate it.

Edit: I attached an image as well. This is of the 3.5.4 version when everything was working. I just took out my information. This is what I'm referring to though to give an idea as to what I'm actually doing.

I also made a test account on my website if you want to get a feel for the non-working version.

User: test
Pass: test

http://forums.xinnyburt.com
http://forums.xinnyburt.com/usercp.php

evenmonkeys 12-07-2006 10:21 PM

Prease help. ; ;

evenmonkeys 12-09-2006 03:44 AM

*twiddles thumbs* Anyone?

tnguy3n 12-09-2006 05:59 AM

You will get to tell the script what $vbphrase['fieldXX_title']'s are. From your codes above, it's no difference with assigning $profilefield['title'] = $somephrase['field_title'], which is apparently a NULL.

evenmonkeys 12-09-2006 06:10 AM

Completely over my head there. So what's wrong with it? Can my plugin not see the vbphrases? That wouldn't make sense, because it obviously can for the other stuff. O_o

tnguy3n 12-09-2006 06:29 AM

it could only if you include that phrase group to your $phrasegroups array. One way to get around that is to query the db to get those phrases:
PHP Code:

// let start from these 2 lines
        
$profilefieldname "field$profilefield[profilefieldid]";
        
// $profilefield['title'] = $vbphrase[$profilefieldname . '_title']; // <-- not needing this
    
$fieldtitle $profilefieldname '_title';

    
$phrases $db->query_read("
        SELECT varname, text
        FROM " 
TABLE_PREFIX "phrase
        WHERE languageid = 0 AND fieldname = 'cprofilefield' AND varname IN ('
$title')
    "
);
    while (
$phrase $db->fetch_array($phrases))
    {
        
$profilefield['title'] = $phrase['text'];
    } 


evenmonkeys 12-09-2006 07:03 AM

Bah. I still don't get it. This is why I hate php. >_<;

tnguy3n 12-11-2006 04:38 AM

well, you can try to include these 2 phrasegroups in the array $phrasegroups:
PHP Code:

'profilefield'
    
'cprofilefield'


Aeolian 12-12-2006 02:34 AM

<a href="https://vborg.vbsupport.ru/showthread.php?t=123619" target="_blank">https://vborg.vbsupport.ru/showthread.php?t=123619</a>
does this help?


All times are GMT. The time now is 10:02 PM.

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.02865 seconds
  • Memory Usage 1,761KB
  • 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
  • (3)bbcode_php_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (9)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