Log in

View Full Version : Custom Profile Fields Plugin


evenmonkeys
12-06-2006, 07:39 PM
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.// ****************************************
// 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, $replace, trim($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:
// 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:
'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?