Status Online w kontakcie

Założony przez  Shanke.

Adres forum:
GameSkill.pl

Wersja silnika:
Najnowsza

Opis problemu:
Chciałbym dodać status online/offline a'la IPB do kontaktu z administracją używając tego Link (poradnik jest tu Link) ale nie zbyt mi to działa. Pokazuję się tylko dla Roughster i Van a dla Kaneki już nie. Do tego cały czas jest offline. Także nie wiem czy w dobre miejsca dodaje. Czy ktoś by pomógł mi dojść do tego, jak dokładnie ustawić to? JS dodałem do footer tak jak pisał @Fyeem.
(07.09.2019, 11:30)Fyeem napisał(a): Zauważ, że umieściłeś na stronie 2 znaczniki span o tym samym id (<span id="wlascicielStatus"></span>). Nie można tak. Dla drugiego administratora musisz zmienić tą nazwę, np. dodając 2 na końcu id.

Wtedy też musisz skopiować:
const wlascicielStatus = $("#wlascicielStatus"); // Miejsce w sidebar w kontakcie, w którym wyswietli sie status
i również tu podmienić to ID.

Aktualnie JS wygląda tak:

<script type="text/javascript">
    $(function() {
  const row = $(".statuskontakt2"); // Rodzic: kto jest online

  const wlascicielStatus = $("#wlascicielStatus"); // Miejsce w sidebar w kontakcie, w którym wyswietli sie status
  const wlascicielRank = $(".wlasciciel"); // Klasa rangi administratora

  const wlascicielStatus2 = $("#wlascicielStatus2"); // Miejsce w sidebar w kontakcie, w którym wyswietli sie status
  const wlascicielRank2 = $(".wlasciciel"); // Klasa rangi administratora

  const moderatorStatus = $("#moderatorStatus"); // Miejsce w sidebar w kontakcie, w którym wyswietli sie status
  const moderatorRank = $(".moderator"); // Klasa rangi administratora

  // Formatowanie wyświetlania tego statusu
  const statusOnline = '<span style="color: green;">Online</span>';
  const statusOffline = '<span style="color: red;">Offline</span>';

  if (row.find(wlascicielRank).text() == " Roughster") {
    wlascicielStatus.html(statusOnline);
  } else {
    wlascicielStatus.html(statusOffline);
  }

  if (row.find(wlascicielRank2).text() == " Kaneki") {
    wlascicielStatus2.html(statusOnline);
  } else {
    wlascicielStatus2.html(statusOffline);
  }

  if (row.find(moderatorRank).text() == " Van") {
    moderatorStatus.html(statusOnline);
  } else {
    moderatorStatus.html(statusOffline);
  }        
});
</script>

I jak ja byłem na forum + Van to pokazywało, że jesteśmy online, ale jak już wszedł Kaneki, to ja oraz Kaneki jesteśmy offline, a Van jest nadal online.

Edit: minęło 15 minut, Kaneki zniknął z listy "Kto jest online" i znowu pokazuje mnie jako Online.
Zgadza się, do tej pory jeśli taką rangę miała tylko jedna osoba - wszystko było w porządku.
Spróbuj tego kodu (i jeszcze usunąłem wlascicielRank2, bo o tym przecież nie napisałem ;)):
<script type="text/javascript">
    $(function() {
        const row = $(".statuskontakt2"); // Rodzic: kto jest online

        const wlascicielStatus = $("#wlascicielStatus"); // Miejsce w sidebar w kontakcie, w którym wyswietli sie status administratora
        const wlascicielRank = $(".wlasciciel"); // Klasa rangi administratora

        const wlascicielStatus2 = $("#wlascicielStatus2"); // Miejsce w sidebar w kontakcie, w którym wyswietli sie status administratora2

        const moderatorStatus = $("#moderatorStatus"); // Miejsce w sidebar w kontakcie, w którym wyswietli sie status moderatora
        const moderatorRank = $(".moderator"); // Klasa rangi moderatora

        // Formatowanie wyświetlania tego statusu
        const statusOnline = '<span style="color: green;">Online</span>';
        const statusOffline = '<span style="color: red;">Offline</span>';

        if (row.find(wlascicielRank).text().split(' ').includes('Roughster')) {
            wlascicielStatus.html(statusOnline);
        } else {
            wlascicielStatus.html(statusOffline);
        }

        if (row.find(wlascicielRank).text().split(' ').includes('Kaneki')) {
            wlascicielStatus2.html(statusOnline);
        } else {
            wlascicielStatus2.html(statusOffline);
        }

        if (row.find(moderatorRank).text().split(' ').includes('Van')) {
            moderatorStatus.html(statusOnline);
        } else {
            moderatorStatus.html(statusOffline);
        }
    });
