Meldelisten - Termin - Mod

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.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Ok da waren offenbar noch ein paar versteckte Dinge drin:
Deine Fehlermeldung kommt von ein paar Zeilen Programmcode die zu viel in der functions_inout.php sind:

Code: Alles auswählen

		else
		{
			echo "keine Config";
		}
Das hatte ich bei mir zusätzlich eingebaut um zu testen ob die Kombination mit dem Topic-Calendar Mod funktioniert, habe offenbar aber vergessen es wieder herauszunehmen.
Das zweite Öffnen der prune.php ist eigentlich ein öffnen der page_header.php

Aus irgend einem Grund fehlten auch noch die Auto-Increment Befehle in den Datenbankbefehlen, so dass hieraus vermutlich auch Fehler resultieren werden, du müsstest die die Tabellen mit dem prefix {dein_prefix}_inout noch mal neu erstellen.
Ich habe das Archiv auf dem Server noch mal aktualisiert, ich hoffe dass jetzt alles läuft so wie es drin ist.
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.
AMoK
Mitglied
Beiträge: 11
Registriert: 09.07.2007 13:39

Beitrag von AMoK »

danke das du die bugs behoben hast, alelrdings hab ich noch einen gefunden. wenn ich eine meldeliste erstelle und diese dann löschen will kommt folgende meldung

could_not_update data table

DEBUG MODE

SQL Error : 1146 Table 'db_saarfreakz_4.inout_data' doesn't exist

DELETE FROM inout_data WHERE topic_id = 291

Line : 3305
File : functions_inout.php

meiner meinung nach wird hier der prefix der tabellen nicht richtig gesetzt, denn db_saarfreakz_4 ist der name der datenbank. der eigentliche prefix ist phpbb_
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Die Definition ist eigentlich in der Datei includes/inout_constants.php zu finden wo auch sämtliche andere Definitionen drin sind. Ich habe es gerade nochmals in einem neuen Testforum getestet und bei mir funktioniert es. Die Datei müsste auch definitiv so in dem Archiv drin sein. Vielleicht tauscht du einfach beide Dateien noch mal aus?
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.
svenrieger
Mitglied
Beiträge: 50
Registriert: 22.01.2007 12:57
Wohnort: Malsch
Kontaktdaten:

Beitrag von svenrieger »

Gibt es auch die Möglichkeit die Meldeliste nur in bestimmeten Kategorien anzeigen zu lassen?
AMoK
Mitglied
Beiträge: 11
Registriert: 09.07.2007 13:39

Beitrag von AMoK »

ich habs noch ein paar mal getestet, aber leider funktioniert es nicht. sieht aber so aus als ob es nicht dein fehler wäre, denn in der functions_constants sind die einzelnen tabellen korrekt definiert. ich hab das ganze jetzt einfach so umgangen, dass ich die tabellennamen in die functions_inout einfach hardcodiert reingeschrieben habe. samt präfix natürlich. bisher funktioniert alles
AMoK
Mitglied
Beiträge: 11
Registriert: 09.07.2007 13:39

Beitrag von AMoK »

wenn ich die meldelistengruppen mit den forumsgruppen synchronisiert habe und dann einen user aus der forumsgruppe löschen will bekomme ich ne warning

NO STATE

Warning: Cannot modify header information - headers already sent by (output started at /srv/www/vhosts/ws4free.eu/subdomains/saarfreakz/httpdocs/phpBB2/includes/functions_inout.php:3185) in /srv/www/vhosts/ws4free.eu/subdomains/saarfreakz/httpdocs/phpBB2/includes/page_header.php on line 605

Warning: Cannot modify header information - headers already sent by (output started at /srv/www/vhosts/ws4free.eu/subdomains/saarfreakz/httpdocs/phpBB2/includes/functions_inout.php:3185) in /srv/www/vhosts/ws4free.eu/subdomains/saarfreakz/httpdocs/phpBB2/includes/page_header.php on line 611

Warning: Cannot modify header information - headers already sent by (output started at /srv/www/vhosts/ws4free.eu/subdomains/saarfreakz/httpdocs/phpBB2/includes/functions_inout.php:3185) in /srv/www/vhosts/ws4free.eu/subdomains/saarfreakz/httpdocs/phpBB2/includes/page_header.php on line 612
Zuletzt geändert von AMoK am 27.07.2007 14:42, insgesamt 1-mal geändert.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

svenrieger hat geschrieben:Gibt es auch die Möglichkeit die Meldeliste nur in bestimmeten Kategorien anzeigen zu lassen?
Fest eingebaut noch nicht. Allerdings könntest du das durch die Rechteverwaltung regeln, da lassen sich gruppenweise für alle Foren einzeln die Berechtigungen vergeben. Da das ganze etwas anders aufgebaut ist als das übliche Rechtemanagement lassen sich da auch Foren sperren (anders als üblicherweise, normalerweise kann man ja nur zusätzliche Foren erlauben). Der einzige der dann in den anderen Foren noch Meldelisten erstellen könnte wäre dann der Administrator oder die Moderatoren des jeweiligen Forums.
Alternativ kannst du die Datei functions_inout.php bearbeiten:
finde

