(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ć:
Kod:
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:
Kod:
<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
):
Kod:
<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>
(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 ):
Kod:
<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.
powiesz mi jeszcze, jak mogę uzyskać taki efekt?
W footer zamiast tego:
Kod:
const statusOnline = '<i class="fa fa-circle" style="color: green;"></i>';
próbowałem dodać takie coś:
Kod:
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:
Kod:
<span id="wlascicielStatus"></span>
dodam takie coś:
Kod:
<span id="wlascicielStatus" data-toggle="tooltip" title="" data-original-title="Online"></span>
to wtedy działa, ale pokazuje cały czas online.