[ALPHA] MATERIAL Admin - ReFork на основе [SB: 1.5.4.7] [Bootstrap 3]

Статус
В этой теме нельзя размещать новые ответы.

-=Vampir=-

Переводчик и тестер
Сообщения
229
Реакции
73
@AS TRO, сделаю тогда регулируемым параметром в config.php, чтобы каждый сам себе выбирал значение.
--- Добавлено позже ---
Поделюсь результатом пока что:
ce9b89216615.png
На фоне другой админ.

Сейчас доработаю всё, и оставлю здесь информацию, как сделать так же.
Правда насчёт местоположения аватара я не уверен, ибо я не верстальщик :)
--- Добавлено позже ---
Сделал.

Перед тем, как делать, обратите внимание: Я давно не обновлял свой SourceBans, потому номера строк могут различаться.
Для работы требуется настроенный Steam Web API ключ. Если он не указан - аватарки соответственно не будут отображаться.
В includes/system-functions.php перед строкой ?> вставить это:
PHP:
function GetCommunityIDFromSteamID2($sid) {
  /**
    * Thanks Valve and AlliedModders!
    * https://developer.valvesoftware.com/wiki/SteamID#Steam_Community_ID_as_a_Steam_ID
    * https://forums.alliedmods.net/showthread.php?t=60899
    *
    * STEAM_X:Y:Z
    * V=76561197960265728
    * W=Z*2+V+Y
    */

  $result = array();
  $res = preg_match('/STEAM_[0-9]:(0|1):([0-9]{1,})/', $sid, $result);
  if ($res) return ($result[2] * 2) + 76561197960265728 + $result[1];
  else return false;
}

function GetUserAvatar($sid) {
  global $userbank;
  $AvatarFile = "themes/new_box/img/profile-pics/1.jpg";
  $UserFound = false;
  $CacheFile = sprintf('%simages/avatars.cache', ROOT);
  if ($userbank->is_logged_in()) {
    $communityid = GetCommunityIDFromSteamID2($sid);
    if (file_exists($CacheFile)) {
      if (is_readable($CacheFile) && is_writable($CacheFile)) {
        $Cache = json_decode(file_get_contents($CacheFile), true);
        foreach ($Cache['cache'] as &$ce) {
          if ($ce['sid'] == $communityid && $ce['time'] < time()+AVATAR_LIFETIME) {
            $UserFound = true;
            $AvatarFile = $ce['avatar'];
            break;
          }
        }

        if (!$UserFound && defined('STEAMAPIKEY') && !empty(STEAMAPIKEY)) {
          // Cache avatar
          $SteamResponse = json_decode(file_get_contents(sprintf("http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=%s&steamids=%d", STEAMAPIKEY, $communityid)));
          if (isset($SteamResponse->response->players[0]->avatarfull)) {
            $AvatarFile = $SteamResponse->response->players[0]->avatarfull; // return this avatar
            // And write to cache
            $CacheWritted = false;
            foreach ($Cache['cache'] as &$ce) {
              if ($ce['sid'] == $communityid) {
               $CacheWritted = true;
                $ce['avatar'] = $AvatarFile;
                $ce['time'] = time()+AVATAR_LIFETIME;
                break;
              }
            }
            if (!$CacheWritted) $Cache['cache'][] = array('sid' => $communityid, 'avatar' => $AvatarFile, 'time' => time()+AVATAR_LIFETIME);
            file_put_contents($CacheFile, json_encode($Cache));
          }
        }
      }
    } else {
      file_put_contents($CacheFile, '{"cache":[]}');
      return GetUserAvatar($sid);
    }
  }
  return $AvatarFile;
}

В файле config.php вписываем перед строчкой с Steam Web API ключом (при необходимости увеличиваем или уменьшаем значение):
PHP:
define('AVATAR_LIFETIME', 86400); // Avatar lifetime in cache (seconds)

Создаём файл /images/avatars.cache с правами 0664 и добавляем в него следующий текст:
C-подобный:
{"cache":[]}
Замечание: Если файл не будет создан вручную, скрипт попытается сам автоматически создать его. Но если не будет доступа на запись в папку, возможна ошибка.
SidePanel.png
В themes/new_box/page_header.tpl на строке 148 заменить:
C-подобный:
<img src="themes/new_box/img/profile-pics/1.jpg" />
на:
C-подобный:
<img src="{$avatar}" />

В pages/header.php перед строкой 99:
PHP:
$theme->display('page_header.tpl');
Вставить это:
PHP:
$theme->assign('avatar', GetUserAvatar());
AdminList.png
В themes/new_box/page_admin_admins_list.tpl находим строчку:
C-подобный:
<h2>Связь</h2>
И перед ней вставляем:
C-подобный:
<div style="text-align: center;padding-bottom: 20px;"><img src="{$admin.avatar}"></div>

В pages/admin.admins.php ищем:
PHP:
array_push($admin_list, $admin);
И перед этим вставляем:
PHP:
$admin['avatar'] = GetUserAvatar($userbank->GetProperty('authid', $admin['aid']));
Сделал все и вот что https://goo.gl/Xcu7RF
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
@-=Vampir=-, Что на строке 1211?
--- Добавлено позже ---
Хотя щас скачаю SB последней версии и попробую на нём повторить.
--- Добавлено позже ---
Поставил, и всё заработало из коробки. Кроме аватарки в боковой панели. Для этого внёс правку в pages/header.php (добавил её в оригинальный пост)
PHP:
$theme->assign('avatar', GetUserAvatar($userbank->GetProperty('authid')));
PHP 5.5.9
 
Последнее редактирование:

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
@-=Vampir=-, могу лишь предложить убрать проверку Steam API Key. Ибо непонятно, что именно ему не нравится.
 

alps

Участник
Сообщения
13
Реакции
1
После второго шага остается пустое окно (только оболочка СБ) и step=2 в адресной строке, ничего не происходит. С чем может быть связано? cPanel
 

AS TRO

Участник
Сообщения
1,159
Реакции
750
@alps, Значит не включен показ ошибок у тебя. А так, значит данные не верно ввел и сб коннект получить не может. На странице step=2 происходит связь с бд.
 

alps

Участник
Сообщения
13
Реакции
1
В config.php тоже никаких изменений при этом, так и должно быть?
 

AS TRO

Участник
Сообщения
1,159
Реакции
750
@alps, Ты так то на шаге "установка", и после step=2 как раз и пойдет запись данных в файл config.php, при условии, что данные бд верны.
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
@AS TRO, в СБ и много где идут такие проверки. Так что не думаю.
 

selax

Добрая душа
Сообщения
1,172
Реакции
521
Я конечно глупый вопрос задам сейчас, но как исправить кодировку?
C-подобный:
sm_ban selax 5 Тест
[SM] "selax [no voice]" забанен на 5 минут (причина: � � � � � � � �).
 

kurts7

Участник
Сообщения
5
Реакции
1
Здравствуйте,
возникает проблема с adminlist
по ссылке mysite.ru/index.php?p=adminlist попадаю на главную
Подскажи, как добавить админлист?
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
@kurts7, он отключен у всех до следующего обновления.
 

Rabb1t

Амбассадор
Сообщения
2,968
Реакции
1,429
C-подобный:
You shoudnt be here. looks like we messed up
Такая ошибка при входе в учетную запись что делать?
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу