Archiv verlassen und diese Seite im Standarddesign anzeigen : Threads nach x Tagen schliessen
Hallo, gibt es eine Funktion mit der ich Themen nach einer bestimmten zeit automatisiert schliessen kann??
Das ist standardmäßig nicht möglich.
Die Billig-Variante wäre dieses hier
cron_script_cleanup
$days = 30;
$vbulletin->db->query_write("UPDATE " . TABLE_PREFIX . "thread SET open = 0 WHERE open = 1 AND visible = 1 AND sticky = 0 AND lastpost < " . (TIMENOW - $days*86400));
Das schließ alle nicht-geschlossenen, nicht-moderierten, nicht-gelöschten, nicht-angepinnten Threads bei denen die letzte Antwort vor mehr als $days Tagen war.
Das ist standardmäßig nicht möglich.
Die Billig-Variante wäre dieses hier
cron_script_cleanup
$days = 30;
$vbulletin->db->query_write("UPDATE " . TABLE_PREFIX . "thread SET open = 0 WHERE open = 1 AND visible = 1 AND sticky = 0 AND lastpost < " . (TIMENOW - $days*86400));
Das schließ alle nicht-geschlossenen, nicht-moderierten, nicht-gelöschten, nicht-angepinnten Threads bei denen die letzte Antwort vor mehr als $days Tagen war.
... und
$days = 30;
$vbulletin->db->query_write("UPDATE " . TABLE_PREFIX . "thread SET open = 0 WHERE open = 1 AND visible = 1 AND sticky = 0 AND firstpost < " . (TIMENOW - $days*86400));
schließt hoffentlicht alle nicht-geschlossenen, nicht-moderierten, nicht-gelöschten, nicht-angepinnten Threads die vor mehr als $days Tagen eröffnet wurden.
Oder gibt es die Variable "firstpost" nicht?
Gruß Andi
Nimm dateline statt firstpost (das gibt es nicht).
Nimm dateline statt firstpost (das gibt es nicht).
ok, danke :)
Ich habe jetzt mal den folgenden Text in eine eigene Datei im cron-Verzeichnis kopiert, passt das?
<?php
// ######################## SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);
if (!is_object($vbulletin->db))
{
exit;
}
// ########################################################################
// ######################### START MAIN SCRIPT ############################
// ########################################################################
// schließen der FAQ-Threads
$days = 30;
$vbulletin->db->query_write("
UPDATE " . TABLE_PREFIX . "thread
SET
open = 0
WHERE
open = 1 AND visible = 1 AND sticky = 0 AND dateline < " . (TIMENOW - $days*86400));
log_cron_action('', $nextitem, 1);
?>
da ich das ganze aber nur in einem bestimmten Unterforum anwenden möchte muss ich wohl noch in der WHERE-Klausel etwas einfügen, die Foren ID wäre 112, reicht da schon
AND forumid = 112?
Gruß Andi
... habs einfach mal angetestet, und es funktioniert.
Danke und Gruß
Andi
AND forumid = 112
Wie sieht es denn mit mehreren Foren aus? Gibt es dafür ein Array?
StGaensler
22.10.2007, 17:31
Entweder: AND (forumid = 112 OR forumid = 110) oder AND forumid IN (112, 110)
Viele Grüße,
Stefan
vBulletin® v3.7.2, Copyright ©2000-2008, Jelsoft Enterprises Ltd.