Добрый день, товарищи.
Поставил вебку - очень понравилось. Хочу сказать отдельное спасибо автору!
Но не обошлось без маленьких багов, которые правил следующим образом.
Во - первых, если вы пользуетесь не geoIP а API, которую предложил автор, то есть шанс, что по IP ответ JSON будет fail
Я решил исправить эту ситуацию (не знаю насколько корректно, ибо с PHP у меня 0)
Тут я проверяю статус JSON ответа от сервера API. Если он fail то помечаю соответствующие переменные таким образом хх - код-ключ, "Не удалось определить" - если ошибка запроса то будет так писаться
PHP:
if (strcmp($array['status'],"success") == 0) {
$country_code = mb_strtolower($array['countryCode']);
$country_name = mb_strtolower($array['country']);
} else {
$country_code = "xx";
$country_name = "Не удалось определить";
}
Тогда в этом случае мы получим хх как код флага и сообщение "Не удалось определить" вместо страны. Скрин во вложении.
Ну и чтобы картинку страны отобразить (неизвестную) использовал авторскую. Для этого надо чуть ниже
HTML:
<div class="input-group mb-3" data-toggle="tooltip" data-placement="left" title="Страна">
<div class="input-group-prepend">
<span class="input-group-text" id="basic-addon1" style="width: 50px;justify-content: center;">
<?php echo (strcmp($country_code, "xx") == 0)
? '<i class="fa fa-globe"></i>'
: '<span class="flag-icon flag-icon-'.$country_code.'"></span>';
?>
</span>
</div>
<input type="text" class="form-control" value="<?=$country_name;?>" aria-describedby="basic-addon1" disabled>
</div>
В данном коде, если код страны получился "хх", т.е. когда не смогли определить страну, то тогда выводится тот самый серый глобус (неизвестно)
Все это делается в user.php
Такая ошибка будет встречаться и тогда, когда статистика игрока ведется с локальным IP
Удачи и еще раз спасибо автору!!! Надеюсь будет полезно
PS. Как правильно изменить тему приложения? Через template? Или через view?
PSS. Также изменил проверку на бан игрока. Считаю что автор выбрал не совсем корректный вариант проверки
steam_id на не steam_id может быть всегда один для разных игроков, например STEAM_ID_LAN, тогда в сравнении на ник или steam_id может выпасть несколько игроков или один, но далеко не тот, что реально является забаненым. В следствии этого веб приложение может выдать информацию, что якобы игрок с ником таким-то - забанен, хотя это не так. Т.е. ники разные а steam_id одинаковый, ну оно и понятно, что steam_id будет для большинства одинаковый.
Поэтому предлагаю исправить в user.php выборку для проверки на бан на такой
$ban = DB::run('SELECT
ban_reason
,
ban_created
,
ban_length
,
expired
FROM
amx_bans
WHERE
ban_length
!= -1 AND
ban_length
!= 1 AND
((player_id
= ? AND player_nick
= ?) OR (player_ip
= ? AND player_nick
= ?))', [ $row['steamid'], $row['name'], $row['ip'], $row['name'] ])->fetch(PDO::FETCH_ASSOC);
PSSS. Ну и добавил недостающий скин, сделал по подобию автора. Как смог)) пользуйтесь на здоровье. Ибо этой иконки для дуалов нет(
89 строчка