![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Moderatorzy Postów: 36 556 Pomógł: 6314 Dołączył: 27.12.2004 ![]() |
info (demo na stronie)
pobierz Prezentuje Wam moją nową klasę ShoutBox. Jak nazwa wskazuje jest to ShoutBox ![]() 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 ![]() ps2: podziękowania dla mike_mech za CSS ![]() 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 ![]() 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 ![]() - 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 -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Zaczne od wad (moze dojde do zalet
![]() *
a ogonki? *
troche sie zalamalem, skoro uzywasz wyjatkow to po co je konwertowac do Errorow i logowac? nie prosciej uzyc bezposrednio loggera? * nie dziala mi ![]() ![]() -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 597 Pomógł: 30 Dołączył: 19.02.2003 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem czemu, ale czasem wiadomość, którą wpisze pojawia się dwa razy
![]() -------------------- Zapraszam na mój php blog, tworzenie stron.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 556 Pomógł: 6314 Dołączył: 27.12.2004 ![]() |
Cytat a ogonki? Wejdź na moj shoutbox online a zobaczysz ze są ![]() Cytat troche sie zalamalem, skoro uzywasz wyjatkow to po co je konwertowac do Errorow i logowac? nie prosciej uzyc bezposrednio loggera? Ale ten kawalek kodu jest poza klasą. W tym przykladzie logowanie jest zrobione tylko poto, by zonaczyc ewnetnualne NOTICY czy WARNINGI. Zapiuje do logu w handlerze, wiec jesli przechwyce jakis EXCEPTION, to i w handlerze chcialem go zapisac. Ale to byl tylko PRZYKLAD i lenistwo. Nie chcialo mi sie logowania w przykladzie dopieszczac, skoro i tak jesli ktos tego uzyje na powaznie to bedzie mial wlasne. Cytat ie dziala mi skonfigurowalem baze ale sypie sie JS i nic sie nie wyswietla (poza szsablonem shoutboxa), nie chce mi sie Byc moze źle skonfigurowales ![]() Js sie sypie, jak nie dostanie poprawnych danych. Widac masz problem przy przesylaniu danych. Moze sie ze skryptem nie laczysz, moze z baza. Nie wiem, podales "za duzo" informacji ![]() Cytat Nie wiem czemu, ale czasem wiadomość, którą wpisze pojawia się dwa razy Tak wiem, zdarza sie. Ale to tylko widzi dwa razy ten kto pisze. W bazie jest jeden wpis. Po prostu czasami zdarza sie, ze ktos zacznie pisac w tym samym czasie, co skrypt bedzie pobieral dane,wiec sie ID nie zdazy odswierzyc. Popatrze jeszcze pod tym kątem na to. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Cytat Byc moze źle skonfigurowales Js sie sypie, jak nie dostanie poprawnych danych. Widac masz problem przy przesylaniu danych. Moze sie ze skryptem nie laczysz, moze z baza. Nie wiem, podales "za duzo" informacji Dlatego napisalem "nie chce mi sie" ![]() Wyjatki Cytat Ale to byl tylko PRZYKLAD i lenistwo Juz rozumiem Cytat Wejdź na moj shoutbox online a zobaczysz ze są Bardzo smieszne ![]() ![]() Jestem slepy, link jest Poprawione, skonfigurowane, dziala -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 556 Pomógł: 6314 Dołączył: 27.12.2004 ![]() |
Ok, jest nowa wersja 0.7.5
Poprawki: - zlikwidowane podwojny wpisy przy dodawaniu wiadomosci. Podobna jeszcze komus sie to zdarzylo, ale osobiscie nie moglem juz tego powtorzyc - poprawa utraty wiadomosci, przy duzych czasach odswierzania edit: ver. 0.7.6 - wprowadzenie antyfloodu -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#7
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Jupi!!!
Zostałem wymieniony w napisach kńcowych ![]() A na poważnie to przydałoby się jeszcze scrolowanie okna jeśli pojawiła się odpowiedź a ty przeglądasz na górze coś. I skracanie wpisów lub jakieś dzielenie długich wyrazów, bo pojawia się scroll. |
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 36 556 Pomógł: 6314 Dołączył: 27.12.2004 ![]() |
Cytat A na poważnie to przydałoby się jeszcze scrolowanie okna jeśli pojawiła się odpowiedź a ty przeglądasz na górze coś Teraz jak przegladasz na gorze i sie cos pojawi, to poleci scroll na to co sie pojawilo. Ma tego nie byc? jak to widzisz? Cytat I skracanie wpisów lub jakieś dzielenie długich wyrazów, bo pojawia się scroll. Eee, no fajnie teraz wyglada. Dla dlugiej jednowyrazowej wiadomosci jest tylko scroll ![]() Ale to chyba moze css by poprawic, ktory zreszta sam napisales ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#9
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Teraz jak przegladasz na gorze i sie cos pojawi, to poleci scroll na to co sie pojawilo. Ma tego nie byc? jak to widzisz? A to jak jest to spoko ![]() Eee, no fajnie teraz wyglada. Dla dlugiej jednowyrazowej wiadomosci jest tylko scroll Cos pomyślę, choć w sumie fatycznie nie jest źle. Robi się box tyldko dla pojedynczej wypowiedzi, więc w sumie jest OK.
![]() Ale to chyba moze css by poprawic, ktory zreszta sam napisales ![]() |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 634 Pomógł: 14 Dołączył: 27.05.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
a ja mam uwage, napisalem to na shoutboxi-e online
![]() jak wpisujes " \n " to ci pokazuje tylko n czy cos takiego, czyli problemy ze slashowaniem podobnie jak tu na forum, i bym bardzo radzil htmlspecialcharsowac zamiast slashowac. I to by bylo na tyle. Ten post edytował nasty_psycho 28.08.2006, 18:40:26 |
|
|
![]()
Post
#11
|
|
![]() Grupa: Moderatorzy Postów: 36 556 Pomógł: 6314 Dołączył: 27.12.2004 ![]() |
Cytat bym bardzo radzil htmlspecialcharsowac zamiast slashowac NO i musze cie rozczarowac, gdyż nigdzie nie slashuje, tylko uzywam wlasnie htmlspecialchars. No i tu jest wlasnie problem w tej metodzie, gdyż ona " \n " wali jako enter.... hmmm, musze popatrzec blizej edit: dobra, zamieniam ręcznie \ na encje. htmlspecialchars tego nie robi. dzieki nasty_psycho za cynk, nawet pomimo iż blędnie oceniles kod ![]() moze jeszcze dzis uda mi sie wystawic nową wersje. bedą emoty dla "dzieci" -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 475 Pomógł: 0 Dołączył: 1.04.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
@nospor, dobra robota :-) Znowu :-P Jakbyś dodał do tego AJAX by było znakomicie
![]() |
|
|
![]()
Post
#13
|
|
![]() Grupa: Moderatorzy Postów: 36 556 Pomógł: 6314 Dołączył: 27.12.2004 ![]() |
Cytat Jakbyś dodał do tego AJAX by było znakomicie Albo ja ciebie nie rozumiem, albo ty dziś pileś ![]() Przecież cały skrypt jest oparty na tym, iz co x sekund wysylane jest żądanie na serwer wlasnie poprzez AJAX. Do obslugi AJAX wykorzystuje klasę advAjAX. Oco ci więc chodzi? ![]() edit: 0.7.7: - w przykladzie są buźki (nędzne bo nędzne, ale są) - poprawilem błąd przy przekazywaniu zformatowych danych w xml - przenioslem domyślny formatter poza klasę. wkoncu to przyklad, a nie częśc skladowa -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 475 Pomógł: 0 Dołączył: 1.04.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Ale gafa, koniec ide odpocząć od wakacji
![]() Dobranoc ![]() Sorry za problemy :-) |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 9 Dołączył: 28.08.2006 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
A opcjonalny scroll_lock jest w planach? Bo czasami w czasie intensywnej rozmowy ciężko będzie przeglądać wcześniejsze wpisy.
-------------------- "Zero 'errorów' nic nie oznacza. Walidator sprawdza tylko składnię. Kod strony jest jak psu z d**y wyjęty i to, że walidator świeci się na zielono nie oznacza, że ta kupa jest ładna" - mike
|
|
|
![]()
Post
#16
|
|
![]() Grupa: Moderatorzy Postów: 36 556 Pomógł: 6314 Dołączył: 27.12.2004 ![]() |
scroll_lock niejako jest poza klasą, gdyż jego obsluge zalatwia js.
Aczkolwiek pomysl jest nawet sluszny i zapewnę w wolnej chwili dorobię i tę opcję dla przykładu. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 634 Pomógł: 14 Dołączył: 27.05.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
Cytat dzieki nasty_psycho za cynk, nawet pomimo iż blędnie oceniles kod Prosze, a kodu nie przegladalem, tylko tak mi sie zdalo jak zobaczylem demo online
|
|
|
![]()
Post
#18
|
|
![]() Grupa: Zarejestrowani Postów: 210 Pomógł: 0 Dołączył: 31.01.2004 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Miałem pisać identyczną klasę! Dzięki nospor, że byłeś szybszy
![]() Robota jest naprawdę wykonana tak jak należy. Zdążyłem już zainstalować ten ShouBox na mojej strone i praktycznie nic nie musiałem zmieniać ![]() Dzięki Ten post edytował son 3.09.2006, 10:05:58 -------------------- Warsztat: Apache 1.3.36 | MySQL 4.1.19 | php 5.1.4 | OS Linux SUSE 10.3 x86_64 | Kernel 2.6.22.12-0.1 | Opera 9.5 | Kate
Na warsztacie: Ekartki |
|
|
![]()
Post
#19
|
|
![]() Grupa: Zarejestrowani Postów: 634 Pomógł: 14 Dołączył: 27.05.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
~son: prosto z twojej strony
![]() Cytat Warning: Invalid argument supplied for foreach() in /home/ekartki/public_html/libs/SmartyML.php on line 245 Warning: Invalid argument supplied for foreach() in /home/ekartki/public_html/libs/SmartyML.php on line 245 Warning: Invalid argument supplied for foreach() in /home/ekartki/public_html/libs/SmartyML.php on line 245 Pozdrawiam |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 0 Dołączył: 24.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
Jestem w trakcie uruchamiania tego shoutbox-a.
Aby to zaczęło w ogóle działać musiałem zmienić rozszerzenie pliku ShoutBox na .php5 inaczej nie działało (serwer nazwa.pl) W pliku ShoutBox.php linia 29 zmieniłem na:
W ten sposób nie dodaje slashy tam gdzie nie trzeba, uważam, że mogło by już tak być w następnej wersji shoutbox-a. Mam pytanko, na swojej stronie używam już id użytkownika, tyle że mam je w postaci np: 4b1dd5d6f2ae3ef002d25a6j4030e2df Zmieniłem w bazie kolumnę FK_USER na char(32), ale nie wpisuje się cały ciąg znaków. Czy mógłby mi ktoś powiedzieć co i gdzie mam zmienić, abym mógł używać takiego id w shoutboxie ? Pozdrawiam |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 27.04.2025 - 06:15 |