Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> ShoutBox (mini chat), [klasa] php5
nospor
post
Post #1





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




info (demo na stronie)
pobierz

Prezentuje Wam moją nową klasę ShoutBox. Jak nazwa wskazuje jest to ShoutBox (IMG:style_emoticons/default/smile.gif)
Zadaniem klasy jest zarządzanie dodawaniem jak i pobieraniem wiadomości. Wiadomości zapisywane są w bazie MySql. W paczce załączony jest sql do wygenerowania tabeli.
Mozna określić ile na początek należy zaladować wiadomości (gdy wchodzimy pierwszy raz na strone), limit pobrania wiadomości (by nikt nie pobral nam calej tabeli). Możemy sami określic jak chcemy by formatowany był czas, nick, wiadomość. Wystarczy tylko zaimlementować interfejs ShoutBoxFormatter, ktory zostal stworzony na tę okoliczność. Oczywiscie klasa dostarczą domyslną implementację.
Klasa generuje xml z wiadomościami. Dodatkowo każda wiadomość zawiera informację, kto ją napisal:
- administrator
- uzytkownik, ktory ją teraz czyta
- kazdy inny uzytkownik
Dzieki tej informacji można w inny sposob wyswietlic wiadomość.

Do klasy można zapodać ID ostatnio czytanej wiadomości, dzięki czemu klasa będzie biegla do bazy tylko wtedy, gdy pojawią sie nowe wiadomości.
Można zapodać wlasną funkcję lączącą sie z bazą, dzieki temu połączenie do bazy bedzie nawiązywane tylko wtedy gdy to konieczne.

Administrator może dodawać wlasne wiadomości w przypadku roznych okoliczności.

Do wersji 1.0 planuje dorobic cache'owanie wiadomości, zapamietywanie stanu sesji uzytkownika (nawet jak odswierzy strone, to dostanie wszystkie wiadomosci co czytal od poczatku) no i oczywiscie wasze uwagi.

Klasa nie udostępnia wlasnego logowania. Można ją bez problemu podlączyc do wlasnego systemu i przekazac klasie dane uzytkownika.

W paczce znajduje się przykladowy skrypt korzystający z klasy. Zawiera on banalne logowanie, w ktorym nalezy zapodać nick, haslo i kolor.
Jesli podamy nick blocked, uzytkownik ten nie bedzie mogl pisac wiadomosci. Przy probie wyslania wiadomosci, otrzyma komunikat od admina.

Zapraszam do korzystania, testowania i zglaszania uwag (IMG:style_emoticons/default/smile.gif)


ps2: podziękowania dla mike_mech za CSS (IMG:style_emoticons/default/smile.gif)

edit:
Skrypt, ktory korzysta z klasy to tylko przyklad, by zademonstrować jak uzywać tej klasy. Pisany byl na szybko by moc pokazac cos w praktyce. Takze system logowania, zapisywanie błędow jak widać nie należą do najbardziej rozbudowanych (IMG:style_emoticons/default/smile.gif)
Prosze więc komentarze wstylu: ze jest wyjatek a potem trigger se darowac, bo to jest kod poza klasą (zresztą juz nie ma bo usunalem, by nie drażnić co poniektorych)

edit 2007-01-18
No i jest wersja 0.8.
Z ważniejszych nowości:
- Możliwość podpiecia drugiej tabeli, z której bedziemy czerpac dodatkowe dane. Jest to przydatne dla nowosci opisanej ponizej.
- Każdy użytkownik może określić wygląd swojej wiadomości (o ile mu na to pozwolimy (IMG:style_emoticons/default/winksmiley.jpg) ). W przykladzie, co jest zalączony do klasy, kazdy uzytkownik może określić kolor swojego nicka. Skrypt na chwile obecna ma zaimplementowane ustawianie dla danej wiadomosci klas: diva wiadomosci, czasu, nicka, textu oraz styli dla: diva wiadomosci, czasu, nicka, tekstu.
- Moderacja wiadomości (edycja, usuwanie). Do tego celu wprowadzilem kolejny sterownik. Mozna okreslic globalnego moderatora lub tez moderatora na konkretne wiadomości (np. uzytkownik może moderowac tylko swoje wiadomości). Kasowanie odbywa sie poprzez wcisniecie ikonki usuwania. Aby edytowac należy kliknąc na tekscie wiadomości i.... sami zobaczycie.
- Po ostatnich postach uzytkownika, co mial ID usera jako tekst, wprowadzilem ulatwienie na te okolicznosc.
- inne drobne poprawki

