Beiträge automatisch löschen. |
|
Beiträge automatisch löschen. |
Beitrag Nr.: 1 |
Hallo zusammen
Ich betreibe ein wbb2.3.6. und in diesem Forum ist auch eine Suche/Biete Sektion drin.
Kann man es irgendwie im acp oder durch einen hack einstellen, das in diesen beiden foren die Beiträge automatisch nach 14 Tagen gelöscht werden?
Danke schonmal im vorraus.
MfG Powerman6672
|
|
29.11.2009 10:22 |
|
|
|
Hey POwer...,
ja da gab es ein hack weis aber nicht wie der heißtich schaue mal ob ich wasfinde ggf. ;) suchen alle mit xD
__________________ Wer in meinen Beiträgen Rechtschreipfähler findet.....darf Sie behalten
NICHT KLICKEN!!!
|
|
29.11.2009 11:15 |
|
|
haumi
Boardbetreiber
[meine Galerie]
Dabei seit: 06.06.2009
Beiträge: 3.441
Herkunft: NRW
Postid: 1847
|
|
Ich habs soweit fertig, das aus der Tabelle
bb1_threads alle Einträge eines bestimmten Forums die älter sind als 14 Tage gelöscht werden
bb1_posts alle zugehörigen Postings gelöscht werden.
bb1_boards der Tabelleneintrag zurückgesetzt wird, wenn in den 14 Tagen keine neuer Eintrag efolgte.
bzw.
bb1_boards Einträge der Themen und Beiträge aktualisiert werden, wenn in den 14 Tagen neue Einträge gemacht wurden
der code hierzu sieht wie folgt aus:
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:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
|
#######Anfang Autolöschung#######
$zeit=time();
$zeit1=intval($zeit-'1209600');
$auswahls=array(148,151,154);
$i=0;
while($i < count($auswahls)) {
$auswahl = $auswahls[$i];
$ergebnis = $db->unbuffered_query("SELECT * FROM bb1_boards where boardid=$auswahl");
$erg = mysql_fetch_object($ergebnis);
$ergo = $erg->lastthreadid;
$result = $db->unbuffered_query("SELECT * FROM bb1_threads where boardid=$auswahl AND starttime<$zeit1");
while($ds = mysql_fetch_object($result)) {
$starttime = $ds->starttime;
$idthread = $ds->threadid;
$auswahl = $ds->boardid;
$dell= "DELETE FROM bb1_threads WHERE threadid='".$ds->threadid."'";
$dummy = mysql_query($dell);
$dell= "DELETE FROM bb1_posts WHERE threadid='".$ds->threadid."'";
$dummy = mysql_query($dell);
list($threadcount) = $db->query_first("SELECT COUNT(*) FROM bb".$n."_threads WHERE boardid=$auswahl");
list($postcount) = $db->query_first("SELECT COUNT(*) FROM bb".$n."_posts p, bb".$n."_threads t WHERE p.threadid=t.threadid AND t.boardid =$auswahl AND p.visible=1");
if ($ergo==$idthread) {
$update="UPDATE `bb1_boards` SET `threadcount` = 0, `postcount` = 0, `lastthreadid` = 0, `lastposttime` = 0, `lastposterid` = 0, `lastposter` = '0', `threadsperpage` = 0, `postsperpage` = 0, `postorder` = 0, `countuserposts` = 1, `hotthread_reply` = 0, `hotthread_view` = 0 WHERE `bb1_boards`.`boardid` = $auswahl;";
$dummy = mysql_query($update);
}
else {
$update1="UPDATE `bb1_boards` SET `threadcount` = $threadcount, `postcount` =$postcount where boardid=$auswahl";
$dummy = mysql_query($update1);
}
}
$i++;
}
#######Ende Autolöschung####### |
|
$auswahls=array(148,151,154);
Sollte so funktionieren (getestet in 2 Boards)
Ich muss noch mal nachsehen wie es mit eventuell vorhandenen Dateianhängen ist, oder kann man das ausschließen?
Andererseit tun die keinem weh, wenn sie in der Tabelle verbleiben.
Ich habs mal in der board.php untergebracht und zwar unter:
require('./global.php');
$lang->load('START,BOARD');
Man kann den Code auch in einer eigenen php-Datei speichern -
postdel.php und diese dann in der board.php einbinden unter
require('./global.php'); als
require('./postdel.php');
Solltest du, Powerman6672, dich jedoch mit php etwas auskennen darfst du gerne das bei dir selbst einbauen und anpassen.
NUR DARAN DENKEN; VORHER DIE DATENBANK SICHERN, DA HIER, BEI DATENVERLUßT KEINE WIEDERHERSTELLUNG MÖGLICH IST!!!!!!!!!!!
Auch hier gilt wie immer:
alle zu ändernden php-Dateien vorher sichern,
damit man bei einem Fehler den alten Zustand wieder herstellen kann!
auf jeden Fall eine Datenbanksicherung machen!!!!!!!!!!!!
Eine Garantie wird auch nicht übernommen.
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.
LG
haumi
__________________
Gelassen das hinnehmen, was nicht zu ändern ist,
engagiert angehen was man gestalten kann.
|
|
01.12.2009 08:03 |
|
|
|
Grübeln ist nie verkehrt, hält jung! Das kenne ich aus eigener Erfahrung
Du machst hier einen tollen Job, das wollte ich mal nebenbei noch loswerden!
MfG
alfie
|
|
02.12.2009 17:10 |
|
|
haumi
Boardbetreiber
[meine Galerie]
Dabei seit: 06.06.2009
Beiträge: 3.441
Herkunft: NRW
Postid: 1871
|
|
|
02.12.2009 17:24 |
|
|
|
Jetzt, wo du das sagst! Stimmt, verschieben und schliessen ist z.Z. möglich! Löschen soll mal irgendwann in einer neuen Version kommen, dann soll es auch noch mehr Möglichkeiten geben!
alfie
|
|
02.12.2009 19:07 |
|
|
|
Alfie ,
und vieleicht wird der Hack dann auch server freundlicher :) wenn ich das richtig lese in der anleitung *g* is er ja nicht freundlich zum server
__________________ Wer in meinen Beiträgen Rechtschreipfähler findet.....darf Sie behalten
NICHT KLICKEN!!!
|
|
04.12.2009 12:13 |
|
|
haumi
Boardbetreiber
[meine Galerie]
Dabei seit: 06.06.2009
Beiträge: 3.441
Herkunft: NRW
Postid: 1891
|
|
Ich habe das script jetzt in mein Board eingebaut.
9 Foren sind davon betroffen und es klappt.
Hier im nobodys-wbb-hilfe ist es auch eingabaut, jedoch nur im Forum "Guten Morgen - guten tag - gute Nacht".
Auch hier funktioniert es einwandfrei.
Ich habe nur in beiden Boards einen Zeitraum von 28 Tagen eingestellt.
statt 1209600 habe ich 2419200 genommen
Wie ist es eingebaut?
Ich habe im Ordner wbb2 eine neue Datei erstellt die heißt: postdel.php
Zwischen den beiden php-Kennungen <?php und ?>
habe ich den Code eingeschrieben.
Hier im Board sieht es so aus:
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:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
|
<?php
#######Anfang Autolöschung#######
$zeit=time();
$zeit1=intval($zeit-'2419200');
$auswahls=array(58);
$i=0;
while($i < count($auswahls)) {
$auswahl = $auswahls[$i];
$ergebnis = $db->unbuffered_query("SELECT * FROM bb1_boards where boardid=$auswahl");
$erg = mysql_fetch_object($ergebnis);
$ergo = $erg->lastthreadid;
$result = $db->unbuffered_query("SELECT * FROM bb1_threads where boardid=$auswahl AND starttime<$zeit1");
while($ds = mysql_fetch_object($result)) {
$starttime = $ds->starttime;
$idthread = $ds->threadid;
$auswahl = $ds->boardid;
$dell= "DELETE FROM bb1_threads WHERE threadid='".$ds->threadid."'";
$dummy = mysql_query($dell);
$dell= "DELETE FROM bb1_posts WHERE threadid='".$ds->threadid."'";
$dummy = mysql_query($dell);
list($threadcount) = $db->query_first("SELECT COUNT(*) FROM bb".$n."_threads WHERE boardid=$auswahl");
list($postcount) = $db->query_first("SELECT COUNT(*) FROM bb".$n."_posts p, bb".$n."_threads t WHERE p.threadid=t.threadid AND t.boardid =$auswahl AND p.visible=1");
if ($ergo==$idthread) {
$update="UPDATE `bb1_boards` SET `threadcount` = 0, `postcount` = 0, `lastthreadid` = 0, `lastposttime` = 0, `lastposterid` = 0, `lastposter` = '0', `threadsperpage` = 0, `postsperpage` = 0, `postorder` = 0, `countuserposts` = 1, `hotthread_reply` = 0, `hotthread_view` = 0 WHERE `bb1_boards`.`boardid` = $auswahl;";
$dummy = mysql_query($update);
}
else {
$update1="UPDATE `bb1_boards` SET `threadcount` = $threadcount, `postcount` =$postcount where boardid=$auswahl";
$dummy = mysql_query($update1);
}
}
$i++;
}
#######Ende Autolöschung#######
?>
|
|
Wenn mehrere Foren eingebunden werden sollen,
einfach die Boardid der betreffenden Foren hier ergänzen (durch Komma trennen):
$auswahls=array(58);
z. B.
$auswahls=array(58.136,22,79);
Damit das auch alles funktioniert muss nur noch die boardphp wie folgt ergänzt werden:
Suche:
require('./global.php');
und füge darunter ein:
require('./postdel.php');
speichern - fertig
Auch hier gilt vor allen Dingen die Datenbank sichern, damit man bei einem Fehler den alten Zustand wieder herstellen kann!!
Eine Garantie wird auch nicht übernommen.
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.
LG
hauimi
__________________
Gelassen das hinnehmen, was nicht zu ändern ist,
engagiert angehen was man gestalten kann.
|
|
05.12.2009 08:18 |
|
|
|