Seite 1 von 2
#1 Shoutbox ohne externen Anbieter von florian-zier 30.06.2011 19:37

avatar

Wolltet ihr schon immer einmal eine Shoutbox auf eurer Seite haben?
Im Internet gibt es zwar viele Anbieter, aber dabei ist es schwierig, den für sich passendsten auf Anhieb zu finden.
Meistens ist die Shoutbox selbst vom Design her kaum anpassbar.
Ist das passende Design gefunden, fehlen möglicherweise gewünschte Funktionen.

Wer sowieso schon bereits seinen eigenen Webspace besitzt, welcher PHP & MySQL unterstützen sollte, der kann sich nun selbst eine praktische Shoutbox hochladen und ggf. den eigenen Wünschen anpassen.
Die vordefinierte Smiley-Liste ist leicht um weitere Smileys zu ergänzen oder auch neue Funktionen können ihren Platz darin finden.
Die Funktionen selbst können, unabhängig davon, ob sie als Symbol angezeigt werden, in einer anderen Datei definiert werden.
Somit sind z.B. einfache Schriftformatierungen, neue Smileys, Web- & Mailadressen, Zitate oder autom. verkleinert angezeigte Bilder (öffnen bei Klick in Originalgröße in neuem Fenster) kein Problem.
Das Mitteilungs-Feld nimmt sogar mehrzeilige Einträge auf.

Eigene Ergänzungen/Änderungen (bei HTML-Kenntnissen) sind natürlich nicht ausgeschlossen, da der Quellcode ja bereits auf dem eigenen Webspace liegt und jederzeit angepasst werden kann.
Die Design-Änderungen sind zudem leicht per CSS durchzuführen.

Beiträge können wie gewohnt bequem mit der Datenbankverwaltung wie phpMyAdmin geändert und gelöscht werden.
Ein kritischer Beitrag sollte bei aktiv auf "0" gestellt werden, dadurch muss er nicht gelöscht werden (zwecks Rückverfolgung etc.), wird aber auch nicht weiterhin angezeigt.


Installationsanleitung:
Wählt in eurer Datenbankverwaltung (z.B. phpMyAdmin) eine Datenbank aus und führt dann unter SQL das Kommando aus der "shoutbox.sql.txt" aus (Text herauskopieren & einfügen), um das Grundgerüst einer neuen Tabelle für die Shoutbox zu erstellen.
Wenn dies getan ist, könnt ihr gleich in der "config.php" die Login-Daten zur Datenbank eintragen, damit die Shoutbox Zugriff auf die Datenbank erhält.
Falls ihr bisher noch kein Gebrauch von eurer MySQL-Datenbank gemacht habt, aber wisst, dass euer Webhoster dies unterstützt, dann loggt euch dort ein.
Webhoster geben meistens genaue Informationen zur Datenbankverbindung im Userbereich an.

Die Variable $visible_msgs legt einfach nur fest, wieviele der letzten Einträge geladen und angezeigt werden sollen. (Standard: 10)
Weitere Optionen könnt ihr bei Bedarf festlegen, indem ihr die Datei "shoutbox.js" bearbeitet.
Unter anderem werden dort Fehlermeldungen, Aktualisierungsrate der Beiträge und eine beliebig erweiterbare Blacklist für unerwünschte Wörter verwaltet.

Update: Die Dateien config.php und shoutbox.js sollten nicht mit dem Windows-Editor bearbeitet werden.
Ein alternativer Editor wie Notepad++ ist dafür besser geeignet.
Genauere Eläuterungen und evtl. Problem-Behebungen sind unten in meinem nächsten Beitrag zu finden.


Die Einstellungen sind damit soweit abgehakt und ihr könnt den Shoutbox-Ordner auf euren Webspace hochladen.
Geht danach auf eure Website und fügt am Ende der URL den Pfad ein, in welchem der Shoutbox-Ordner hochgeladen wurde, und ihr solltet eine einsatzbereite Shoutbox sehen, z.B. unter:

1
 
http://meinewebsite.de/shoutbox/
 


Wollt ihr die Shoutbox direkt in eure Website / euer Forum einbauen, könnt ihr das am einfachsten mit einem iFrame erledigen.

