Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Algorytmy, klasy, funkcje _ ShoutBox (mini chat)

Napisany przez: nospor 26.08.2006, 11:19:55

http://nospor.pl/shoutbox.html
http://nospor.pl/download/idfolder/22/

Prezentuje Wam moją nową klasę ShoutBox. Jak nazwa wskazuje jest to ShoutBox 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 smile.gif


ps2: podziękowania dla mike_mech za CSS 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 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 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

Napisany przez: dr_bonzo 26.08.2006, 13:04:42

Zaczne od wad (moze dojde do zalet tongue.gif):

*

  1. CREATE TABLE ........
  2. CHARSET=latin1


a ogonki?

*
  1. <?php
  2. catch (ShoutBoxException $ex){
  3. http://www.php.net/trigger_error($ex->getMessage(), E_USER_WARNING);
  4. }
  5. ?>


troche sie zalamalem, skoro uzywasz wyjatkow to po co je konwertowac do Errorow i logowac? nie prosciej uzyc bezposrednio loggera?


* nie dziala mi biggrin.gif skonfigurowalem baze ale sypie sie JS i nic sie nie wyswietla (poza szsablonem shoutboxa), nie chce mi sie smile.gif

Napisany przez: sf 26.08.2006, 13:10:48

Nie wiem czemu, ale czasem wiadomość, którą wpisze pojawia się dwa razy tongue.gif

Napisany przez: nospor 26.08.2006, 13:11:46

Cytat
a ogonki?
Wejdź na moj shoutbox online a zobaczysz ze są tongue.gif

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 smile.gif
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 winksmiley.jpg

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.

Napisany przez: dr_bonzo 26.08.2006, 13:48:03

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" smile.gif

Wyjatki
Cytat
Ale to byl tylko PRZYKLAD i lenistwo

Juz rozumiem

Cytat
Wejdź na moj shoutbox online a zobaczysz ze są

Bardzo smieszne smile.gif az linka zaczalem szukac, moze pozniej skonfiguruje u siebie smile.gif

Jestem slepy, link jest



Poprawione, skonfigurowane, dziala

Napisany przez: nospor 26.08.2006, 16:30:21

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

Napisany przez: mike_mech 28.08.2006, 12:04:25

Jupi!!!

Zostałem wymieniony w napisach kńcowych biggrin.gif

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.

Napisany przez: nospor 28.08.2006, 12:21:00

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 smile.gif
Ale to chyba moze css by poprawic, ktory zreszta sam napisales winksmiley.jpg

Napisany przez: mike_mech 28.08.2006, 12:23:21

Cytat(nospor @ 28.08.2006, 13:21 ) *
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 smile.gif Myślałem, że nie ma :/

Cytat(nospor @ 28.08.2006, 13:21 ) *
Eee, no fajnie teraz wyglada. Dla dlugiej jednowyrazowej wiadomosci jest tylko scroll smile.gif
Ale to chyba moze css by poprawic, ktory zreszta sam napisales winksmiley.jpg
Cos pomyślę, choć w sumie fatycznie nie jest źle. Robi się box tyldko dla pojedynczej wypowiedzi, więc w sumie jest OK.

Napisany przez: nasty_psycho 28.08.2006, 18:40:00

a ja mam uwage, napisalem to na shoutboxi-e online winksmiley.jpg
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.

Napisany przez: nospor 28.08.2006, 19:45:59

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 smile.gif
moze jeszcze dzis uda mi sie wystawic nową wersje. bedą emoty dla "dzieci"

Napisany przez: NetJaro 28.08.2006, 21:03:55

@nospor, dobra robota :-) Znowu :-P Jakbyś dodał do tego AJAX by było znakomicie smile.gif

Napisany przez: nospor 28.08.2006, 21:51:31

Cytat
Jakbyś dodał do tego AJAX by było znakomicie
Albo ja ciebie nie rozumiem, albo ty dziś pileś winksmiley.jpg
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? smile.gif

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

Napisany przez: NetJaro 28.08.2006, 22:03:25

Ale gafa, koniec ide odpocząć od wakacji tongue.gif

Dobranoc tongue.gif

Sorry za problemy :-)

Napisany przez: Cypherq 28.08.2006, 22:13:02

A opcjonalny scroll_lock jest w planach? Bo czasami w czasie intensywnej rozmowy ciężko będzie przeglądać wcześniejsze wpisy.

