ShoutBox 1.1.1
Prezentuję kolejną wersję ShoutBox. Wszystkie główne zmiany zmiany zaszły w kodzie js. Kody php pozostały w zasadzie nie naruszone. Oto lista nowych rzeczy:
- Pluginy pod różne liby js
Do tej pory ShoutBox był oparty na bibliotece advAjax. Teraz oduzależniłem shouta od tego liba. Wystarczy załadować odpowiedni plugin i shout może chodzić również na prototype czy też jquery. Można łatwo dopisać własne pluginy pod inne liby - "Down" or "Up"
Do tej pory wiadomości pojawiały się na dole. Teraz jak chcemy możemy mieć je na górze. - Zdarzenia
Można podpiąć własny kod pod zdarzenie pojawienia się nowej wiadomości. Może to być wykorzystane, np. do dodania dźwięku. - Nowy sterownik bazy danych MsSQL
Począwszy od tej wersji dołączam sterownik dla bazy MsSQL napisany przez Michała Macierzyńskiego.
Pluginy pod różne liby js
ShoutBox został wzbogacony o kilka pluginów, dzięki czemu może chodzić nie tylko z biblioteką advAjax, ale również prototype czy też jquery. Można łatwo napisać pluginy pod inne liby. Aby załadować dany plugin należy go po prostu dołączyć do strony zaraz po dołączeniu głównego skryptu. Należy również pamiętać by dołączyć daną bibliotekę. Jeśli więc będziemy chcieli nadal korzystać z advAjax, piszemy:
<script type="text/javascript" src="scripts/advajax.js"></script>
<script type="text/javascript" src="scripts/ShoutBox.js"></script>
<script type="text/javascript" src="scripts/ShoutBox_advajax.js"></script>
Jeśli zaś korzystamy na stronie z jquery, nie ma więc potrzeby ładować advAjax tylko poto by chodził shout. Załadujmy więc plugin dla jquery:
<script type="text/javascript" src="scripts/jquery.js"></script>
<script type="text/javascript" src="scripts/ShoutBox.js"></script>
<script type="text/javascript" src="scripts/ShoutBox_jquery.js"></script>
"Down" or "Up"
Możemy teraz wybrać, czy chcemy by nasze wiadomości pojawiały się na dole (tak jak do tej pory), czy też na górze. Odpowiada za to czwarty parametr wywołania klasy. Jeśli go ustawimy na "up", wówczas nasze wiadomości będą pojawiać się na górze. Jeśli zaś ustawimy go na "down" lub wogóle nie ustawimy, wówczas będą pojawiały się na dole.
var sb = new ShoutBox('sb',null,null,"up");
sb.getMessages();
Zdarzenia
Dodałem możliwość podpinania własnych funkcji dla zdarzeń ShoutBoxa. Narazie jest to wprawdzie tylko jedno zdarzenie, ale być może dojdą inne. Tym zdarzeniem jest message, które jest wywoływane, gdy pojawi jakaś wiadomość. A poco to? A chociażby poto, by móc zasygnalizować dźwiękiem pojawienie się nowej wiadomości. Aby przypisać własną funkcję do zdarzenia, korzystamy z funkcji:
bind(event,data,fn)
, gdzie:
- event - zdarzenie pod jakie się podminamy
- data - nasze własne dane jakie chcemy przekazać do funkcji
- fn - nasza funkcja
Funkcja powinna posiadać jeden parametr wywołania, do którego zostaną przekazane nasze dane (data) oraz w params dodatkowe parametry zdarzenia.
var sb = new ShoutBox('sb');
sb.bind('message',{par1:'wartosc1', par2:'wartosc2'},function(data){
alert(data.par1 + ' ' + data.par2);
alert(data.params.actionName);
//jakis nasz kod
return true;
});
W powyższym kodzie pokazałem podpięcie się do zdarzenia message, przekazanie własnych parametrów (par1 oraz par2) do funkcji i wykonanie jakiegoś kodu. W data.params.actionName znajduje się nazwa akcji, z jakiej zostało wywołanie zdarzenie message. Może to być:
- read - odczytanie nowej wiadomości
- readall - odczytanie wiadomości bezpośrednio po załadowaniu strony
- write - pojawienie się wiadomości po jej napisaniu
- history - wiadomości przy przeglądaniu historii
- delete - wiadomość przy usuwaniu
- edit - wiadomości przy edycji
Zapewne z naszego punktu widzenia przydatne będą tylko zdarzenia dla read. Będzie można wówczas dać jakiś sygnał dźwiękowy ale o tym w następnym artykule.
Podsumowanie
Nowa wersja jest w pełni kompatybilna z poprzednią (1.1). Pliki jakie uległy zmianie to: ShoutBox.class.php, ShoutBox.js . No i doszły pluginy: ShoutBox_advajax.js, ShoutBox_prototype.js, ShoutBox_jquery.js . Nadpisując te zmienione pliki na starej wersji 1.1, należy pamiętać by dołączyć do strony skrypt ShoutBox_advajax.js, no chyba że chcemy korzystać z innego pluginu.