Erfahrene Anwender können die Shoutbox auch direkt in die Seite includen.
Stellt sicher, dass eure Hauptseite die Dateien "shoutbox.js" "shoutbox.css" einbettet und includet dann die "shoutbox.php".
Ggf. muss dann noch der Pfad zur "config.php" in den Dateien "get_messages.php" und "set_message.php" angepasst werden.
Style-Anweisungen können über die extra CSS-Datei "shoutbox.css" bearbeitet werden.

Sollten auch noch Funktionen erweitert und Symbole, um diese einzufügen, ergänzt werden, stehen die Dateien "bbcodes.inc" und "symbols.inc" zur Verfügung.
Erstere kümmert sich um Ersetzungen von BBCodes in Beiträgen zu Smileys, URLs, Bildern etc., letztere sind dann Grafiken/Links, um diese Forencodes per Klick in das Beitragsfeld einfügen zu können.
Im Prinzip analog zur bisherigen Symbol-Bar von Xobor, bei der noch der HTML-Code bearbeitet wurde.



Die Installation nochmal in einfacher Form im Kurzüberblick:


»  Datenbank in phpMyAdmin anlegen / bestehende auswählen.
»  Unter SQL den Inhalt von shoutbox.sql.txt eingeben und übernehmen.
»  Anmeldedaten für die Datenbank oben in die Datei config.php eingeben.
»  Ggf. weitere Einstellungen oben in der Datei shoutbox.js vornehmen.
»  Shoutbox-Ordner auf den eigenen Webspace hochladen, am Besten in das Hauptverzeichnis.
»  Shoutbox zum Test unter http://meinewebsite.de/shoutbox/ aufrufen
» bei Erfolg iFrame in Website oder Forum mit Shoutbox-Adresse im src-Attribut einfügen.



Die Shoutbox kann gerne in die eigene Website eingebunden und auch beliebig verändert/erweitert werden.
Ich bitte nur darum, die Urheber-Hinweise in den Dateien beizubehalten, als kleine Gegenleistung für die Bereitstellung. DANKE!


P.S.: Ein Screenshot und die Dateien befinden sich im Anhang.

#2 RE: Shoutbox ohne externen Anbieter von toggodamian 30.09.2011 22:56

avatar

Hallo Florian,
Das ganze funktioniert soweit bestens, Danke nochmals für diese arbeit.
Da ich ein Forum von Xobor nutze wäre es recht wen der Name drinen stehen könnte. Leider hat man bei Xobor sozusagen nicht den Webspace dazu das man es direkt im Forum drinen haben kann und somit die Variable {{user_name}} oder {{username}} nicht funktionieren werden, stimmts?
Ich hätte den vorschlag den Namen per Cookie zu speichern so das man ihn nur einmal eingeben muss und dann bei nächsten einträgen nicht mehr.
Wäre es realisierbar?

#3 RE: Shoutbox ohne externen Anbieter von florian-zier 01.10.2011 19:48

avatar

Hallo toggo,
eigentlich ja keine schlechte Idee, für den Foren-Betrieb den Usernamen automatisch einzutragen.
Das wird ja schließlich schon sehr lange von Xoborianern für die Shoutbox von Xobor gefordert.
Das mit den Cookies werde ich wohl in absehbarer Zeit nicht einbauen. Tut mir leid!

Aber nur, weil es wirklich eine alternative benutzerfreundliche Version gibt!
Da womöglich die meisten Administratoren die Shoutbox ja für ihr Forum einsetzen möchten, gibt es jetzt doch eine Möglichkeit, den Benutzernamen direkt einzutragen.
Wenn der Benutzer nicht registriert ist, bleibt das Usernamen-Feld leer.
Zudem gibt es eine neue Option in der config.php, welche das nachträgliche Bearbeiten des automatisch eingetragenen Usernamens erlaubt oder verbietet.
Somit kannst du sicherstellen, dass Foren-User keinen anderen Namen eintragen, oder eben dass sie die Vorauswahl doch noch verändern können.

Das erneuerte Komplett-Paket ist im Anhang des ersten Beitrages zu finden.


Die geänderten Dateien sind:
» config.php
» shoutbox.js
» shoutbox.php


Um die Einstellungen nicht nochmals komplett neu vornehmen zu müssen, kann der Einstellungsblock kopiert und oben in die neue Datei wieder eingefügt werden.
Dabei ist zu beachten, dass die Einstellungen der config.php um folgende Zeile ergänzt wurden:

1
 
$autouser_edit	=	false;				# true/false: automatischer Benutzername bearbeitbar
 




Ein Username für die Shoutbox kann vorgegeben werden, indem der URL-Parameter "user_name" an die URL angehängt wird.
Dadurch würde sich für den Einbau ins Template folgender iFrame eignen:

1
 
<iframe frameborder="0" height="480" width="250" src="http://meinewebsite.de/shoutbox/index.php?user_name={{user_name|urlencode}}"></iframe>
 


Damit z.B. nur registrierte User Zugriff auf die Shoutbox haben, müssen eben noch die entsprechenden Template-Variablen drumherumgesetzt werden.

Durch die Möglichkeit, eigene Seiten im Forum zu erstellen, kann die Shoutbox auch auf eine Extra-Seite verlegt werden (s. Screenshot, hier nicht für User erreichbar).
Dadurch wird sie nicht auf jeder Foren-Seite mitgeladen, ist aber dennoch im Forum verfügbar.
Mit Center-Tags kann die Shoubox dann schön mittig auf der Seite positioniert werden (vorher "HTML-Quellcode bearbeiten"-Button klicken):

1
2
3
 
<center>
<iframe frameborder="0" height="480" width="250" src="http://meinewebsite.de/shoutbox/index.php?user_name={{user_name|urlencode}}"></iframe>
</center>
 


Aber Achtung: In den weiteren Einstellungen muss "Diese Seite als Template inkl. Template Variabeln ausführen" aktiviert sein.
Weiterhin können die Zugriffrechte hier einfach per Mausklick vergeben werden und man kann auf weitere Template-Variablen wie für registrierte User/Admin etc. verzichten.



Wichtiger Hinweis:
Die Einstellungen in der config.php und shoutbox.php sollten nicht mehr mit dem Windows-Editor durchgeführt werden, sondern einem alternativen Editor wie z.B. Notepad++.
Wichtig ist, dass beim Abspeichern das Format UTF-8 verwendet und dabei nicht automatisch das BOM gesetzt wird. (Weitere Informationen)
Der Windows-Editor kann zwar auch in UTF-8 speichern, setzt aber automatisch das BOM.
Dadurch erscheint vor dem obersten Beitrag fälschlicherweise die Zeichenfolge "".

Der Menüpunkt zur Auwahl des Formates bzw. ggf. zur Konvertierung befindet sich in Notepad++ unter dem Menüpunkt Kodierung.
Sollte aus Versehen das BOM gesetzt worden sein, sollte das Dokument zu "UTF-8 ohne BOM" zurückkonvertiert und wieder gespeichert werden.
Nach erneutem Hochladen sollte die kryptische Zeichenfolge verschwunden sein.


Viel Spaß noch mit der überarbeiteten Shoutbox!

#4 RE: Shoutbox ohne externen Anbieter von toggodamian 02.10.2011 02:44

avatar

Hey Florian,
Hab ich dir schonmal gesagt das du der Hammer bist? Das ist ja wirklich genial!
Mist, mir fällt gerade auf das ich noch ein Wünsch hätte, und zwar wäre es dieser wen keine Nachrichten da sind das vom System eine meldung erscheint das die Einträge gelöscht wurden oder eine Art Willkommensgruß "Willkommen in der Shoutbox..." ist aber nicht sehr wichtig, nur eine Idee...

#5 RE: Shoutbox ohne externen Anbieter von florian-zier 02.10.2011 18:03

avatar

Hi toggo,
die Idee ist eigentlich gar nicht schlecht.
Sie war nur nicht implementiert, weil ich ja bereits mehrere Testbeiträge darin hatte.
Da macht man sich dann keine Gedanken mehr um eine leere Shoutbox.

Und selbst wenn, hätte man ja immer noch die Möglichkeit, als Administrator einen ersten Willkommen-Beitrag zu verfassen.
Aber auf deinen Wunsch habe ich nun kurzfristig noch die Möglichkeit eingebaut, auch ohne verfasste Nachricht einen Text anzuzeigen. (Anhang im 1. Beitrag)

Die Datei get_messages.php wird nun einfach komplett ersetzt.
Die config.php wird hingegen durch folgende neue Option ergänzt:

