PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Cronjob gesucht->Verweise löschen


Stargesicht
08.10.2005, 10:52
Hallo,
ist es möglich Verweise, die älter als XXTage sind per Cronjob 1x täglich zu löschen.
Kann das jemand realisieren???

StGaensler
08.10.2005, 13:34
Suche mal bei http://vbulletin.org danach, da könnte es schon etwas Fertiges geben.

Stargesicht
08.10.2005, 13:51
Danke, ich habe folgendes gefunden:


Personally I just put this in the includes/cron/cleanup2.php, at the top, before the "delete stale sessions" code.


// Auto delete re-directs.
$DB_site->query("
DELETE FROM " . TABLE_PREFIX . "thread
WHERE open = 10 AND dateline < ". intval(TIMENOW - (60 * 60 * 24 *5))
);

It removes them after 5 days.

Also, wenn ich das richtig verstehe, kommt dieser Code ganz oben hin und löscht die Verweise (und nur die Verweise) nach 5 Tagen???

Sorry wenns nervt, aber mein Englisch ist nicht sonderlich gut

StGaensler
08.10.2005, 13:56
Ja, so verstehe ich es auch. Du solltest den Code vor "delete stale sessions" einfügen, und dann werden Verweise, die älter als 5 Tage sind, automatisch gelöscht.

Wenn du willst, kannst du das natürlich auch als eigenständigen Cronjob machen, dann bleibt die Veränderung auch nach dem Update erhalten.

Bevor du das einbaust, mache aber zur Sicherheit noch eine DB-Sicherung.

Pathor
20.04.2006, 00:55
Funktioniert der Cronjob auch im vB 3.5?

Wenn du willst, kannst du das natürlich auch als eigenständigen Cronjob machen, dann bleibt die Veränderung auch nach dem Update erhalten.
Wie würde dann die php-Datei aussehen?

So?

<?php
error_reporting(E_ALL & ~E_NOTICE);
if (!is_object($vbulletin->db))
{
exit;
}
// Auto delete re-directs.
$DB_site->query("
DELETE FROM " . TABLE_PREFIX . "thread
WHERE open = 10 AND dateline < ". intval(TIMENOW - (60 * 60 * 24 *5))
);
?>
Und dann einfach in ./includes/cron hochladen und unter Zeitgesteuerte Aufgaben eintragen?

EDIT: Hab´s mal lokal getestet. Einmal in die cleanup2.php und als selbständigen Cron.

Dann erscheint diese Fehlermeldung:
Fatal error: Call to a member function query() on a non-object in C:\xampplite\htdocs\vb\includes\cron\cleanup2.php on line 8
EDIT2: Hab´s geändert in:

<?php
error_reporting(E_ALL & ~E_NOTICE);
if (!is_object($vbulletin->db))
{
exit;
}
// Auto delete re-directs.
$vbulletin->db->query_write("
DELETE FROM " . TABLE_PREFIX . "thread
WHERE open = 10 AND dateline < ". intval(TIMENOW - (60 * 60 * 24 *5))
);
?>

Nun werden aber alle Redirects gelöscht...

Pathor
20.04.2006, 21:27
Keine Vorschläge? Müsste doch für Coder ein Klacks sein. ;)

Mystics
20.04.2006, 21:44
Keine Vorschläge? Müsste doch für Coder ein Klacks sein. ;)Coder findest du in unseren Hack-Foren (http://www.vbhacks-germany.com/forum/), denn dafür sind diese da.

Der Code funktioniert bei mir ohne Probleme. Du solltest bedenken, dass hier nicht das Datum der Verweise ausschlaggebend ist, sondern das Alter der ursprünglichen Themen. Es wird nirgends gespeichert, wann der Verweis angelegt wurde.

Pathor
20.04.2006, 21:54
Der Code funktioniert bei mir ohne Probleme. Du solltest bedenken, dass hier nicht das Datum der Verweise ausschlaggebend ist, sondern das Alter der ursprünglichen Themen. Es wird nirgends gespeichert, wann der Verweis angelegt wurde.

Alles klar. Mehr wollte ich gar nicht wissen. ;)

Danke! :)