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

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Benutzeravatar
Nico Haase
Mitglied
Beiträge: 1100
Registriert: 10.08.2003 15:19
Wohnort: Neu-Anspach / Darmstadt
Kontaktdaten:

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

Beitrag von Nico Haase »

moin,
wie kann ich das pruning verändern, damit es alte beiträge sperrt statt sie zu löschen?
mfg
nico
Buchtips.net bietet mehr als 2500 Buchrezensionen
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag 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.
Benutzeravatar
Nico Haase
Mitglied
Beiträge: 1100
Registriert: 10.08.2003 15:19
Wohnort: Neu-Anspach / Darmstadt
Kontaktdaten:

Beitrag 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
Buchtips.net bietet mehr als 2500 Buchrezensionen
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“