1
2
3
 
# (Willkommens)-Nachricht bei leerer Shoutbox (HTML erlaubt):
$msg_empty = '<br />Diese Shoutbox enthält noch keine Einträge.<br /><br />'."\r\n".
'Nutze doch einfach die Gelegenheit, dich als Erster einzutragen...';
 



Das "r n" am Ende des Textes sorgt nur für einen Zeilenumbruch im Quellcode (nur zur Quellcode-Lesbarkeit), die BRs sind wichtiger, denn sie sind für die sichtbaren Umbrüche im Text zuständig.
Strings werden in PHP mit "." aneinandergereiht (verkettet), im Gegensatz zu "+" bei z.B. JavaScript.
Nur zur einfacheren Lesbarkeit habe ich nicht alles in eine Zeile geschrieben sondern miteinander verkettet.

Aber man sieht, dass in der Anfangsnachricht HTML erlaubt ist.
Der Administrator kann hier einen Text festlegen und ggf. formatieren (oder auch Bilder etc.), der bei einer leeren Beitragsliste angezeigt wird.


P.S.:
Schaue gerne einmal in die BBCodes.inc.
Auch wenn dort alles zuerst ein bisschen Wirr aussieht, so kannst du zumindest erkennen, welche Foren-Codes standardmäßig auch in der Shoutbox verfügbar sind.
Und dadurch eben auch mal Bilder, Links und Mail-Adressen ausprobieren.
Zweiteilige Tags wie B, U, I sollten auch relativ leicht nach dem gleichen Schema erweiterbar sein, genauso wie einteilige, z.B. Smileys etc.
Nur die erweiterten wie für Links, Bilder etc. sind evtl. etwas schwieriger anzulegen, je nach Anforderung.

Wenn dir noch Smileys fehlen, fühle dich frei, in der Symbols.inc deine eigenen Smileys zu ergänzen, welche du natürlich als Forencode vorher in der BBCodes.inc angelegt haben solltest.
Die Schemen sind eigentlich leicht durchschau- und erweiterbar.

(am Besten mit Notepad++ bearbeiten, um das BOM zu vermeiden. )

#6 RE: Shoutbox ohne externen Anbieter von toggodamian 03.10.2011 02:07

avatar

Hallo Florian,
Auch hier besten dank dafür es funktioniert einfach perfekt! du bist ein genie beim Programmieren

#7 RE: Shoutbox ohne externen Anbieter von florian-zier 03.10.2011 22:55

avatar

Danke danke,
nicht nur für das überschwängliche Lob, auch für deine Rückmeldung.

Ich würde dich hier gerne kurz zitieren, um anderen Usern Probleme mit der Blacklist zu ersparen:

Zitat von toggodamian
Mir fällt gerade auf das das mit den Schimpfwörtern nicht funktioniert...


Da hast du leider recht! Das war's wohl mit der Perfektion.

Naja, im Grunde funktioniert die Liste eigentlich.
Der kleine Bug ist es, Großschreibung in den Wörtern zu verwenden.
Wenn alle Wörtern kleingeschrieben wurden, dann funktioniert es sogar tatsächlich.
War natürlich doof von mir, dann Beispiele reinzuschreiben, welche groß anfangen.

Dabei ist es später dann egal, ob ein böser Nutzer dann GrOß- UnD KlEiNsChReIbUnG verwendet oder nicht.
Nur die Filter-Wörter müsste man klein schreiben.


Du hast nun drei Möglichkeiten, das zu korrigieren:

» In der Datei shoutbox.js und Funktion setMessage() folgende Teil gegen den anderen austauschen:

1
2
3
 
if (msg_name.toLowerCase().indexOf(vulgarly_words[i])!=-1 || msg_message.toLowerCase().indexOf(vulgarly_words[i])!=-1)
 
if (msg_name.toLowerCase().indexOf(vulgarly_words[i].toLowerCase())!=-1 || msg_message.toLowerCase().indexOf(vulgarly_words[i].toLowerCase())!=-1)
 



» Die Datei shoutbox.js aus dem erneuerten Archiv oben verwenden und deinen Einstellungs-Block wieder übernehmen.

» Alle Wörter klein schreiben. (Zahlen aber auch erlaubt)