Edit 2007-03-26
Wersja 1.0. Nowości:
przeglądanie historii (w przykładzie zwykli userzy mają ograniczone przegladanie. Ja moge całą przegladac. Oczywiscie jest to konfigurowalne)
- blokada scrolla - gdy cos czytamy a ktos cos napisze to nam juz sie to nie przesuwa do nowej wiadomosci
- poprawiony antyflooding
- komendy. wpiszcie sobie, np. /help i cos sie stanie . Oczywiscie kazdy bedzie mogl tworzyc swoje wlasne komendy.
- uzytkownicy online. Mozecie podpiąc swoj wlasny mechanizm online, lub korzystac z mojego banalnego co dołączylem do przykladu
- skrypt js napisalem teraz jako klasa
- możliwość skakania po użytkownikach online przy użyciu tabulatora. Wpiszcie pierwsze litery nicka, wciśnijcie tabulator i skrypt sam wam znajdzie usera. Możecie też nic nie wpisywać, wowczas skakać będziecie po wszystkich userach.

edit 2007-06-14
Wersja 1.1 wprowadza interfejs baz danych, umożliwiający przechowywanie danych gdziekolwiek.

edit 2008-06-16
wersja 1.2 http://nospor.pl/shoutbox-1.2-n30.html

Poprawienie obsługi komend
Kompresja gzip
Automatyczne czyszczenie starych wiadomości
Zmiana metod formatujących
Logowanie IP
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
sawic
post
Post #2





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 24.05.2005

Ostrzeżenie: (0%)
-----


No tak. Takie proste.
Powinienem sam na to wpaść. Wstyd.

Mam jeszcze jeden mały problem z wyświetlaniem tego pod ff 2.0.
Tzn problem nie leży w Twoim skrypcie a w dropdown menu w połączeniu z Twoim skryptem.

Prześlę ci linka na PW, aby nie być tu posądzonym o kryptoreklamę.
Prowadzę stronę o tematyce bukmacherskiej i nie wiedzieć czemu jakoś jest źle odbierana przez ludzi.
Zaraz by mnie pojechali za spamowanie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Jak będziesz chciał to zerkniesz, jak nie to trudno.

Pozdrawiam

Witam ponownie.
Napotkałem jeszcze 2 małe problemy używając shoutbox-a.

Pierwszy to taki, że shoutbox znajduje się na jakiejś stronie, ale ta sama strona wyświetlana jest przy różnych parametrach w $_GET. Dodatkowo na serwerze mam mod_rewrite z regułkami na guglo lubne adresy.
W efekcie czego shoutbox działa tylko na www.mojastrona.pl, a z kolei na www.mojastrona.pl/parametr.html już nie działa.

W konsoli javy widzę:

GET http://www.strona.pl/parametr/shoutbox/Sho...iqid=1728109331

gdzie oczywiście w tym katalogu shoutbox-a nie ma. Należało by podać adres bezwzględny do pliku ShoutBox.php5, tylko gdzie to zrobić. Konsola pokazuje błąd w pliku advajax.js (line 287), ale wiem, że to nie tam trzeba poprawiać.


Druga sprawa, to zrobiłem, że niezalogowane osoby widzą co jest pisane, natomiast nie mogą pisać. I wszystko działa ok, poza tym, że w logu dostaję cał czas takie ostrzeżenie:

Undefined index: user
Plik: /home/mojastrona/shoutbox/ShoutBox.php5
Linia: 72
Undefined index: id
Plik: /home/mojastrona/shoutbox/ShoutBox.php5
Linia: 72

Mógłbym podawać cokolwiek, a później wpisać, że te "cokolwiek" nie może wysłać wiadomości, jednak nie bardzo by to współgrało z moim systemem logowania.

Czy jest jakiś sposób aby powyższe niedogodności poprawić ?

Pozdrawiam

Ten post edytował sawic 1.12.2006, 16:47:07
Go to the top of the page
+Quote Post

