Pomoc przy banerze ts3

Hakens | 2017-10-04 07:57:45 UTC | #1

Witam, mam pytanie odnośnie banera dokładnie chodzi mi o
https://forum.lvlup.pro/t/ts3-gotowy-interaktywny-baner-teamspeak/3315
korzysta on z ts3 php framework

Pytanie brzmi w jaki sposób mogę wyświetlać tekst na banerze tylko danej grupie.
Liste użytkowników mam pobraną, używam foreach

próbowałem używać i session i cookie, ale dalej nie pokazuje się na banerze prawidłowo

jakieś sugestie, propozycje? Nie chodzi mi o podanie kodu(chyba że przykład), tylko proszę o wskazanie na czym się skupić aby to działało, dodam że zaczynam z php, podstawy znam.


Anno | 2017-10-04 12:31:43 UTC | #2

if($ip_ts3 == $ip_www)
{
  if($client_rang == $ranga)
  {
     echo 'masz range';
  }
  else
   {
     echo 'nie masz rangi';
    }
}

Tutaj masz na jakiej zasadzie to działa


Jebanany | 2017-10-17 18:57:23 UTC | #3

Dana grupa musi być w liście grup użytkownika, framework pobiera to jako listę po przecinku, więc musimy ją zamienić na array przez funkcję explode tj.

Po pierwsze, należy sprawdzić czy jest użytkownik o takim IP na serwerze, a po drugie, sprawdzić czy ma takie grupy, jakich wymagasz (podobnie, jak w poście powyżej - zasada działania taka właśnie jest).

IP sprawdzasz np. tak:

foreach($ts_users as $user){
    if($user['connection_client_ip'] == $_SERVER['REMOTE_ADDR']){
        if(in_array('ID_GRUPY', explode(',', $user['client_servergroups'])){
            // jeśli ID_GRUPY jest w grupach usera, to wykonuje ten warunek
        }
        break; //przerywa foreach, aby nie szukać dalej
    }
}

Tak to mniej więcej wygląda.


Hakens | 2017-10-14 00:14:10 UTC | #4

Dzięki, udało się po wielu trudach. Pokazywanie wiadomości dla niezarejestrowanych działa, lecz tylko wtedy kiedy if($need_ts) jest nie używany, lub kiedy odstęp łączenia się z serwerem i pobierania danych jest ustawiony na 0, lecz wtedy query wchodzi na serwer co sekundę, jest jakiś sposób żeby pokazywało się to prawidłowo a query nie wchodziło parę razy na sekundę?


Anno | 2017-10-14 06:34:07 UTC | #5

cache’ujesz dane :smile:


Hakens | 2017-10-14 12:36:29 UTC | #6

W jaki sposób bo przy próbie zrobienia
$stats['client']= $ts->clientList();

do pliku dodają mi się same id i klamry;
Zaś kiedy daje

$stats['client']=$ts->request("clientlist -ip -groups -client_nickname")->toList();

to są wszystkie dane ale nie działa.


Aylin | 2018-06-12 20:01:14 UTC | #7