I have added a column on the ranks table for a 'ranktitle'. This text replaces the "usertitle" system.
I have modified the function set_usertitle to pull the User's Title from this table, but after a user posts, his title disappears. Rebuilding the User Title cache bring the title back (until he posts again). Am missing a query somewhere that is still pulling from the old usertitle table? I tried searching all the files for anything selecting against "usertitle", but cant seem to find the bug... Any help is appreciated.
PHP Code:
function set_usertitle($customtext, $reset, $usergroup, $canusecustomtitle, $isadmin)
{
$customtitle = $this->existing['customtitle'];
$usertitle = $this->existing['usertitle'];
if ($canusecustomtitle)
{
// user is allowed to set a custom title
if ($reset OR ($customtitle == 0 AND $customtext === ''))
{
// reset custom title or we don't have one but are allowed to
if (empty($usergroup['usertitle']))
{
$gettitle = $this->dbobject->query_first("
SELECT ranktitle
FROM " . TABLE_PREFIX . "ranks
WHERE minposts <= " . intval($this->existing['posts']) . " AND
usergroupid = " . intval($this->existing['usergroupid']) . "
ORDER BY minposts DESC
LIMIT 1
");
$usertitle = $gettitle['ranktitle'];
}
else
{
$usertitle = $usergroup['usertitle'];
}
$customtitle = 0;
}
else if ($customtext)
{
// set custom text
$usertitle = fetch_censored_text($customtext);
if (!can_moderate() OR (can_moderate() AND !$this->registry->options['ctCensorMod']))
{
$usertitle = $this->censor_custom_title($usertitle);
}
$customtitle = $isadmin ?
1: // administrator - don't run htmlspecialchars
2; // regular user - run htmlspecialchars
if ($customtitle == 2)
{
$usertitle = fetch_word_wrapped_string($usertitle, 25);
}
}
}
else if ($customtitle != 1)
{
if (empty($usergroup['usertitle']))
{
$gettitle = $this->dbobject->query_first("
SELECT ranktitle
FROM " . TABLE_PREFIX . "ranks
WHERE minposts <= " . intval($this->existing['posts']) . " AND
usergroupid = " . intval($this->existing['usergroupid']) . "
ORDER BY minposts DESC
LIMIT 1
");
$usertitle = $gettitle['ranktitle'];
}
else
{
$usertitle = $usergroup['usertitle'];
}
$customtitle = 0;
}
$this->set('usertitle', $usertitle);
$this->set('customtitle', $customtitle);
}