</script>
Cytat:w pół dnia stałeś się lepszym pytonistą niż kawenanowo kiedykolwiek programisto :3 ~ Riess 13.11.2018 16:28
Cytat:ale z tą nazwą to fyeem ma racje  ~ Divir 29.07.2019 16:08
(07.09.2019, 12:10)Fyeem napisał(a): Zgadza się, do tej pory jeśli taką rangę miała tylko jedna osoba - wszystko było w porządku.
Spróbuj tego kodu (i jeszcze usunąłem wlascicielRank2, bo o tym przecież nie napisałem ;)):
<script type="text/javascript">
$(function() {
const row = $(".statuskontakt2"); // Rodzic: kto jest online

const wlascicielStatus = $("#wlascicielStatus"); // Miejsce w sidebar w kontakcie, w którym wyswietli sie status administratora
const wlascicielRank = $(".wlasciciel"); // Klasa rangi administratora

const wlascicielStatus2 = $("#wlascicielStatus2"); // Miejsce w sidebar w kontakcie, w którym wyswietli sie status administratora2

const moderatorStatus = $("#moderatorStatus"); // Miejsce w sidebar w kontakcie, w którym wyswietli sie status moderatora
const moderatorRank = $(".moderator"); // Klasa rangi moderatora

// Formatowanie wyświetlania tego statusu
const statusOnline = '<span style="color: green;">Online</span>';
const statusOffline = '<span style="color: red;">Offline</span>';

if (row.find(wlascicielRank).text().split(' ').includes('Roughster')) {
wlascicielStatus.html(statusOnline);
} else {
wlascicielStatus.html(statusOffline);
}

if (row.find(wlascicielRank).text().split(' ').includes('Kaneki')) {
wlascicielStatus2.html(statusOnline);
} else {
wlascicielStatus2.html(statusOffline);
}

if (row.find(moderatorRank).text().split(' ').includes('Van')) {
moderatorStatus.html(statusOnline);
} else {
moderatorStatus.html(statusOffline);
}
});
</script>

Wszystko działa jak należy.
I teraz, żeby z online nie zmieniało mnie na offline (jak jestem aktywny powiedzmy 10h w bezczynności) to muszę przynajmniej raz na 15 minut odświeżyć stronę?
I w przypadku gdy włącze i wyłącze forum to muszę poczekać 15 minut aż usunie mnie z listy "Kto jest online" i zmieni mnie na offline, tak?
(07.09.2019, 12:35)TSUNAMI napisał(a): I teraz, żeby z online nie zmieniało mnie na offline (jak jestem aktywny powiedzmy 10h w bezczynności) to muszę przynajmniej raz na 15 minut odświeżyć stronę?
Z tego co kojarzę to tak.
(07.09.2019, 12:35)TSUNAMI napisał(a): I w przypadku gdy włącze i wyłącze forum to muszę poczekać 15 minut aż usunie mnie z listy "Kto jest online" i zmieni mnie na offline, tak?
Nie, po wyjściu z forum jesteś offline (sprawdź wyłączając kartę i wchodząc na forum w karcie incognito).

Z tym że pamiętaj, że to działa po załadowaniu strony, nic nie odświeża się dynamicznie, jeśli użytkownik przez kilka godzin nie odświeży strony a Ty w tym czasie wyjdziesz, on będzie widział Cię jako online. Skrypt po prostu sprawdza to, co generuje samo MyBB w kto jest online.
Cytat:w pół dnia stałeś się lepszym pytonistą niż kawenanowo kiedykolwiek programisto :3 ~ Riess 13.11.2018 16:28
Cytat:ale z tą nazwą to fyeem ma racje  ~ Divir 29.07.2019 16:08
(07.09.2019, 14:30)Fyeem napisał(a):
(07.09.2019, 12:35)TSUNAMI napisał(a): I teraz, żeby z online nie zmieniało mnie na offline (jak jestem aktywny powiedzmy 10h w bezczynności) to muszę przynajmniej raz na 15 minut odświeżyć stronę?
Z tego co kojarzę to tak.
(07.09.2019, 12:35)TSUNAMI napisał(a): I w przypadku gdy włącze i wyłącze forum to muszę poczekać 15 minut aż usunie mnie z listy "Kto jest online" i zmieni mnie na offline, tak?
Nie, po wyjściu z forum jesteś offline (sprawdź wyłączając kartę i wchodząc na forum w karcie incognito).

Z tym że pamiętaj, że to działa po załadowaniu strony, nic nie odświeża się dynamicznie, jeśli użytkownik przez kilka godzin nie odświeży strony a Ty w tym czasie wyjdziesz, on będzie widział Cię jako online. Skrypt po prostu sprawdza to, co generuje samo MyBB w kto jest online.
Ok, dzięki wielkie.
@Fyeem powiesz mi jeszcze, jak mogę uzyskać taki efekt?
[Obrazek: qHC8Ow6.png]

W footer zamiast tego:
const statusOnline = '<i class="fa fa-circle" style="color: green;"></i>';
próbowałem dodać takie coś: 
const statusOnline = '<i class="fa fa-circle" data-toggle="tooltip" title="" data-original-title="Online" style="color: green;"></i>';
ale niestety nie działa
a jak do indexu do kontaktu zamiast tego:
<span id="wlascicielStatus"></span>
dodam takie coś:
<span id="wlascicielStatus" data-toggle="tooltip" title="" data-original-title="Online"></span>
to wtedy działa, ale pokazuje cały czas online.



Użytkownicy przeglądający ten wątek:

1 gości