Posty w temacie
- nospor   ShoutBox (mini chat)   26.08.2006, 11:19:55
- - dr_bonzo   Zaczne od wad (moze dojde do zalet ): * [SQL] pob...   26.08.2006, 13:04:42
- - sf   Nie wiem czemu, ale czasem wiadomość, którą wpisze...   26.08.2006, 13:10:48
- - nospor   Cytata ogonki?Wejdź na moj shoutbox online a ...   26.08.2006, 13:11:46
- - dr_bonzo   CytatByc moze źle skonfigurowales Js sie sypie, j...   26.08.2006, 13:48:03
- - nospor   Ok, jest nowa wersja 0.7.5 Poprawki: - zlikwidowan...   26.08.2006, 16:30:21
- - mike_mech   Jupi!!! Zostałem wymieniony w napisac...   28.08.2006, 12:04:25
- - nospor   CytatA na poważnie to przydałoby się jeszcze scrol...   28.08.2006, 12:21:00
|- - mike_mech   Cytat(nospor @ 28.08.2006, 13:21 ) Teraz ...   28.08.2006, 12:23:21
|- - Cypherq   A opcjonalny scroll_lock jest w planach? Bo czasam...   28.08.2006, 22:13:02
- - nasty_psycho   a ja mam uwage, napisalem to na shoutboxi-e online...   28.08.2006, 18:40:00
- - nospor   Cytatbym bardzo radzil htmlspecialcharsowac zamias...   28.08.2006, 19:45:59
- - NetJaro   @nospor, dobra robota :-) Znowu :-P Jakbyś dodał d...   28.08.2006, 21:03:55
- - nospor   CytatJakbyś dodał do tego AJAX by było znakomicieA...   28.08.2006, 21:51:31
- - NetJaro   Ale gafa, koniec ide odpocząć od wakacji Dobrano...   28.08.2006, 22:03:25
- - nospor   scroll_lock niejako jest poza klasą, gdyż jego obs...   28.08.2006, 22:20:08
- - nasty_psycho   Cytatdzieki nasty_psycho za cynk, nawet pomimo iż ...   29.08.2006, 18:18:27
- - son   Miałem pisać identyczną klasę...   3.09.2006, 10:05:20
- - nasty_psycho   ~son: prosto z twojej strony : CytatWarning: Inva...   3.09.2006, 12:51:35
- - sawic   Jestem w trakcie uruchamiania tego shoutbox-a. Ab...   30.11.2006, 17:59:58
- - nospor   CytatAby to zaczęło w ogóle działać musiałem zmien...   30.11.2006, 18:17:30
|- - sawic   Przede wszystkim dzięki za szybką odpowiedź. Cyt...   30.11.2006, 18:57:40
- - nospor   CytatNapisałem to po prostu dla innych, którzy mog...   30.11.2006, 19:07:31
|- - sawic   Cytat(nospor @ 30.11.2006, 19:07:31 )...   30.11.2006, 21:44:44
- - nospor   CytatMam jeszcze jedno pytanko. Gdzie i co powinie...   1.12.2006, 08:55:19
- - sawic   No tak. Takie proste. Powinienem sam na to wpa...   21.12.2006, 17:15:07
- - nospor   CytatDruga sprawa, to zrobiłem, że niezalogowane o...   21.12.2006, 17:25:00
|- - sawic   Cytat(nospor @ 21.12.2006, 17:25:00 )...   21.12.2006, 17:52:03
- - nospor   CytatQrde. Nie pomyślałem, że ten p...   21.12.2006, 18:06:46
- - sawic   Wszystko już działa jak należy. Wielkie dzięki. ...   21.12.2006, 20:38:25
- - nospor   No i jest wersja 0.8. Z ważniejszych nowości: - M...   18.01.2007, 16:55:49
- - TAMLYN   A więc ja dodam, że zauważyłem...   30.01.2007, 22:46:35
- - nospor   A ja dodam, ze mowisz tutaj o zmianach (nie)widocz...   18.03.2007, 22:19:07
- - Labik   Witam. Moglby ktos napisac toturial dla zielonych ...   21.03.2007, 17:09:59
- - nospor   W pliku ShoutBox.php masz taka funkcje na samym do...   26.03.2007, 16:52:55
- - Labik   Fajnie, przydaloby sie jeszcze banowanie na ip alb...   27.03.2007, 16:50:17
- - nospor   Banowanie powinno byc przy rejestracji/logowaniu c...   27.03.2007, 17:04:59
- - ktosmily   jak wstawić to na forum jak można   11.04.2007, 15:40:33
- - nospor   po pierwsze: odpal sobie najpierw to co w paczce. ...   18.06.2007, 16:57:21
- - Jerem!asz   witam, mam problem z zainstalowaniem ShoutBoxa, c...   1.01.2008, 11:47:58
- - nospor   1) Czy uzywasz php5? 2) Czy odpalasz plik ShoutBox...   10.09.2008, 20:30:17
- - xquest   Witam! Testuję właśnie nshoutboxa pod joomlą ...   16.02.2009, 23:17:54
- - nospor   shoutbox wymaga php5. na yoyo domyslnie chyba jest...   17.02.2009, 09:31:20
- - xquest   Witam! Dzięki za pomoc - na yoyo rzeczywiście ...   17.02.2009, 20:47:12
- - bim2   jak pozmieniasz na .php5 to musi działać Nie zapo...   17.02.2009, 21:48:05
- - xquest   Hej! To już słyszałem że wszystkie - ale czy w...   17.02.2009, 22:38:03
- - nospor   Cytatzmieniłem tylko te 2 najważniejszete dwa najw...   17.02.2009, 22:50:40
- - xquest   ok, thx. Postaram się porobić według wskazówek Pe...   18.02.2009, 12:22:54
- - nospor   .svn-base to smieciuchy ktore mi niechcacy do pacz...   18.02.2009, 12:24:29
- - rafal22bb   Przepraszam, może to głupie pytanie ale jak zainst...   1.03.2009, 00:20:54
- - nospor   przygotowany jest moduł shoutbox dla joomla. Skoro...   2.03.2009, 07:38:58
- - grzegorz_g   mam pytanie do uzytkowników shoutboxa czy istnieje...   7.03.2009, 18:29:23
- - nospor   oczywiscie. wystarczy przejrzec plik cfg.inc.php i...   7.03.2009, 19:48:56
- - Taifun   a jak zrobic, ze jak ktos wpisuje nick "nick...   16.03.2009, 21:00:40
- - nospor   w ShoutboxDefaultRights masz metode CanAdd() a w n...   17.03.2009, 09:37:08
- - Taifun   a jak zrobić z wiadomością jak jest to "wiado...   17.03.2009, 13:20:00
- - nospor   ale obiekt z prawami nie ma czegos takiego jak ...   17.03.2009, 13:25:30
- - dudi1261   Pomoglbys Mi z podpieciem Shoutboxa Twojego jednoc...   10.07.2009, 07:08:32
- - nospor   a znasz sie na php fusion i phpbb? Konkretnie chod...   14.07.2009, 06:58:13
- - jarexx   Witam Pytanie do nospora. Co muszę zrobić, by shou...   17.03.2010, 13:34:31
- - nospor   Mowiac " jakiś user wysyła wiadomość" ma...   17.03.2010, 13:44:16
- - jarexx   Chodzi mi o coś takiego: Userzy siedzą na stronie,...   17.03.2010, 13:59:42
- - nospor   to nie serwer komunikuje się z przeglądarką, ale p...   17.03.2010, 20:15:38
- - jarexx   Dzięki nospor za wyjaśnienia. A możesz mi powiedzi...   18.03.2010, 09:33:35
- - nospor   ...onclick="sb.getMessages();return false;...   18.03.2010, 09:35:54
- - jarexx   Dobra. Dzięki serdeczne   18.03.2010, 09:46:48
- - ano   Może powinienem to napisać w temacie nospora, ale ...   9.01.2011, 00:12:26
- - nospor   Przenioslem Twoj post ad1) Co ma piernik do wiatr...   10.01.2011, 11:06:02
- - micsie03339   Mogę prosić o instrukcje instalacji,tego SB? I czy...   29.07.2011, 11:35:47
- - nospor   Jeśli chcesz go zintegrować ze swoim serwisem tak ...   29.07.2011, 13:08:36


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 11.10.2025 - 09:53