Napisany przez: nospor 28.08.2006, 22:20:08

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.

Napisany przez: nasty_psycho 29.08.2006, 18:18:27

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

Napisany przez: son 3.09.2006, 10:05:20

Miałem pisać identyczną klasę! Dzięki nospor, że byłeś szybszy winksmiley.jpg
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ć biggrin.gif (dla ciekawskich: http://www.e-kartki.org/Ekartki/Shout)
Dzięki

Napisany przez: nasty_psycho 3.09.2006, 12:51:35

~son: prosto z twojej strony winksmiley.jpg :

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

Napisany przez: sawic 30.11.2006, 17:59:58

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:

  1. <?php
  2. $message = http://www.php.net/nl2br(http://www.php.net/stripslashes(http://www.php.net/htmlspecialchars(http://www.php.net/trim($message), ENT_QUOTES)));
  3. ?>


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

Napisany przez: nospor 30.11.2006, 18:17:30

Cytat
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)
No to juz nie moja wina, ze Twoj serwer dla skryptow php5 wymaga rozszerzenia php5 smile.gif

Cytat
W pliku ShoutBox.php linia 29 zmieniłem na:
Kod php1
2
3 <?php
$message = nl2br(stripslashes(htmlspecialchars(trim($message), ENT_QUOTES)));
?>



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.
Widzisz, to rowniez nie wina klasy, tylko tego, iz na serwie masz wlączone magic_quotes, ktore ci z automata slashuje wszystko. mozesz to wylaczyc w pliku .htaccess. Pozatym zmiany co zrobiles, to są zmiany akurat w czesci, gdzie kazdy sobie je modyfikuje wlasnie to wlasnych potrzeb, wiec wszystko gra. Tam wlasnie implementujesz sterownik dla wlasnego uzytku

Cytat
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.

Nawet przez mysl mi nie przechodzilo, ze ID moze byc tekstem. ID u mnie to liczba, i do bazy wkladana jest rowniez jako liczba, bez brania go w apostrofy. Nie masz tam na ID usera pola autoincrement? No jesli nie masz to musisz zrobic zmiany w pliku ShoutBox.class.php w okolicach linii 207. Jest tam insert i taki kawalek:
$sql.= "(".($this->_idUser ? $this->_idUser : 'null').",.....
powininien zostac zamieniony na :
$sql.= "(".($this->_idUser ? "'$this->_idUser'" : 'null').",....
Czy gdzies jeszcze? Chyba nie.

Napisany przez: sawic 30.11.2006, 18:57:40

Przede wszystkim dzięki za szybką odpowiedź.


Cytat(nospor @ 30.11.2006, 18:17:30 ) *
No to juz nie moja wina, ze Twoj serwer dla skryptow php5 wymaga rozszerzenia php5 smile.gif

Widzisz, to rowniez nie wina klasy, tylko tego, iz na serwie masz wlączone magic_quotes, ktore ci z automata slashuje wszystko. mozesz to wylaczyc w pliku .htaccess. Pozatym zmiany co zrobiles, to są zmiany akurat w czesci, gdzie kazdy sobie je modyfikuje wlasnie to wlasnych potrzeb, wiec wszystko gra. Tam wlasnie implementujesz sterownik dla wlasnego uzytku

Wiem.
Napisałem to po prostu dla innych, którzy mogli mieć z tym problem.
W większości przypadków magic_quotes są włączone, więc chyba jednak było by lepiej dodać te stipslashes() a jak ktoś kuma o co chodzi to se i tak wyłączy.

Cytat(nospor @ 30.11.2006, 18:17:30 ) *
Nawet przez mysl mi nie przechodzilo, ze ID moze byc tekstem. ID u mnie to liczba, i do bazy wkladana jest rowniez jako liczba, bez brania go w apostrofy. Nie masz tam na ID usera pola autoincrement? No jesli nie masz to musisz zrobic zmiany w pliku ShoutBox.class.php w okolicach linii 207. Jest tam insert i taki kawalek:
$sql.= "(".($this->_idUser ? $this->_idUser : 'null').",.....
powininien zostac zamieniony na :
$sql.= "(".($this->_idUser ? "'$this->_idUser'" : 'null').",....
Czy gdzies jeszcze? Chyba nie.

winksmiley.jpg
To pozostałość po starym, paranoicznym wręcz, zabeczpieczaniu strony. To jest md5 z loginu i czegoś tam jeszcze, aby czasem nikt się za kogoś zalogował. Bez sensu, ale używam już tego w tylu miejscach, że nie chce mi się zmieniać, a działać działa więc zosawiłem.