Ich sollte noch erwähnen, dass diese Liste kein 100%-iger Schutz ist.
Wenn das Wort (unabhängig von Groß-/Kleinschreibung) etwas anders geschrieben wurde, dann greift der Filter bereits nicht mehr.
Außerdem sollte man nicht (kurze) Wörter verwenden, welche gerne schonmal in einem anderen Wort vorkommen.
RotbARSCHfilet würde dann den Beitrag z.B. blockieren, welcher Wortteil dafür der Grund ist, lasse ich jetzt mal offfen.


Aber auf diese Kleinigkeit mit der Schreibweise habe ich leider nicht mehr geachtet - und prompt passiert's.
Aber nun konnte das wenigstens noch Behoben werden, danke nochmals für den Hinweis.

Genug gekritzelt, schlaf noch gut!

#8 RE: Shoutbox ohne externen Anbieter von toggodamian 03.10.2011 23:07

avatar

Ich trage es morgen ein.
Rückmeldung kommt morgen
Wünsche dir auch Gute Nacht und schonmal Danke fürs Beheben
PS: Perfekt ist keiner Fehler können immer Passieren dafür sind Tester nunmal da

#9 RE: Shoutbox ohne externen Anbieter von DJ-Frechdax 13.04.2015 20:49

hallo

datenbank usw erfolgreich alles erledigt

nur mit dem einbauen ins forum da komm ich nicht weiter da ich was das angeht neuling bin
ich würde es gerne inkluden und an meinen style des forums anpassen
also auch die breite usw

könnte ich da unterstützung bekommen bitte

mfg mike

#10 RE: Shoutbox ohne externen Anbieter von florian-zier 14.04.2015 19:26

avatar

Also hast du die config.php und shoutbox.php bereits entsprechend angepasst?

Dann lege dir unter Admin -> Layout -> Eigene Seiten eine neue Seite an, bei welcher in den erweiterten Einstellungen der Haken "Diese Seite als Template inkl. Template Variabeln ausführen" aktiviert ist.

Analog zu Beitrag #3 fügst du als Inhalt der Seite einen IFrame ein:

1
 
<iframe frameborder="0" height="480" width="250" src="http://www.meinserver.de/shoutbox/index.php?user_name={{user_name|urlencode}}"></iframe>
 


Die Adresse des iFrames muss auf die index.php in dem Shoutbox-Ordner deiner Website eingestellt sein.


Wenn du dann die neu erstellte Seite in deinem Forum über die Navigation aufrufst und alles korrekt eingerichtet hast, solltest du nun eine Shoutbox auf der Seite sehen. Wenn das nicht klappt, brauchst du erstmal nicht versuchen, weitere Anpassungen vorzunehmen. Das muss zuerst einmal alles so laufen. Probiere dann ggf. die Adresse im src-Attribut des IFrames mal direkt in deinem Browser aufzurufen. Wenn du dann keine Shoutbox siehst oder sie Fehler enthält, dann stimmt entweder die Adresse nicht oder die Einrichtung ist noch nicht korrekt.


P.S.: Die Shoutbox lässt sich zwar in das Forum einbinden, wurde ursprünglich aber so erstellt, dass man sie auch in der eigenen Website einbauen kann. Sie hängt also nicht vom Forum ab und ist daher auch unabhängig außerhalb aufrufbar.

#11 RE: Shoutbox ohne externen Anbieter von DJ-Frechdax 14.04.2015 20:08

Also ich würde sie gerne auf der hauptseite in meinem forum einbinden
Und an meinen style anpassen und zwar so das nur registrierte User
Sie nutzen können... Gäste sie aber sehen können

Wie stell ich das an am besten
Bzw wie schaut der Code aus

http://dj-frechdax.bplaced.net/shoutbox/

Mein Board german-intruders.de

#12 RE: Shoutbox ohne externen Anbieter von florian-zier 14.04.2015 20:32

avatar

Dann hast du ja deine URL für den IFrame:

1
 
<iframe width="250" height="480" src="http://dj-frechdax.bplaced.net/shoutbox/index.php?user_name={{user_name|urlencode}}"></iframe>
 

In dem Ordner liegt auch eine Datei shoutbox.css bei, in der kannst du das vorgegebene Design abändern und erweitern.


