Pomoc przy banerze ts3

Zombie
ts3
Hakens
Hakens

Witam, mam pytanie odnośnie banera dokładnie chodzi mi o https://lvlup.rok.ovh/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
Anno

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
Jebanany

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
Hakens

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
Anno

cache'ujesz dane 😄

Hakens
Hakens

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.