Code: Alles auswählen

if ( !empty($forum_id) )
	{
		$sql = "SELECT *
			FROM " . FORUMS_TABLE . "
			WHERE forum_id = $forum_id";
		if ( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, 'Could not obtain forums information', '', __LINE__, __FILE__, $sql);
		}
	}
	elseif($topic_id != NULL && $forum_id = get_forum($topic_id))
	{
		//If there is an TopicId given
		$sql = "SELECT *
			FROM " . FORUMS_TABLE . "
			WHERE forum_id = $forum_id";
		if ( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, 'Could not obtain forums information', '', __LINE__, __FILE__, $sql);
		}
	}
Tausche Aus gegen:

Code: Alles auswählen

if ( !empty($forum_id) )
	{
//Verbotene Foren ausschließen:
if(in_array($forum_id,array(1,2,3)))
{
return false;
}		
$sql = "SELECT *
			FROM " . FORUMS_TABLE . "
			WHERE forum_id = $forum_id";
		if ( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, 'Could not obtain forums information', '', __LINE__, __FILE__, $sql);
		}
	}
	elseif($topic_id != NULL && $forum_id = get_forum($topic_id))
	{
	//Verbotene Foren ausschließen:
if(in_array($forum_id,array(1,2,3)))
{
return false;
}		
//If there is an TopicId given
		$sql = "SELECT *
			FROM " . FORUMS_TABLE . "
			WHERE forum_id = $forum_id";
		if ( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, 'Could not obtain forums information', '', __LINE__, __FILE__, $sql);
		}
	}
Die Ziffern 1,2,3 sind hierbei gegen die gewünschten Foren auszutauschen in denen die Listen verboten sein sollen. Der Admin bekommt die Möglichkeit, Listen anzuzeigen dann zwar immer noch, allerdings kann kein anderer User sie sehen. Damit der Admin sie auch nicht sieht müsstest du diesen Code

Code: Alles auswählen

//If User is Admin he can certainly post an Inout Topic
	if( $user_data['user_level'] == ADMIN )
	{
		return true;
	}
	
	//If the parser gets here, the user can't be Admin
	if($state == INOUT_AUTH_ADMIN)
	{
		return FALSE;
	}
finden und nach diesen Code hier verschieben(ein paar Zeilen später):

Code: Alles auswählen

else
	{
		message_die(GENERAL_MESSAGE, 'Forum_not_exist');
	}
	
EDIT: Zusätzlich muss vor dem obigen Code (else { ... }) noch der folgende eingefügt werden:

Code: Alles auswählen

elseif($user_data['user_level'] == ADMIN && $state == INOUT_AUTH_ADMIN)
{
return true;
}
[/color]
Der andere Fehler war wohl ein Bug der mir auch noch nicht aufgefallen ist:
Es sollte in der groupcp.php statt so:

Code: Alles auswählen

$state = isset($HTTP_POST_VARS['deny']) || isset($HTTP_POST_VARS['remove'])? INOUT_REMOVE:INOUT_NONE;
so aussehen:

Code: Alles auswählen

$state = isset($HTTP_POST_VARS['deny']) || isset($HTTP_POST_VARS['remove'])? INOUT_DELETE:INOUT_NONE;
Zuletzt geändert von gn#36 am 27.11.2007 23:10, insgesamt 1-mal geändert.
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.
AMoK
Mitglied
Beiträge: 11
Registriert: 09.07.2007 13:39

Beitrag von AMoK »

hab jetzt mal betreffende codezeile (also die ganze elseif anweisung) gelöscht, bzw auskommentiert und nun scheints zu gehn. wird wohl wieder so ne kleine testausgabe von dir gewesen sein, oder ?
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 eine schlechte Idee in diesem Fall. Es kommt dann zwar kein Fehler mehr, aber die Löschung aus der Gruppe wird auch nicht korrekt ausgeführt. Am besten du führst das Update durch wie beschrieben und ersetzt nochmals die functions_inout.php Datei die ich leicht modifiziert habe (vielleicht die jetzige vorher sichern...).
Die Löschung kann theoretisch natürlich bleiben, aber den Fehler solltest du trotzdem korrigieren.
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.
AMoK
Mitglied
Beiträge: 11
Registriert: 09.07.2007 13:39

Beitrag von AMoK »

wunderbar, klappt soweit alles.
bist du dir sicher das bei der angesprochenen zeile nicht korrekt gelöscht wird ? zumindest sah es mal danach aus, als ob alles funktioniert. soweit ich die warning, die ich gepostet hatte, interpretieren konnte, heisst das ja nur, dass der header quasi zerrissen wird, weil du dieses NO STATE ausgibst. mehr passiert ja bei der anweisung nicht, die ich auskommentiert hatte. naja wie dem auch sei, jetzt funktioniert ja alles.
Antworten

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