Wenn du die Shoutbox nicht auf einer eigenen Seite einbindest (welche bereits über Rechte-Einstellungen verfügt), dann kannst du den IFrame auch mit Template-Variablen einrahmen:

1
2
3
 
{{user_registered==true.start}}
<iframe width="250" height="480" src="http://dj-frechdax.bplaced.net/shoutbox/index.php?user_name={{user_name|urlencode}}"></iframe>
{{user_registered==true.end}}
 


Wo genau die Shoutbox erscheint, kommt darauf an, in welches Template-Element du den Quellcode in deinem Plugin einsetzst.

#13 RE: Shoutbox ohne externen Anbieter von DJ-Frechdax 15.04.2015 13:02

Teste ich heute Abend mal aus danke dir

Frage: ist es eigentlich machbar den Chat von xobor als iframe oder so auf der hauptseite einzubauen und etwas anzupassen in Höhe oder so
Das er immer offen und sichtbar ist... Dann könnte man sich die sbox sparen

#14 RE: Shoutbox ohne externen Anbieter von florian-zier 15.04.2015 17:08

avatar

Nein, der Xobor-Chat läuft nicht unabhängig. Den kannst du also nicht extra aufrufen.

#15 RE: Shoutbox ohne externen Anbieter von DJ-Frechdax 24.07.2015 19:22

hab da mal noch ne frage

wie stelle ich das an das die nachricht nicht unter dem namen steht sondern daneben?
und wie pflege ich neue smilies ein

am besten unter einem button versteckt (Smilies) so wie hier in der iconbar oder so in der art

bzw auch eine kleine iconbar button wo zum beispiel bbcodes versteckt sind wie größe farbe dick kursiv usw

#16 RE: Shoutbox ohne externen Anbieter von florian-zier 26.07.2015 17:27

avatar

Die eigentliche Ersetzung von Foren-in HTML-Codes (und damit auch img-Tags mit Smilies) geschieht über reguläre Ausdrücke und diese findest du in der Datei bbcodes.inc.

Um die Anordnung von Namens und Nachrichten-Feld zu ändern, kannst du den Aufbau der Tabelle darum in der shoutbox.php ändern. Dort findest du auch ein include('symbols.inc'), in dieser Datei sind die angezeigten Smiley-Icons enthalten, welche die Foren-Codes bei Klick in das Textfeld einfügen. Dort kannst du bei Bedarf auch die Smileys in einen eigenen Container packen oder weitere Symbole für Kursiv etc. nachrüsten.

#17 RE: Shoutbox ohne externen Anbieter von DJ-Frechdax 26.07.2015 17:42

das klingt mal sehr kompliziert

damit bin ich wohl etwas überfordert
zumahl ich auch das problem habe das ich in der css sachen geändert habe wieder hochgeschoben habe
aber sich in der ansicht nix ändert leider

aber danke trotzdem für deine antwort

#18 RE: Shoutbox ohne externen Anbieter von florian-zier 26.07.2015 17:58

avatar

Die regulären Ausdrücke zu erlernen lohnt sich auf jeden Fall wirklich, da man diese immer mal wieder gut gebrauchen kann.

Hast du die geänderte CSS auch mal auf dem Server überprüft, ob sie wirklich richtig hochgeladen wurde, manchmal verraut man dem Upload-Programm einfach etwas zu sehr.
Oder du hast CSS-Selektoren ergänzt, welche so nicht auf ein Element zutreffen und daher keine Anwendung finden. Vielleicht liegt die CSS aber einfach noch im Cache deines Browsers und wurde nicht erneut abgerufen.

#19 RE: Shoutbox ohne externen Anbieter von DJ-Frechdax 26.07.2015 18:07

nein ich habe nur größe und farbe geändert....

habe sogar schon die css vom server gelöscht und neu hochgeschoben
nix passiert...cache cookies usw auch schon gelöscht bzw geleert

und in 2 browsern probiert

#20 RE: Shoutbox ohne externen Anbieter von DJ-Frechdax 01.08.2015 21:58




so ungefähr hatte ich mir das vorgestellt aber irgendwie finde ich mich nicht zurecht

hoffe du kannst mir weiter helfen

Xobor Forum Software von Xobor
Einfach ein eigenes Forum erstellen
Datenschutz