Haumis wbb hilfe (http://haumis-wbb-hilfe.de/wbb2/index.php)
- WBB2 (http://haumis-wbb-hilfe.de/wbb2/board.php?boardid=3)
-- Fragen zum WBB2 (http://haumis-wbb-hilfe.de/wbb2/board.php?boardid=4)
--- Shoutbox leeren (http://haumis-wbb-hilfe.de/wbb2/thread.php?threadid=1373)


Geschrieben von katze2ooo am 07.04.2011 um 19:13:

icon13 Shoutbox leeren

Hi,

gibt es eine Möglichkeit die Shoutbox Devils Shoutbox RC1 von alfie wbb 2.3x
automatisch leeren zu lassen?
Etwa mit einer Uhrzeit um 3:00 Uhr morgens z.B..

Gruß katze2ooo



Geschrieben von haumi am 07.04.2011 um 19:42:

 

Ich denke mal das wird so nicht ganz gehen.
Es muss ja ein Ereignis da sein, welches den Löschbefehl gibt.
Wenn ich das in der php-Datei einbaue dann muss die php-Datei nachts um 3 aufgerufen werden, dann geht das.
Man muss sich somit mal Gedanken machen Wie man nachts um 3 (als Beispiel) eine Aktion starten kann.
Wenn wir das rausgefunden haben dann ist das Löschen kein Problem mehr.
Alternativ könnte man es so einrichten, das der erste Aufruf des Board nach 24 Uhr oder nach 3 Uhr die Löschung vornimmt.

Ein Automatismus wäre natürlich besser.

LG
haumi



Geschrieben von Listiger_Falke am 07.04.2011 um 20:10:

 

Also das muß es als Codeschnipsel geben, ich habe schon mehrere Foren gesehen, wo dieses geschied. Ich würde mal bei GT-Corner schauen obs dafür ein Addon gibt st12


So, edit: Coolguppi hatte es Da ja schon gepostet, es gibt was als Lösung per PN.
Allerdings ist Coolguppi im moment schwer mal zu erreichen



Geschrieben von Mirko81 am 07.04.2011 um 20:20:

 

Im Hopfen gab es das auch allerdings für das Lite1 habe ich gesehen unter addons.



Geschrieben von haumi am 07.04.2011 um 20:40:

 

Das Löschen der Shoutboxinhalte is kein Problem sondern der Zeitpunkt.
Ich kenne auch Boards, wenn ich morgens dort hin komme ist die Box leer.
Das muss aber nicht Nachts um 3 passiert sein.
Da bin ich fast sicher das die Box beim ersten Aufruf - nach ich sag mal 3 Uhr -
geleert wird.
Der Löschbefehl muss ja abgesetzt werden und wenn niemand auf das Board zugreift, kann auch keine Anfrage an die Datenbank gesendet werden.
Wie ich schon schrieb, wenn wir rausfinden wie man nachts um 3 eine Aktion aufrufen kann dann ist der Rest kein Problem mehr.
Nur wenn alle PCs ausgeschaltet sind muss der Anstoß vom Server kommen.
und da könnte es etwas geben was ich zur Zeit aber nicht weiß.
Hier ist Speddy gefragt, der ja unser Serverexperte ist.

LG
haumi04



Geschrieben von katze2ooo am 07.04.2011 um 21:48:

 

Hi

Zitat:
Original von Listiger_Falke
Also das muß es als Codeschnipsel geben, ich habe schon mehrere Foren gesehen, wo dieses geschied. Ich würde mal bei GT-Corner schauen obs dafür ein Addon gibt st12


So, edit: Coolguppi hatte es Da ja schon gepostet, es gibt was als Lösung per PN.
Allerdings ist Coolguppi im moment schwer mal zu erreichen


Das kannste vergessen, die Antwortet ja nicht mal auf meine PM und auf meine Anfrage im Thread, auch wenn sie online ist.
Gruß katze2ooo



Geschrieben von Listiger_Falke am 07.04.2011 um 21:51:

 

Also wenn es zwingend um 3 Uhr Morgends stattfinden muß, dann wäre das wohl nur über einen Crownjob zu regeln.

Ich bezweifle aber, das dies notwendig ist.Ich gehe mal davon aus, das auch nur bei Seitenaufruf die Löschung erfolgen muß. Alles andere wäre auch Blödsinn, wenn keiner im Forum ist, kann es auch keinen interessieren, ob die Shoutbox um punkt 3 bereinigt wurde. Wenn jemand um 4 das Forum betritt, und 3 Uhr ist eingestellt, dann erfolgt halt um 4 die Löschung...



Geschrieben von katze2ooo am 07.04.2011 um 22:04:

 

hi,
ich schrieb doch oben z.B um 3 und nicht Punkt 3 Uhr.
Sie sollte eben gelöscht werden und das in einem Zeitraum
ab 2 Uhr - x.
Wenn dies durch einen Seitenaufruf geht ist die Uhrzeit nach hinten eh wurscht.
Gruß katze2ooo



Geschrieben von Listiger_Falke am 07.04.2011 um 22:14:

 

Ich habe mir eben den Codeschnipsel der Liteversion durchgelesen.

Ich poste den jetzt nicht hier, weil Jochen das nicht mag, aber...

http://www.hopfenschlodel.de/thread.php?threadid=44789&sid=&page=8

(Seite 8 des Treads) .... hat Jochen eine Lösung geschrieben. Diese Lösung dürfte auch für das wbb.2.3.6 funktionieren, das es ja nur ein Tabellenbereinigungsbefehl ist.

PS: Allerdings dann um genau 0.00 Uhr



Geschrieben von Flughund am 08.04.2011 um 06:05:

 

Guten Morgen zusammen st1


ja nun trozdem ich Denke mal das die Tabellenbefehle zwischen den WBB2 unn den WBBLite nicht die gleichen sind.Die werden da sicher anders aufgerufen.



Liebe Grüße
Flughund st1 st1 st1



Geschrieben von Listiger_Falke am 08.04.2011 um 13:13:

 

ähm.... nein

Ein Befehl eine Tabelle zu leeren, gemeint ist natürlich eine SQL-Tabelle, ist und bleibt ein SQL-Befehl. Zwar mag der interne Aufbau zwischen dem lite und dem 2.3.6 verschieden sein, aber das betrifft ja nicht die SQL-Datenbank. Diese bleibt ja unabhängigt davon, welches Board(Software) installiert wurde, die gleiche. Jedes Board/Jede Software muß ja die Standart-Befehle für die SQL-Datenbank benutzen. Das Board beeinflußt ja auch nicht das PHP. Sondern das PHP (Version) das Board st12

Bleibt also die Frage, ob der Tabellenname gleich ist. Und da für die 2er-Versionen ja keine neuen Tabellennamen kreiert wurden, ist der Befehl so auch für ein 2.3.6 gültig.

Die Frage ist dann letzten Endes nur, ob die Suchstelle, nach der der Befehl für die Tabellenleerung eingesetzt werden soll, auch so im Guthabenhack für die 2er Version vorkommt. Ich habe den jetzt nicht durchgeschaut, aber ich nehme an, das der Aufruf die ./acp/lib/boerse.php aufzurufen, noch verstanden wird. Ob dies nun durch ein "require" oder durch ein "require_ones" getan wird, ist letzten Endes unerheblich. Die Grundsuchstelle zum einbinden muß also das einbinden der ./acp/lib/boerse.php sein, und hinter dem Befehl der SQL-Befehl kommen.

Soweit ich weiß benutzt katze2ooo den Guthabenhack, ergo sollte der Codeschnipsel bei Ihm auch gehen. st1



Geschrieben von katze2ooo am 08.04.2011 um 18:12:

 

Hi,

das von wwb light ist für mich uninteressant, 0 Uhr brauch ich nicht.
Danke trotzdem.
Gruß katze2ooo



Geschrieben von haumi am 08.04.2011 um 19:42:

 

ich überlege auch schon, welche Kriterien man nehmen könnte.
Leider kann man nicht vorhersagen, wann die ersten nach z. B. 2 Uhr wieder on gehen und nicht wann die letzen in der Nacht das Board verlassen.
Hier etwas zu machen ist somit gar nicht so einfach.
Ich versuche aber weiter eine Lösung zu finden.

LG
haumi04



Geschrieben von Flughund am 10.04.2011 um 10:36:

 

Guten Morgen zusammen


nun ich Denke mal viele Möglichkeiten wird es da sicher nicht geben. Ausser vielleicht eine Cronjob Lösung.

Denn niemand wird da bei Nacht aufstehen um die Box zu leeren st11

Zudem siend ja viele auch Nachts noch aktiv in den Forums.Also bei mir ist das jedenfalls so st3


Liebe Grüße
Flughund



Geschrieben von Tinchen am 10.04.2011 um 15:52:

 

Ich hatte das auch mal drin, funktioniert aber nur wenn reale User online sind und keine Bot´s. Der Code war von Coolguppi....aber war auch noch nich so wirklich ausgereift, da er die Box mehrmals hinter einander leerte.



Geschrieben von haumi am 20.04.2011 um 08:13:

 

Da man hier keinen konkreten Wert hat von dem man das abhängig macht ist es doch schwer das zu realisieren.
Ich bin nun hingegangen und habe folgendes gemacht:

1) Wird das Board erstmalig zwischen 3 und 18 Uhr aufgerufen UND ein Überwachungsschalter steht auf 1, dann wird die Box gelehrt und ein Schalter wird auf Null gesetzt.

2) Wird das Board zwischen 19 und 24 Uhr auch nur einmal aufgerufen, so wird der Schalter von Null auf Eins gesetzt.

Bedingung 1: if($stunde >= 3 && $stunde <= 18 && $leerbit==1)
Aktion: Leere Shoutbox und setze leerbit auf 0.

Bedingung 2: if($stunde >= 19 && $stunde <= 24 && $leerbit==0)
Aktion: Setze leerbit auf 1.

Ich habs mal so bei mir im Testboard eingebaut und warte den morgigen Tag mal ab.
Sollte es funktionieren, wovon ich ausgehe, dann wird es auch bei Katze eingebaut.

Anm. Es muss somit ein Mitglied zwischen 3 Uhr morgens und 18 Uhr das Board aufrufen und auch zwischen 19 und 24 Uhr.
Ich denke dass das bei den Boards auch gegeben ist.

Ich werde berichten.

LG
haumi04



Geschrieben von haumi am 21.04.2011 um 07:30:

 

So das Ganze funktioniert.
Ich hab noch eine kleine Erweiterung eingebracht.
Wenn die Box geleert ist dann kommt ein neuer Eintrag, der lautet:

Der unheimlische Shoutboxentleerer hat wieder zugeschlagen!

Man kann das ganz weglassen oder aber auch den Text abändern.

Ich schau mal das dieser Eintrag nach dem 2ten Post automatisch gelöscht wird.

Ich baue es mal hier und bei Katze ein.

LG
haumi04



Geschrieben von wudi am 21.04.2011 um 12:41:

 

Klingt interessant.

Wäre vielleicht auch etwas für mein Board. st8

LG

wudi



Geschrieben von haumi am 22.04.2011 um 10:39:

 

Hier mal wie es geht für die Devils Shoutbox!

Führe folgende SQL-Anweisung durch:
(im ACP unter SQL Abfragen bei SQL-Abfrage(n) eingeben: )

ALTER TABLE `bb1_shoutbox_config` ADD `leerbit` tinyint(1) DEFAULT '0' NOT NULL;

Öffne die index.php und suche:

code:
1:
eval("\$tpl->output("".$tpl->get("index")."");");


Füge dadrüber ein:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
//Shoutbox leeren Anfang
$config_row = $db->query_first("SELECT * FROM bb".$n."_shoutbox_config");
$config_row = stripslashes_array($config_row);

$leerbit = $config_row['leerbit'];
$anzahl = $config_row['id'];
$stunde = date("H");
$time = time();

if($stunde >= 03 && $stunde < 18 && $leerbit==1) {
$leeren = mysql_query("TRUNCATE  bb1_shoutbox_messages");
$leer_setz = mysql_query("UPDATE bb1_shoutbox_config SET leerbit = 0 ");
$gruss = mysql_query("INSERT INTO bb1_shoutbox_messages (userid,message,time,befehl,farbe,pn,pnuserid,buzzerid) VALUES ('1','Hier war unser :suck_kr: am Werk.:smily1083:','$time','0','#FF0000','0','0','0')");
}
$anzahl = $db->query_first("SELECT COUNT(id) FROM bb".$n."_shoutbox_messages");
$anzahl = $anzahl[0];


if($anzahl >= 2) {
$loesch = mysql_query("DELETE FROM bb".$n."_shoutbox_messages WHERE id ='1'");
}

if(($stunde >= 19 && $stunde <= 24) && $leerbit==0) {
	$leer_setz = mysql_query("UPDATE bb1_shoutbox_config SET leerbit = 1 ");
}
//Shoutbox leeren Ende


Wenn kein Shout nach dem leeren erwünscht ist folgende Zeile aus dem Code löschen:

code:
1:
$gruss = mysql_query("INSERT INTO bb1_shoutbox_messages (userid,message,time,befehl,farbe,pn,pnuserid,buzzerid) VALUES ('1','Hier war unser :suck_kr: am Werk.:smily1083:','$time','0','#FF0000','0','0','0')");

Ansonsten den jetztigen Text gegen euren Text tauschen und zwar
Hier war unser :suck_kr: am Werk.:smily1083:
ist der hier benutze Text mit 2 Smilies.
Bitte darauf achten das euer Text zwischen den beiden Hochkommas steht ' Euer Text ' !

Speichern und fertig ist es.

Anm.: Die automatische Shout wir gelöscht, wenn 2 Shouts da sind und die Index.php erneut aufgerufen wird.

Hier mal wie es geht für die XY - Shoutbox!

Führe folgende SQL-Anweisung durch:
(im ACP unter SQL Abfragen bei SQL-Abfrage(n) eingeben: )


CREATE TABLE `bb1_xy_shoutbox_config` (
`leerbit` TINYINT( 11 ) NOT NULL DEFAULT '0'
) ;
INSERT INTO `bb1_xy_shoutbox_config` SET leerbit = 0;


Öffne die index.php und suche:

code:
1:
eval("\$tpl->output("".$tpl->get("index")."");");


Füge dadrüber ein:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
$config_row = $db->query_first("SELECT * FROM bb".$n."_xy_shoutbox_config");
$config_row = stripslashes_array($config_row);

$leerbit = $config_row['leerbit'];
$anzahl = $config_row['id'];
$stunde = date("H");
$time = time();
$name = $wbbuserdata['username'];


if($stunde >= 03 && $stunde < 18 && $leerbit==1) {
$leeren = mysql_query("TRUNCATE  bb".$n."_xy_shoutbox");
$leer_setz = mysql_query("UPDATE bb".$n."_xy_shoutbox_config SET leerbit = 0 ");
$gruss = mysql_query("INSERT INTO bb".$n."_xy_shoutbox (name,comment,date) VALUES ('$name','Die Box ist leer :staubsauger:','$time')");
}
	$anzahl = $db->query_first("SELECT COUNT(id) FROM bb".$n."_xy_shoutbox");
$anzahl = $anzahl[0];

if($anzahl >= 2) {
$loesch = mysql_query("DELETE FROM bb".$n."_xy_shoutbox WHERE id ='1'");
}

if(($stunde >= 19 && $stunde <= 24) && $leerbit==0) {
	$leer_setz = mysql_query("UPDATE bb1_xy_shoutbox_config SET leerbit = 1 ");
}



Wenn kein Shout nach dem leeren erwünscht ist folgende Zeile aus dem Code löschen:

code:
1:
$gruss = mysql_query("INSERT INTO bb".$n."_xy_shoutbox (name,comment,date) VALUES ('$name','Die Box ist leer :staubsauger:','$time')");

Ansonsten den jetztigen Text gegen euren Text tauschen und zwar
Die Box ist leer :staubsauger:
ist der hier benutze Text mit 1 Smilie.
Bitte darauf achten das euer Text zwischen den beiden Hochkommas steht ' Euer Text ' !

Speichern und fertig ist es.




Auch hier gilt, die index.php und die Datenbank vorher sichern!

Wenn etwas unklar sein sollte bitte hier fragen bevor man etwas falsch macht.
Es wird auch Hilfe gegeben wenn etwas nicht so ganz geklappt hat.

Urheber ist haumi - aber jeder kann es frei verwenden und nach belieben abändern.



Geschrieben von wudi am 22.04.2011 um 11:18:

 

Den Code in der index.php darunter einfügen?

Ich würde eher vermuten, das der Code darüber eingefügt wird.

Oder bin ich da jetzt voll auf dem Holzweg? st8

LG

wudi


Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH