Если пользователь регистрировал короткое имя и такое сочетание символов ника этого пользователя находилось в строке модераторов, то его статус показывался как модератор.
Например имеем модератора "Леголекс". если зарегать ник "лекс" то в постах у этого ника будет показываться статус модератор. Но только показываться. Никакими полномочиями модератора этот ник обладать не будет.
Итак исправляем.
Для начала просто запретим регать короткие именя меньше трех символов.
Для этого открываем файл register.php и находим примерно на 89 строке строку кода:
CODE:
if( empty($inmembername) || empty($password) || empty($emailaddress) ) $blankfields = 1;
И заменяем на строку:
CODE:
if( empty($inmembername) || strlen($inmembername)<3 || empty($password) || empty($emailaddress) ) $blankfields = 1;
Все. Теперь можно будет зарегать ник который имеет минимум три символа.
Теперь собственно разбираемся с ошибкой.
Откроем файл lib.php и найдем функцию moderator($where,$data)
В функции найдем строку кода:
CODE:
global $exbb,$modoutput,$lang,$lang_moder,$mod_ids;
И заменим ее так:
CODE:
global $exbb,$modoutput,$lang,$lang_moder,$mod_ids,$moderators;
То есть добавим в конец еще одну переменную $moderators.
Теперь откроем файл topic.php и найдем функцию setup_member($named).
Найдем в ней строку:
CODE:
global $exbb,$names,$lang,$vars,$ranks,$inmembmod,$modoutput,$threadstate;
И добавим в конец все ту же переменную. Вот так:
CODE:
global $exbb,$names,$lang,$vars,$ranks,$inmembmod,$modoutput,$threadstate,$moderators;
Далее находим строку:
CODE:
elseif (strpos($modoutput,$user['name'])) {
И заменяем на строку:
CODE:
elseif (array_key_exists($named, $moderators)) {
Ну собственно и все.