Odnośnie Twojego kodu, to nie wystarczyło. W tym momencie wykonywane jest takie zapytanie do bazy:
insert into ShoutBox (`FK_USER`, `NICK`, `MESSAGE`, `TIME`) values ('4', 'gdfgfd', 'bcvb','2006-11-30 18:44:02')

Czyli z poprzedniego id zostało tylko 4.
Szukałem, gdzie to jeszcze można zmienić, ale siakiś ten kod dla mnie nieczytelny winksmiley.jpg


Pozdrawiam

Napisany przez: nospor 30.11.2006, 19:07:31

Cytat
Napisałem to po prostu dla innych, którzy mogli mieć z tym problem.
W większości przypadków magic_quotes są włączone, więc chyba jednak było by lepiej dodać te stipslashes() a jak ktoś kuma o co chodzi to se i tak wyłączy.
Nie. Poto jest ten interfejs by kazdy go sobie mogl modyfikowac winksmiley.jpg I nie wiem skąd ci sie wziela ta "większosc". Ja w wiekszosci widze wylączone.

Cytat
Odnośnie Twojego kodu, to nie wystarczyło. W tym momencie wykonywane jest takie zapytanie do bazy:
insert into ShoutBox (`FK_USER`, `NICK`, `MESSAGE`, `TIME`) values ('4', 'gdfgfd', 'bcvb','2006-11-30 18:44:02')

Czyli z poprzedniego id zostało tylko 4.
A, juz widze. w konstruktorze klasy mam:
$this->_idUser = empty($idUser) ? null : (int) $idUser;
czyli rzutuje na inta podane ID. usun te (int):
$this->_idUser = empty($idUser) ? null : $idUser;

A jesli i to nie pomoze, to bede musial zrobic wersję dla ID stringowych winksmiley.jpg ALe to juz powinno chyba byc wszystko

Napisany przez: sawic 30.11.2006, 21:44:44

Cytat(nospor @ 30.11.2006, 19:07:31 ) *
Nie. Poto jest ten interfejs by kazdy go sobie mogl modyfikowac winksmiley.jpg I nie wiem skąd ci sie wziela ta "większosc". Ja w wiekszosci widze wylączone.

Większość laików - jak ja.
Cytat(nospor @ 30.11.2006, 19:07:31 ) *
A, juz widze. w konstruktorze klasy mam:
$this->_idUser = empty($idUser) ? null : (int) $idUser;
czyli rzutuje na inta podane ID. usun te (int):
$this->_idUser = empty($idUser) ? null : $idUser;

A jesli i to nie pomoze, to bede musial zrobic wersję dla ID stringowych winksmiley.jpg ALe to juz powinno chyba byc wszystko

Działa.

Wielkie dzięki.

Pozdrawiam


Mam jeszcze jedno pytanko.
Gdzie i co powinienem zmienić, aby wiadomości z shoutbox-a mogli obejrzeć wszyscy, a pisać tylko zalogowani ?

