Webboard

Pełna wersja: Dwukolorowy nick, wczytywanie js'u
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Hej, poprawiłem grupę na dwukolorową wg kodu  - https://codepen.io/Matslom/pen/dMLdLK
Wszystko działa, po wejściu na forum i odświeżeniu strony widać efekt. Kiedy ktoś napisze na czacie (mający ten format grupy), jego login nie koloruje się na 2 kolory, ale zostaje na domyślnym, bez koloru. Póki co, obszedłem to w taki sposób, że dodałem kolor dla klasy podanej w formacie loginu. Nie chciałbym jednak, aby trzeba odświeżać stronę, aby zobaczyć 2-kolorową rangę. Ma ktoś jakiś pomysł?
Podaj format tej grupy, sposób w jaki umieściłeś ten skrypt na forum, szablon w jakim kod się znajduje, usuń te rozwiązanie "zastępcze" tymczasowo i jeżeli jest taka możliwość konto testowe umieść w takiej grupie żeby kolor też miał być dwukolorowy.
<span class="group"><strong>{username}</strong></span>
- format loginu
Kod PHP:
<script>$('.group').each(function() {
  var 
group = $(this);
  var 
nick group.text();
  var 
length Math.round(nick.length/2);
  var 
colors '<span class="jeden">'nick.slice(0length) +'</span><span class="dwa">'nick.slice(length) +'</span>';
  
group.html(colors);
});</
script>

<
script>$('.groupw').each(function() {
  var 
groupw = $(this);
  var 
nick groupw.text();
  var 
length Math.round(nick.length/2);
  var 
colors '<span class="trzy">'nick.slice(0length) +'</span><span class="cztery">'nick.slice(length) +'</span>';
  
groupw.html(colors);
});</
script>

<
script>$('.groupm').each(function() {
  var 
groupm = $(this);
  var 
nick groupm.text();
  var 
length Math.round(nick.length/3);
  var 
colors '<span class="piec">'nick.slice(0length) +'</span><span class="szesc">'nick.slice(length) +'</span>';
  
groupm.html(colors);
});</
script
- szablon footer, na samym końcu
Usunąłem rozwiązanie tymczasowe, ewentualnie CTRL+F5
Nie mam takiej możliwości, ale wystarczy kliknąć na avatar użytkownika Loniu
Zamknij kod w funkcji
Kod:
function koloroweNicki() {
  $('.group').each(function() {
    var group = $(this);
    var nick = group.text();
    var length = Math.round(nick.length/2);
    var colors = '<span class="red">'+ nick.slice(0, length) +'</span><span class="black">'+ nick.slice(length) +'</span>';
    group.html(colors);
  });
}
a następnie ją wywołaj w pliku od shoutboxa w momencie wysłania wiadomości. Wyszukaj sobie komentarz:
Kod:
// insert new shouts
No i nic, dodałem to pod pierwszym komentarzem, potem również pod drugim i nic.
[attachment=12318]
Lepiej w sumie wywołać funkcję podczas parsowania wiadomości. Uruchomi się wtedy ona podczas wyświetlania każdej wiadomości. Jeśli jednak wolisz wywoływać funkcję jedynie po napisaniu nowej wiadomości to znajdź:
Kod:
} else {
                            $('#shoutbox .data').prepend( $(data.html).hide().fadeIn() );
                        }
zamień na:
Kod:
} else {
    $('#shoutbox .data').prepend( $(data.html).hide().fadeIn() );
    koloroweNicki();
}
 
W załączniku znajdziesz pierwsze rozwiązanie.
[attachment=12319] [attachment=12320]

Btw komentarz nie oznaczał gdzie dokładnie masz to dodać, a jedynie miejsce od którego masz analizować kod.
Ważne: kod z załącznika jest dla najnowszej wersji dvz shoutbox na chwilę obecną, tj. 2.3.2.