Img* Rechte vergeben (Gast oder Reg)

In diesem Forum können Mod-Autoren ihre Mods vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
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.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Benutzeravatar
helirene
Mitglied
Beiträge: 117
Registriert: 08.12.2005 19:06
Wohnort: EDLW/ EDAP / EDMQ / (Weltenbummler :-)...)
Kontaktdaten:

Img* Rechte vergeben (Gast oder Reg)

Beitrag von helirene »

Hallo zusammen

Hatte letztens hier was gepostet http://www.phpbb.de/viewtopic.php?t=134196

Ja und nun bin ich in der Überlegung wie man solch einen MOD schreiben könnte wo man im ACP unter Allg. Konfiguration den Zusatz für Img die Rechte vergibt. Denke mal, solch ein Mod wäre für viele phpBB Forumbesitzer eine tolle Sache. Wer könnte mir da helfen oder hat jemand etwa schon eine Antwort / Lösung darauf.
Gruß René **‹(•¿•)›*Aviation - Forum*‹(•¿•)›**
Vom Hacker besucht vom Hacker verlassen... Hoffen wir es :D
• Support: phpbb / wbb WoltLab Mod - Einbau | • Modified | • Webspace für hohe Ansprüche
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Das ist zwar nicht ganz das was du suchst, da es so nicht über das ACP konfiguriert wird, aber mir hat es trotzdem ausgereicht:

öffne die functions_post.php
In der Funktion "prepare_message" gibt es eine Stelle

Code: Alles auswählen

if($bbcode_on && $bbcode_uid != '')
	{
Hiernach fügst du ein

Code: Alles auswählen

//---- EDITED FROM HERE ----
		global $db,$userdata;
$group_id= 1; //Hier die Gruppe eintragen die das Tag benutzen darf.
		$sql = 'SELECT user_id FROM '. USER_GROUP_TABLE . ' WHERE (group_id=$group_id) AND user_id='.$userdata['user_id'];
		if (!$result = $db->sql_query($sql))
		{
			message_die(GENERAL_ERROR, 'Could not obtain group data', '', __LINE__, __FILE__, $sql);
		}
		if(!$db->sql_numrows($result) && $userdata['user_level'] != ADMIN)
		{
			//Remove forbidden tags from posted message
			$message = preg_replace("#\[IMG\](.*?)\[/IMG\]#is","[URL]\\1[/URL]",$message);
		}
		//---- END EDIT ----
Dieser Code ersetzt beim Posten automatisch alle IMG Tags durch URL Tags sofern der User das IMG Tag nicht benutzen darf, weil er nicht in der Usergruppe ist. Das lässt sich natürlich auch erweitern um beliebige andere Ersetzungen und auch auf mehrere erlaubte Gruppen (im SQL Befehl dann eben nicht group_id = $group_id sondern eine group_id IN (1,2,3...) Konstruktion) erweitern. Man könnte das natürlich auch in das ACP übernehmen (statt der SQL Abfrage dann eben eine Auth Abfrage. Möchte man, dass diese Beschränkung nur in gewissen Foren gilt und nicht allgemein muss man die Foren_id in der man gerade ist abfragen, dazu sind aber mehr Änderungen erforderlich, da die Funktion prepare_message die forum_id nicht übergeben bekommt und somit auch nicht kennt. Für mich hat diese Änderung aber so ausgereicht, ich habe so einen Code (ein selbsterstellter) der nur von mir und meiner Moderatorengruppe verwendet werden kann.

EDIT: Ich glaube das ist nicht das was du meinst, denn das bezieht sich nur auf das Posten. Wenn man eine Betrachtungsberechtigung einbauen möchte, dann würde man das besser in die bbcode.php in Ähnlicher Art einfügen:
einfach in der Funktion bbencode_first_pass direkt nach der ersten Klammer einfügen:

Code: Alles auswählen

global $db,$userdata;
	$sql = 'SELECT user_id FROM '. USER_GROUP_TABLE . ' WHERE (group_id=8) AND user_id='.$userdata['user_id'];
	if (!$result = $db->sql_query($sql))
	{
		message_die(GENERAL_ERROR, 'Could not obtain group data', '', __LINE__, __FILE__, $sql);
	}
	if(!$db->sql_numrows($result) && $userdata['user_level'] != ADMIN)
	{
		$text = preg_replace("#\[img\]((http|ftp|https|ftps)://)([^ \?&=\#\"\n\r\t<]*?(\.(jpg|jpeg|gif|png)))\[/img\]#sie", "'[URL]\\1' . str_replace(' ', '%20', '\\3') . '[/URL]'", $text);
	}
Das macht im Prinzip das gleiche, allerdings wird jetzt sowohl beim Posting als auch bei der Anzeige ersetzt. Das lässt sich natürlich auch auf Gäste beschränken, dann einfach statt

Code: Alles auswählen

$sql = 'SELECT user_id FROM '. USER_GROUP_TABLE . ' WHERE (group_id=8) AND user_id='.$userdata['user_id'];
	if (!$result = $db->sql_query($sql))
	{
		message_die(GENERAL_ERROR, 'Could not obtain group data', '', __LINE__, __FILE__, $sql);
	}
	if(!$db->sql_numrows($result) && $userdata['user_level'] != ADMIN)
das hier:

Code: Alles auswählen

if($userdata['user_id'] == ANONYMOUS || !$userdata['session_logged_in'])
Dann würde bei allen Gästen das ganze durch eine URL ersetzt. Alternativ kann man die Bilder natürlich auch durch statischen Text ersetzen, dazu einfach die Ersetzung im preg_replace anpassen.

Wichtig: Alle Dateien vor der Änderung sichern! Ich habe das nicht vollständig getestet und übernehme keine Garantie!
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Benutzeravatar
helirene
Mitglied
Beiträge: 117
Registriert: 08.12.2005 19:06
Wohnort: EDLW/ EDAP / EDMQ / (Weltenbummler :-)...)
Kontaktdaten:

Beitrag von helirene »

gn#36 hat geschrieben:...
Hey gn#36

Danke für die Antwort. Werde es mal probieren.
Gruß René **‹(•¿•)›*Aviation - Forum*‹(•¿•)›**
Vom Hacker besucht vom Hacker verlassen... Hoffen wir es :D
• Support: phpbb / wbb WoltLab Mod - Einbau | • Modified | • Webspace für hohe Ansprüche
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Um da mal drauf zurückzukommen:
In leicht abgeänderter Form gibt es auch das hier:
http://www.phpbb.de/viewtopic.php?p=809602#809602
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Antworten

Zurück zu „phpBB 2.0: Mods in Entwicklung“