Wyciełem z linii 70 pliku ShoutBox.php to:
  1. <?php
  2. if (http://www.php.net/empty($_SESSION['user_name']))
  3. http://www.php.net/exit;
  4. ?>

i schowałem formularz dla niezalogowanych, ale wydaje mi się, że powinno być coś jeszcze.

Pozdrawiam

Napisany przez: nospor 1.12.2006, 08:55:19

Cytat
Mam jeszcze jedno pytanko.
Gdzie i co powinienem zmienić, aby wiadomości z shoutbox-a mogli obejrzeć wszyscy, a pisać tylko zalogowani ?
Chyba bede musial wkoncu przysiąść do dokumentacji winksmiley.jpg

Pare linii nizej, pod tym co wyciales masz taki kod:
  1. <?php
  2. if ($_SESSION['nick'] == 'blocked')
  3. $sb->AddAdminMessage('Nie moĹĽesz dodawać wiadomoĹ›ci');
  4. else
  5. $sb->AddMessage();
  6. ?>

Czyli jesli nickiem jest blocked, to nie mozesz pisac. zamien to na empty nick, i gosc nie bedzie mogl pisac.
  1. <?php
  2. if (http://www.php.net/empty($_SESSION['nick']))
  3. $sb->AddAdminMessage('Nie moĹĽesz dodawać wiadomoĹ›ci');
  4. else
  5. $sb->AddMessage();
  6. ?>

Napisany przez: sawic 21.12.2006, 17:15:07

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 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/ShoutBox.php5?sb_idMsg=311&_uniqid=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

Napisany przez: nospor 21.12.2006, 17:25:00

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:

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.
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. winksmiley.jpg
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.

Napisany przez: sawic 21.12.2006, 17:52:03

Cytat(nospor @ 21.12.2006, 17:25:00 ) *
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. winksmiley.jpg
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 sad.gif
Chodzi o linię:
  1. <?php
  2. $sb = new ShoutBox(new ShoutBoxDefaultFormatter(),'./',$_SESSION['user'], $_SESSION['id']);
  3. ?>

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.

Cytat(nospor @ 21.12.2006, 17:25:00 ) *
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 sad.gif
Teraz działa jak należy.
Dzięki.

Pozdrawiam

Napisany przez: nospor 21.12.2006, 18:06:46

Cytat
Qrde. Nie pomyślałem, że ten plik inaczej już wygląda. Zakręcony jestem
Chodzi o linię:
Kod php1
2
3 <?php
$sb = new ShoutBox(new ShoutBoxDefaultFormatter(),'./',$_SESSION['user'], $_SESSION['id']);
?>


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.

No widzisz, u mnie byla jeszcze taka linijka:
  1. <?php
  2. if (http://www.php.net/empty($_SESSION['user']))
  3. http://www.php.net/exit;
  4. ?>

ktora powodowala ze do Twojego kodu nie dochodzil. Ty ja usunales. Musisz wiec zrobic, np tak:
  1. <?php
  2. $userName = !http://www.php.net/empty($_SESSION['user']) ? $_SESSION['user'] : '';
  3. $sb = new ShoutBox(new ShoutBoxDefaultFormatter(),'./',$userName, $_SESSION['id']);
  4. ?>


milego wieczoru smile.gif

Napisany przez: sawic 21.12.2006, 20:38:25

Wszystko już działa jak należy. smile.gif

Wielkie dzięki.

Pozdrawiam

Napisany przez: nospor 18.01.2007, 16:55:49

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 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

Napisany przez: TAMLYN 30.01.2007, 22:46:35

A więc ja dodam, że zauważyłem problemy z edycją postów i ich usuwaniem... Trzeba odświeżyć całą stronkę, żeby zauważyć zmiany... Wg mnie dobrze by było, gdyby te zmiany same się 'odświeżały' biggrin.gif Na razie to tyle... smile.gif Chyba, że nie zauważyłem możliwości 'włączenia' takiego odświeżania tongue.gif

Napisany przez: nospor 18.03.2007, 22:19:07

A ja dodam, ze mowisz tutaj o zmianach (nie)widocznych od razu dla innych uzytkownikow. Ten kto edytuje i usuwa widzi zmiany od razu winksmiley.jpg

Zastanawialem sie nad tym czy to dodawac (ten refresh dla wszystkich). Nie jestem do konca przekonany. Moderacja wiadomosci miala sluzyc glownie moderatorom, gdy ktos jakis bluzg na wali albo innych glupot i nie powinno to widniec na dluzej. Poprzez "dluzej" rozumiem dluzej niz nastepny refresh strony. Wydaje mi sie, iz nie jest to zbyt dlugi czas oczekiwania.
Chcac zrobic ten refresh, trzeba by dodac "pare" dodatkowych linii kodu, nie wspominajac juz o jakims dobrym rozplanowaniu tego.
Aczkolwiek pare osob juz mi na to zwracalo uwage i pomysle co z tym zrobic.

edit:
No to niedlugo planuje zamknac ShoutBoxa w wersji 1.0
Zanim jednak to zrobię, chciałbym byście lukneli na wersje wystawioną on-line (link w pierwszym poscie) i sprawdzili czy wszystko jest ok (lub nie).
Z nowych rzeczy co doszly:
- 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 winksmiley.jpg. 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

Napisany przez: Labik 21.03.2007, 17:09:59

Witam. Moglby ktos napisac toturial dla zielonych jak skonfigurowac baze danych w pliku php i gdzie wpisac login i haslo admina, wogole jak postawic zeby wszystko skonfigurowac i postawic na serwer i zeby to dzialalo?

Pozdrawiam

Napisany przez: nospor 26.03.2007, 16:52:55

W pliku ShoutBox.php masz taka funkcje na samym dole:

  1. <?php
  2. function mysqlconnect(){
  3. $link = @http://www.php.net/mysql_connect('localhost', 'root','');
  4. @http://www.php.net/mysql_select_db('test');
  5. return $link;
  6. }
  7. ?>

Tam okreslasz parametry polączenia z bazą. Jak nie wiesz co jest co to zajrzyj do manuala
http://www.php.net/manual/pl/function.mysql-connect.php
http://www.php.net/manual/pl/function.mysql-select-db.php

W pliku ShoutBox.sql masz sql z zapytanimi tworzącymi tabele dla przedstawionego przykladu. Musisz wykonac te sql na swojej bazie. Mozesz to zrobic chociazby przy pomocy PHPMyAdmin.

W zasadzie to wszystko. Powinienes dzieki temu moc uruchomic ShoutBoxa (ShoutBoxDisplay.php)

Gdy juz wydam wersje 1.0 (czyli niedlugo) to postaram sie napisac lepszy tutorial.

edit: zapomnialem ze w ShoutBoxDisplay tez jest połączenie do bazy i tam tez trzeba skonfigurowac. Jest to w momencie logowania. U mnie w przykladzie jest to porozrzucane, gdyz ShoutBox z zalozenia mial byc dołączany do istniejacych juz stron i logowanie powinniscie miec wlasne smile.gif

edit
No to pojawiła się dostępna wersja 1.0
Z nowych rzeczy, oprócz tych co pisałem w poprzednim poście to 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.

Konfiguracja bazy danych znajduje się teraz tylko w jednym pliku: ShoutBoxDBConnection.php

W licencji zmieniłem wymagalność podania informacji o autorze (czyli o mnie) na stronie.

Napisany przez: Labik 27.03.2007, 16:50:17

Fajnie, przydaloby sie jeszcze banowanie na ip albo chociaz wyrzucanie userow. Niestety ja jestem zielony w php i takiego czegos se nie zrobie guitar.gif

Napisany przez: nospor 27.03.2007, 17:04:59

Banowanie powinno byc przy rejestracji/logowaniu czyli defacto poza klasa. Skoro jestes zielony w php to czas najwyzszy sie poduczyc smile.gif

Napisany przez: ktosmily 11.04.2007, 15:40:33

jak wstawić to na forum jak można

Napisany przez: nospor 18.06.2007, 16:57:21

po pierwsze: odpal sobie najpierw to co w paczce. Jak uda ci sie to uruchomic to przejdz dalej winksmiley.jpg
Jakies pojecie o php/html masz?

Skoro chcesz podpinac to pod forum to logowanie masz juz z bani. zalozmy ze shout bedzie tylko dla zalogowanych. W pliku Shoutboxdisplay.php masz

Kod
<div id="sb_main">
    <div id="sb_online"><div id="sb_online_title">UĹĽytkownicy on-line:</div><div id="sb_online_users"></div></div>
    <div id="sb_tools"><div id="sb_history" class="sb_history" title="Pobierz wczeĹ›niejsze" onclick="sb.getHistory();"></div><div id="sb_scroll_locking" class="sb_unlocked" title="Zablokuj scroll" onclick="ShoutBox.switchScroll();"></div></div>
    <div id="sb_body"></div>
    <form onsubmit="sb.sendMessage();return false;">
    <input type="text" id="sb_message" maxlength="255" />
    <input type="submit" id="sb_submit" value="WyĹ›lij" />
    </form>
</div>


    <script language="javascript">
        var sb = new ShoutBox('sb');
        sb.getMessages();
    </script>

Musisz to dorzucic na strone forum oraz dołącz skrypty js co sa na poczatku tamtego pliku.
W pliku ShoutBox.php, wszelkie odwolania typu $_SESSION['nick'], $_SESSION['id'] musisz zastapic na odpowiedniki w Twoim forum. To by bylo w skrocie smile.gif
W razie pytan wal na PW

edit:
http://nospor.pl/shoutbox-1.1-kolejna-wersja-n6.html
Kolejna wersja wprowadza interfejs baz danych, umożliwiający przechowywanie danych gdziekolwiek. Wiecej w linku powyzej

edit:
Napisałem sterownik operujący na plikach, a nie jak do tej pory na bazie MySql. Więcej info tu:
http://nospor.pl/sterownik-operujacy-na-plikach-n7.html
Zachęcam do testowania smile.gif

Napisany przez: Jerem!asz 1.01.2008, 11:47:58

witam,
mam problem z zainstalowaniem ShoutBoxa, czy moglbym proić o dokladna instrukcje?
otoż stworzylem tabele wg zapytan jak bylo podane, w poscie wyżej - zrobilem jak napisales, ale nie działa, nie wyświetlają się żabne wiadomości.

Napisany przez: nospor 10.09.2008, 20:30:17

1) Czy uzywasz php5?
2) Czy odpalasz plik ShoutBoxDisplay.php
3) W miejscu gdzie wgrales shouta moze pojawic sie plik shoutbox.log zawierajacy ewentualne bledy. Poszukaj go przejrzyj.

