not forward compatible - if a prefix is similar to one of the default admin dropdown values it will not work..
for example, if you or the staff creates a prefix called "close", "open", etc .. it will conflict with existing values
hence, this modification may have a negative affect on new options that jelsoft may add (in the future) to the admin moderation dropdown menu
a fix would be to prepend 'p_' to each prefix value (forumdisplay_start)
PHP Code:
if ($foruminfo['allowprefix'])
{
if (!function_exists(insert_to_template))
{
function insert_to_template($templatename, $remark, $location, $position = 'after')
{
global $vbulletin;
if ($position == 'after')
{
$location = $remark . $location;
}
else if ($position == 'before')
{
$location = $location . $remark;
}
$vbulletin->templatecache[$templatename] = str_replace($remark, $location, $vbulletin->templatecache[$templatename]);
}
}
insert_to_template('FORUMDISPLAY', '<optgroup label=\"____________________\">', $vbulletin->templatecache['forumdisplay_inlineprefix'], 'before');
$prefix_array = explode("\r\n", trim($foruminfo['threadprefix']));
foreach ($prefix_array as $key => $value)
{
$inlineprefix .= "\t\t\t\t\t<option value=\"p_" . urlencode($value) . "\">$value</option>\r\n";
//DEVDEBUG("prefix = ". $value);
}
unset($prefix_array);
}
and remove 'p_' in inlinemod_action_switch before any action is taken
I changed inlinemod_action_switch to:
PHP Code:
if ($foruminfo['allowprefix'])
{
$prefix_array = explode("\r\n", trim($foruminfo['threadprefix']));
$newprefix = urldecode($_POST['do']);
// remove 'p_'
$newprefix = str_replace('p_', '', $newprefix);
if (in_array($newprefix, $prefix_array))
{
/**
* $newprefix exists in database so let's go ahead and use it
* $newprefix exists so let's change $_POST action
* Check threadids exist
*/
$handled_do = true;
$_POST['do'] = 'changeprefix';
if (empty($vbulletin->GPC['tlist']))
{
eval(standard_error(fetch_error('you_did_not_select_any_valid_threads')));
}
if (count($vbulletin->GPC['tlist']) > $threadlimit)
{
eval(standard_error(fetch_error('you_are_limited_to_working_with_x_threads', $threadlimit)));
}
$threadids = implode(',', $vbulletin->GPC['tlist']);
}
// we're finished with $prefix_array
unset($prefix_array);
}