Seite 1 von 1

Pruning soll alte Beiträge sperren, nicht löschen

Verfasst: 15.02.2004 18:48
von Nico Haase
moin,
wie kann ich das pruning verändern, damit es alte beiträge sperrt statt sie zu löschen?
mfg
nico

Verfasst: 18.02.2004 11:23
von Acid
Vorher prune.php und die Tabellen "topics", "posts", "posts_text" sichern.
prune.php
++FINDE++

Code: Alles auswählen

			$sql = "DELETE FROM " . TOPICS_TABLE . " 
				WHERE topic_id IN ($sql_topics)";
			if ( !$db->sql_query($sql) )
			{
				message_die(GENERAL_ERROR, 'Could not delete topics during prune', '', __LINE__, __FILE__, $sql);
			}
++MIT FOLGENDEM ERSETZEN++

Code: Alles auswählen

			$sql = "UPDATE ". TOPICS_TABLE ." SET topic_status = '1'
				WHERE topic_id IN ($sql_topics)";
			if ( !$db->sql_query($sql) )
			{
				message_die(GENERAL_ERROR, 'Could not delete topics during prune', '', __LINE__, __FILE__, $sql);
			}

/*
++FINDE++

Code: Alles auswählen

			remove_search_post($sql_post);
++DARUNTER EINFÜGEN++ Ich hab´s jetzt nur mit dem normalen, manuellen Prunen getestet (automatisches Prunen war mir jetzt zu langwierig ;)). Sollte eigentlich funktionieren. Man könnte noch an der Ausgabe feilen und eventuell die Themen in ein anderes Forum verschieben.

Verfasst: 14.03.2004 10:39
von Nico Haase
Ich muss leider nochemal pushen :-? Mit einer einfachen Änderung des topic_status auf 1 wird gesperrt, richtig? Also könnte man mit

UPDATE {präfix}_topics SET topic_status = '1' WHERE {präfix}_topics.topic_last_post_id = {präfix}_posts.post_id AND {präfix}_posts.post_time < {Datum};

alle Beiträge sperren, die vor dem {Datum} geschrieben wurden...?

//edit: so gehts besser, da mit dem datum des letzten eintrags gerechnet wird