edit
Po dość sporej przerwie prezentuje kolejną wersje ShoutBox 1.2
Najwiazniejsze zmiany to:

Poprawienie obsługi komend
Kompresja gzip
Automatyczne czyszczenie starych wiadomości
Zmiana metod formatujących
Logowanie IP

Więcej na stronie http://nospor.pl/shoutbox-1.2-n30.html</a>

Edit 2008-09-10:
Napisałem wstepną wersję modułu pod Joomla. Zapraszam do pobierania, testowania i zgłaszania swoich uwag
http://nospor.pl/modul-shoutbox-dla-joomla-n33.html

ps: podziękowania dla f1xer, który pomógł mi w poznaniu tajników tworzenia modułów pod Joomle

Napisany przez: xquest 16.02.2009, 23:17:54

Witam!
Testuję właśnie nshoutboxa pod joomlą winksmiley.jpg Bez żadnych problemów poszedł na joomli zainstalowanej w domciu na localnym serwerze. Po podobnej instalacji - tylko ze na serwerze yoyo.pl, dostaje błąd otwierając swoją stronkę na której shoutbox jest w trybie aktywnym. Błąd jest nastepujący :

Parse error, unexpected '{' in /var/www/sites/yoyo.pl/x/x/xxxxxxxx/mod_nshoutbox/mod_nshoutbox.php on line 57.

