This could be a fix.
In Memberlist.php:
'search' => '%' . strtr($smcFunc['htmlspecialchars']($_POST['search'], ENT_QUOTES), array('_' => '\\_', '%' => '\\%', '*' => '%')) . '%', 'search' => '%' . strtolower(strtr($smcFunc['htmlspecialchars']($_POST['search'], ENT_QUOTES), array('_' => '\\_', '%' => '\\%', '*' => '%'))) . '%',
$fields = array('member_name', 'real_name'); $fields = array('lower(member_name)', 'lower(real_name)');
Then in Search.php:
'match_possible_users' => 'real_name LIKE ' . implode(' OR real_name LIKE', $realNameMatches), 'match_possible_users' => 'lower(real_name) LIKE lower(' . implode(' OR real_name LIKE lower(', $realNameMatches) . ')',
And finally in ManageMembers.php
$_POST[$param_name] = strtotime($_POST[$param_name]);
} elseif ($param_name == 'membername')
{
$_POST[$param_name] = strtolower($_POST[$param_name]);
}
$query_parts[] = '(' . implode( ' LIKE {string:' . $param_name . '_normal} OR ', $param_info['db_fields']) . ' LIKE {string:' . $param_name . '_normal})';
$where_params[$param_name . '_normal'] = '%' . $parameter . '%'; if ($param_name == 'membername')
{
$query_parts[] = 'lower(' . implode( ') LIKE {string:' . $param_name . '_normal} OR lower(', $param_info['db_fields']) . ') LIKE {string:' . $param_name . '_normal}';
$where_params[$param_name . '_normal'] = '%' . $parameter . '%';
}
else
{
$query_parts[] = '(' . implode( ' LIKE {string:' . $param_name . '_normal} OR ', $param_info['db_fields']) . ' LIKE {string:' . $param_name . '_normal})';
$where_params[$param_name . '_normal'] = '%' . $parameter . '%';
}
Don't know if I missed anything else.
Tested only partially with MySQL.