Seite 2 von 2

Verfasst: 22.04.2005 10:34
von reinsle
Hy,

das ist ja super, sowas hab ich gesucht. Mein Problem ist jetzt, wie kann ich steuern, dass ein User beim Forum A immer editieren kann, beim Forum B nur 24 Std, beim Forum C nur 1 Std.

Habt ihr da bereits schon was?

Danke euch.

Verfasst: 22.04.2005 11:24
von Christian_W
Verschiedene Foren verschiedene Zeiten:

Code: Alles auswählen

----- öffne -----
posting.php

----- finde -----
		$sql = "SELECT f.*, t.topic_id, t.topic_status, t.topic_type, t.topic_first_post_id, t.topic_last_post_id, t.topic_vote, p.post_id, p.poster_id" . $select_sql . " 

----- finde in dieser Zeile -----
p.poster_id

----- füge danach ein -----
, p.post_time


----- finde -----
		if ( $post_info['poster_id'] != $userdata['user_id'] && !$is_auth['auth_mod'] )

----- füge davor ein -----
		switch($post_info[forum_id])
		{
			case 1: //Forum mit id 1
				$delete_time = 86400; // 60*60*24=86400 - 60 Sekunden * 60 Minuten * 24 Stunden = Zeit in Sekunden
				break;

			case 3: //Forum mit id 3
				$delete_time = 3600; // 60*60*1=86400 - 60 Sekunden * 60 Minuten * 1 Stunden = Zeit in Sekunden
				break;

			default: //Standard
				$delete_time = 1209600; // 60*60*24*14=86400 - 60 Sekunden * 60 Minuten * 24 Stunden * 14 Tage = Zeit in Sekunden
				break;
		}


----- finde -----
		if ( $post_info['poster_id'] != $userdata['user_id'] && !$is_auth['auth_mod'] )
		{
			$message = ( $delete || $mode == 'delete' ) ? $lang['Delete_own_posts'] : $lang['Edit_own_posts'];
			$message .= '<br /><br />' . sprintf($lang['Click_return_topic'], '<a href="' . append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id") . '">', '</a>');

			message_die(GENERAL_MESSAGE, $message);
		}

----- füge danach ein -----
		// nur eine bestimmte Zeit editieren oder löschen
		else if ( $post_info['post_time']+$delete_time <= time() && !$is_auth['auth_mod'] )
		{
			$message = ( $delete || $mode == 'delete' ) ? 'Beitr&auml;ge k&ouml;nnen nur ' . $delete_time . ' Sekunden lang gel&ouml;scht werden.' : 'Beitr&auml;ge k&ouml;nnen nur ' . $delete_time . ' Sekunden lang editiert werden.';
			$message .= '<br /><br />' . sprintf($lang['Click_return_topic'], '<a href="' . append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id") . '">', '</a>');
			message_die(GENERAL_MESSAGE, $message);
		}
Vorher ein Backup der Datei machen.

Gruß Christian

Verfasst: 22.04.2005 11:31
von reinsle
Hy

danke fuer deine Schnelle Antwort, aber ich bin grad am Nachdenken, wie ich das evtl. so einbauen kann, dass ich das bei den Einstellungen in den Foren selber schon mit angeben kann. So default 0, also keine Zeitliche beschränkung, und sonst angabe in Minuten oder so aehnlich.

Aber nochmals Danke

Verfasst: 23.04.2005 13:20
von reinsle
Hy,

ich hab mir jetzt folgendes Ueberlegt:

Ich erweiter die Tabelle phpbb_forums um ein Feld posts_edit_time, in dem die Zeit gespeichert wird, die man einen Beitrag editieren darf. Dazu gibts auch beim einstellen der Forenseinstellungen eine Feld. 0 bedeutet keine Einschraenkung.

So, dann wird in posting.php eben dieses Feld geprueft, ind je nach Berechtigung darf der User editieren/loeschen, oder es kommt eine Fehlermeldung.

Was meint ihr, ist das machbar??
Bekomme ich sowas hin?? <- blöde Frage *gg*

Verfasst: 23.04.2005 23:04
von Christian_W
reinsle hat geschrieben:Was meint ihr, ist das machbar??
Sicher.
reinsle hat geschrieben:Bekomme ich sowas hin?
Das werden wir ja dann sehen. ;)

Für evtl. auftretenden Fragen wäre dann das das richtige Forum:
MOD - Entwicklung

Gruß Christian

Verfasst: 07.12.2005 09:37
von reinsle
Hy,

also ich hab jetzt einen Mod dafür erstellt.

Man hat jetzt in den Foreneinstellungen dir möglichkeit, eine EditTime zu hinterlegen. Beim Posten wird diese dann abgefragt, und entsprechenderweisse kommt dann eine Fehlermeldung. Hat noch jemand Interesse an diesem MOD??

Verfasst: 26.05.2007 23:32
von niknaim
Hi!

Habe meine posting.php genauso editiert wie beschrieben...aber bei mir können die registrierten User trotzdem die ganze Zeit editieren!

Habe das phpbb2...leigt das daran???