![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Moderatorzy Postów: 36 557 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 ![]() 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: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat 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: PLik o ktorym mowisz powinien byc dostosowywany przez yzytkownikow i ty to wlasnie zrobiles. Sek w tym, ze ja Twoich zmian nie widze i nie wiem co jest w lini 72. Wiec rzuć kodem dobry czlowieku pare lini przed i pare lini po, gdyz u mnie w lini 72 nie ma prawa takiego bledu byc. 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. ![]() Domyslam sie, ze odwolujesz sie tam tak: $_SESSION['user']. Sprawdzaj najpierw czy wogole $_SESSION['user'] jest ustawione, a bledu miec nie bedziesz Cytat Należało by podać adres bezwzględny do pliku ShoutBox.php5, tylko gdzie to zrobić Faktycznie, przydalby sie taki parametr. Postaram sie go dolozyc w najblizszym czasie. Poki co w pliku ShoutBox.js, masz dwa wystąpienia ciagu: Kod url: "ShoutBox.php"...... Zamiast ShoutBox.php podaj wartosc bezwględną i bedzie dzialac. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 0 Dołączył: 24.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
PLik o ktorym mowisz powinien byc dostosowywany przez yzytkownikow i ty to wlasnie zrobiles. Sek w tym, ze ja Twoich zmian nie widze i nie wiem co jest w lini 72. Wiec rzuć kodem dobry czlowieku pare lini przed i pare lini po, gdyz u mnie w lini 72 nie ma prawa takiego bledu byc. ![]() Domyslam sie, ze odwolujesz sie tam tak: $_SESSION['user']. Sprawdzaj najpierw czy wogole $_SESSION['user'] jest ustawione, a bledu miec nie bedziesz Qrde. Nie pomyślałem, że ten plik inaczej już wygląda. Zakręcony jestem ![]() Chodzi o linię:
Jak dam if($_SESSION['user']) {} przed całym try {} to shoutbox-a nie widzą niezalogowani użytkownicy, więc w sumie to dalej nie wiem gdzie i co trzeba zmienić aby to działało. Faktycznie, przydalby sie taki parametr. Postaram sie go dolozyc w najblizszym czasie. Poki co w pliku ShoutBox.js, masz dwa wystąpienia ciagu: Kod url: "ShoutBox.php"...... Zamiast ShoutBox.php podaj wartosc bezwględną i bedzie dzialac. A tego to już powinienem się sam domyślić. Wstyd ![]() Teraz działa jak należy. Dzięki. Pozdrawiam |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.06.2025 - 07:43 |