Hm, ta sama instalacja - 2 różne servery. Proszę o podpowiedź jak pozbyć się błedu sad.gif

Napisany przez: nospor 17.02.2009, 09:31:20

shoutbox wymaga php5. na yoyo domyslnie chyba jest php4?

Napisany przez: xquest 17.02.2009, 20:47:12

Witam! Dzięki za pomoc - na yoyo rzeczywiście jest php4. Mam pytanko: czy polecacie jakiś darmowy server do hostingu stron z domyślnym php5. i jeszcze jedno pytanko a może prośba:
Czy ktoś przerobił shoutboxa autorstwa nospora na taki który nadawałby się pod yoyo. Tzn który zamiast .php ma .php5 .
Próbowałem ręcznie pozmieniać - ale wogóle go nie wyświetla - musi być jakiś błąd ;(
Jak tak to poproszę o taki zmodyfikowany komponent albo chociaż poradę w którym miejscu należy podmienić.

Napisany przez: bim2 17.02.2009, 21:48:05

jak pozmieniasz na .php5 to musi działać smile.gif Nie zapomnij, że musisz zmienić wszystkie pliki!

Napisany przez: xquest 17.02.2009, 22:38:03

Hej! To już słyszałem że wszystkie - ale czy wszystkie w modulach joomli, stronie startowej, czy po prostu w module nshoutbox tylko. No i pytanie - czemu wszystkie - zmieniłem tylko te 2 najważniejsze i nic nie chodzi.

Napisany przez: nospor 17.02.2009, 22:50:40

Cytat
zmieniłem tylko te 2 najważniejsze
te dwa najwazniejsze korzystaja z innych plikow smile.gif
Oprocz zmiany nazw plikow, musisz tez zmienic wszelkie odwolania do nich smile.gif

ps: nie prosciej ci bedzie poprzez htaccess ustawic tam php5? Zapytaj tych od yoyo czy jest u nich taka mozliwosc

Napisany przez: xquest 18.02.2009, 12:22:54

ok, thx. Postaram się porobić według wskazówek winksmiley.jpg Pewnie jeszcze Was pomeczę winksmiley.jpg php zawsze było u mnie kula u nogi

Witam Wszystkich sad.gif Niestety nie udało się uruchomić shoutboxa na yoyo (domyślne php4). Proszę więc o 10 minut wyjęte z życiorysu i o pomoc kogoś kto lubi wyzwania. Osobiście pozmieniałem wszystko z php na php5 (rozszerzenia) ale nie poszło. Możliwe że niepotrzebnie zmieniałem nazwę pliku np z 'ShoutBoxCommandIp.class.php.svn-base' na 'ShoutBoxCommandIp.class.php5.svn-base'. Może wystarczy tylko zmienić końcówki dla plików *.php (php na końcu). W każdym bądź razie proszę o pomoc. (Całość dokonywania podmian to jakieś 10 m, więc pewnie dużo Wam nie zajmie czasu - strasznie spodobał mi się ten komponencik)
Pozdrawiam

Napisany przez: nospor 18.02.2009, 12:24:29

.svn-base to smieciuchy ktore mi niechcacy do paczki doszly smile.gif

Napisany przez: rafal22bb 1.03.2009, 00:20:54

Przepraszam, może to głupie pytanie ale jak zainstalować wersję 1.2 na joomla?

Napisany przez: nospor 2.03.2009, 07:38:58

przygotowany jest moduł shoutbox dla joomla. Skoro jest to moduł, to instalujesz to jak kazdy inny moduł w Joomla.
Jesli nie wiesz jak sie instaluje moduły pod Joomle to czas najwyzszy przeczytac ich dokumentacje, bo mają to ładnie opisane smile.gif

Napisany przez: grzegorz_g 7.03.2009, 18:29:23

mam pytanie do uzytkowników shoutboxa czy istnieje możliwośc by najnowsze wiadomości były pisane od góry ....


Dzięki za wszelkie info

Napisany przez: nospor 7.03.2009, 19:48:56

oczywiscie. wystarczy przejrzec plik cfg.inc.php i przeczytac dokladnie komentarze umieszczone przy każdej z opcji smile.gif

Napisany przez: Taifun 16.03.2009, 21:00:40

a jak zrobic, ze jak ktos wpisuje nick "nick" oraz treść "wiadomosc" to wywala mu informacje jak na nospor.pl w sb , zeby wybral inny nick?

Napisany przez: nospor 17.03.2009, 09:37:08

w ShoutboxDefaultRights masz metode CanAdd()
a w niej:

  1. <?php
  2. if ($this->Nick == 'blocked') //w tym przykładzie koles o nicku "blocked" nie może nic pisać
  3.            return 'Nie możesz dodawać wiadomości';
  4. ?>

Na podobnej zasadzie zrob blokade na nicka:
  1. <?php
  2. if ($this->Nick == 'twojnick')
  3.            return 'Wybierz inny nick';
  4. ?>

Napisany przez: Taifun 17.03.2009, 13:20:00

a jak zrobić z wiadomością jak jest to "wiadomość"

  1. <?php
  2. if ($message == "wiadomość")
  3.            return 'wpisz inną treść';
  4. ?>

nie działa.

również to nie działa:
  1. <?php
  2. if ($this->message== 'wiadomość')
  3.           return 'Wybierz inną wiadomość';
  4. ?>

Napisany przez: nospor 17.03.2009, 13:25:30

ale obiekt z prawami nie ma czegos takiego jak $message winksmiley.jpg
Wiadomosc jest tu: $_POST['message']

Napisany przez: dudi1261 10.07.2009, 07:08:32

Pomoglbys Mi z podpieciem Shoutboxa Twojego jednoczesnie do php fusion 7 i phpbb2 by przemo?

Napisany przez: nospor 14.07.2009, 06:58:13

a znasz sie na php fusion i phpbb? Konkretnie chodzi mi o pisanie modułów pod nie?

Napisany przez: jarexx 17.03.2010, 13:34:31

Witam
Pytanie do nospora.
Co muszę zrobić, by shoutbox nie odświeżał się co ileś tam zadanych w configu sekund tylko w momencie gdy jakiś user wysyła wiadomość?
Masz receptę na taką funkcjonalność?
Możesz mnie oświecić?

Dziękuję i pozdrawiam smile.gif

Napisany przez: nospor 17.03.2010, 13:44:16

Mowiac " jakiś user wysyła wiadomość" masz na mysli sytuację, że ty sobie siedzisz przed shoutem, ktos inny wysyla wiadomosc, a ty dopiero wtedy odswiezasz shouta?

Napisany przez: jarexx 17.03.2010, 13:59:42

Chodzi mi o coś takiego:
Userzy siedzą na stronie, ale nikt nie wpisuje do shouta żadnej wiadomości.
W takiej sytuacji nie ma potrzeby odśwsieżania shouta, bo i tak nikt nic nowego nie napisal.
Chodzi o to, czy jest możliwe, by shout odświeżał się u wszystkich w momencie gdy w bazie pojawia się nowy rekord.
Pytam, bo mój admin zablokował mi shouta ze wzgledu na zbyt duza ilosc odwolan do serwera.

A jeszcze jedno.
Czy to, że shout jest w iframe stanowi istotna różnicę? Skrypt tak czy siak, musi połączyć się z serwerem.

pozdrawiam

Napisany przez: nospor 17.03.2010, 20:15:38

to nie serwer komunikuje się z przeglądarką, ale przeglądarka z serwerem. To przeglądarka musi odpytywać serwer a nie na odwrót.
Istnieją metody symulacji tego co mowisz: przeglądarka odpytuje serwer, skrypt na serwerze nie zwraca odpowiedzi do przeglądarki do czasu, aż nie pojawi się nowa wiadomośc - to tak w skrócie opisane smile.gif

Cytat
Czy to, że shout jest w iframe stanowi istotna różnicę? Skrypt tak czy siak, musi połączyć się z serwerem.
Z iframe przy kazdym odswiezeniu strony jest o jedno odpytanie serwera więcej

Napisany przez: jarexx 18.03.2010, 09:33:35

Dzięki nospor za wyjaśnienia.
A możesz mi powiedzieć co zrobić by odświeżać shouta zdarzeniem "onclick"?
Musze napisać jakąś nową metodę w js,czy takowa już istnieje?

Napisany przez: nospor 18.03.2010, 09:35:54

...onclick="sb.getMessages();return false;"...
gdzie sb to obiekt shoutboxa

Napisany przez: jarexx 18.03.2010, 09:46:48

Dobra. Dzięki serdeczne smile.gif

Napisany przez: ano 9.01.2011, 00:12:26

Może powinienem to napisać w temacie nospora, ale gdzieś mi zaginął więc tutaj dorzucę moich kilka spostrzeżeń.

1. Czemu w klasie Shoutbox masz tyle zmiennych "public"? Nie bezpieczniej mieć je jako private? Co jeżeli chciałbym mieć na jednej stronie dwa shoutboxy? Wtedy chyba cały skrypt by się posypał?
2. Shoutbox -> addMessage() -- czemu w parametrze nie przyjmuje wiadomości do wysłania? - i w związku z tym punktem:
Głównie mam pytanie o sam projekt tej klasy - czy poprawniej nie powinno być np. tak, że tworzymy nowy obiekt shoutbox, a potem odpowiednią metodą "logujemy" użytkownika i potem np. wysyłamy wiadomość inną metodą?
Bo teraz jest to /przynajmniej dla mnie/ w dosyć pokraczny sposób rozwiązane. Zapraszam do dyskusji na ten temat smile.gif

btw dopiero od października programuje (i to w javie, w php raczej nic... - ale i tak mi bardziej chodzi o samą teorię programowania niż o znajomość składni danego języka winksmiley.jpg) i dlatego takie posty na forum to dla mnie dobra nauka! smile.gif

pozdrawiam, Antoni

Napisany przez: nospor 10.01.2011, 11:06:02

Przenioslem Twoj post

ad1) Co ma piernik do wiatraka?
ad2) Gdyż wiadomosc mam w $this->message. Jest ona poprostu z posta pobierana
Metoda dodawania wiadomosci od admina już ma w parametrze wiadomosc

Napisany przez: micsie03339 29.07.2011, 11:35:47

Mogę prosić o instrukcje instalacji,tego SB?
I czy on działa na forach phpbb3?

Napisany przez: nospor 29.07.2011, 13:08:36

Jeśli chcesz go zintegrować ze swoim serwisem tak superancko, to tu masz:
http://nospor.pl/shoutbox-integracja-z-serwisem.html

Jak chcesz tylko wrzucić paczkę co jest dostępna to normalnie wrzucasz, wykonujesz zapytania na bazie, które są w pliku shoutbox.sql i ustawiasz w pliku konfiguracyjnym połączenie z bazą.

To nie jest moduł phpbb3 jeśli o to pytasz. Ale może tam działać, wystarczy to zintegrować smile.gif

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)