Seite 6 von 6

Verfasst: 30.09.2004 19:33
von Saber_Rider
ich hätte gern jetzt außerdem noch die voreinstellung bei Management + für die Forenzugangskontrolle auf privat[versteckt] gesetzt. kann mir da bitte einer helfen was ich da umstellen muss ?

Verfasst: 30.09.2004 20:11
von rabbit
also, ich hab' part2 des hacks nicht eingebaut, daher kann ich dir da nicht weiterhelfen, leider. allerdings sieht es bei http://rpgnet.clanmckeen.com/demo/index.php so aus, als ob man das oben einstellen kann, direkt unter dem header.

bezüglich der voreinstellung: versuch' mal die def_auth.php, dort müsste das zu ändern sein.

tja, mein problem hat sich bisher immer noch nicht gelöst. ich muss wohl doch noch mal alle dateien stück für stück durchgehen... :roll:

Verfasst: 30.09.2004 20:38
von Saber_Rider
also in der def_auth konnte ich umstellen was er unter öffentlich oder privat genau versteht. im $simple_auth_ary, aber die voreinstellung, dass ich standardmäßig gerne privat[versteckt] hätte habe ich nirgends gefunden.

und wegen den einstellungen. bei mir schaut es leider nicht so aus wie auf der seite wo der mod vorgestellt wird. bei mir fehtl das menu für den user oben.


ich hab jetzt noch ein problem das deinem glaube ich recht nahe kommt.
wenn jemand irgendwo moderator ist, dann bekommt er die moderator operationen überall angezeigt. auch in privaten foren wo er nicht moderator ist (in öffentlichen nicht).
der categroies mod ändert jeweils in der viewforum.php und viewtopic.php

Code: Alles auswählen

 $is_auth = auth(AUTH_ALL, $forum_id, $userdata, $forum_row);
bzw.

Code: Alles auswählen

$is_auth = auth(AUTH_ALL, $forum_id, $userdata, $forum_topic_data);
in

Code: Alles auswählen

$is_auth = $tree['auth'][POST_FORUM_URL . $forum_id];
bzw

Code: Alles auswählen

$is_auth = $tree['auth'][POST_FORUM_URL . $forum_id];
macht man diese änderung rückgängig funktioniert es (frag mich aber nicht wieso). aber vielleicht hängt deins auch irgendwie damit zusammen.

Verfasst: 30.09.2004 20:54
von rabbit
hmmm, das muss ich nachher mal testen... momentan läuft cobra11... :D

aber wenn dem so ist, stelle ich die frage mal in ptirhiik's board. ich hoffe, dass er diesmal antwortet :roll: ...

Verfasst: 01.10.2004 19:39
von Saber_Rider
solltest du irgendwann noch mehr dazu rausbekommen sag mir bitte bescheid ;)

Verfasst: 03.10.2004 17:22
von -achilles-
Markus67 hat geschrieben:Hi ...

suche in der Datei db/mysql4.php

Code: Alles auswählen

			unset($this->row[$query_id]);
			unset($this->rowset[$query_id]);

			mysql_free_result($query_id);

			return true;
ersetze mit:

Code: Alles auswählen

			unset($this->row[$query_id]);
			unset($this->rowset[$query_id]);

			@mysql_free_result($query_id);

			return true;
Damit wird die Fehlermeldung unterdrückt. Solange alles funktioniert kannst du das auch problemlos so machen. Es existiert hier irgendwo im Forum auch eine entsprechende Erklärung dafür ... wenn es dich interessiert einfach mal danach suchen :wink:

Markus
hi, oben hast du doch erklärt wie ich die fehleranzeige weg machen soll. naja, kann die geänerte datei nur als txt datei saven. müsst ja aber ne andere sein. was soll ich tun?

Verfasst: 08.10.2004 22:04
von Saber_Rider
speichere sie als txt und klick sie dann mit der rechten maustaste an. wähle umbenennen und ändere das txt hinter dem . in php. dann einfach irgendwo hin klicken. dann frägt er ob du wirklich die dateiendung ändern willst weil die datei möglicherweise unbrauchbar wird. auf ja klicken und fertig.

Verfasst: 28.11.2004 17:16
von Saber_Rider
man mag es nicht glauben. nachdem heute wieder mal ein moderator auf mich zu kam der nicht moderieren konnte hab ich mir die datenbank mal genauer angeschaut.
danach habe ich folgendes herausbekommen:
wenn der moderator in keiner gruppe ist die sonst noch normalen zugriff auf das forum hat funktioniert es einwandfrei. also

Code: Alles auswählen

172  	161  	0  	0  	0  	0  	0  	0  	0  	0  	0  	0  	0  	1
33 	161 	1 	1 	1 	1 	1 	1 	0 	0 	1 	1 	0 	0
235 	161 	1 	1 	1 	1 	1 	1 	0 	0 	1 	1 	0 	0
klappt solange der moderator 172 nicht in einer der gruppen 22 und 253 ist. sobald er aber auch in einen der beiden anderen gruppen ist kann er nicht mehr moderieren. das komische ist, dass er eben manchmal nicht mehr moderieren kann.
für folgendes beispiel nehme ich an, dass der moderator 172 in der gruppe 33 ist, aber nicht in 235.
wenn ich nun mit phpmyadmin eine abfrage auf die datenbank mache und in dieser reihenfolge die rechte bekomme:
172
33
235
klappt das moderieren nicht.
bekomme ich die rechte aber in der reihenfolge
33
172
235
geht das moderieren.
durch mehrmaliges erstellen verschiedener foren und verteilen der rechte klappte diese konstellation ab und zu und manchmal wieder nicht.

anscheinend wird für die moderatorenkontrolle lediglich der letze zurückgegebene eintrag verwendet. in meinem fall der auth_mod wert von 33 und 172. erhalte ich den wert von 33 nach der 172 wird der wert von 172 überschrieben (oder garnicht erst verwendet) und ich kann nicht moderieren.
in der functions_categories_hierarchy.php wird also in meinem fall 33 und 172 zurück gegeben. steht 33 in der tabelle weiter unten wird der wert in auth_mod von 172 wieder überschrieben.

gelöst habe ich das jetzt folgendermaßen, damit ich immer das moderatorenrecht als letztes raus bekomme.

Code: Alles auswählen

in der functions_categories_hierarchy.php finde:

	// read the user auth and the last post of each forums
	if ( $userdata['session_logged_in'] )
	{
		$sql_select = ', a.*, ug.user_id';
		$sql_from = "LEFT JOIN " . AUTH_ACCESS_TABLE . " a ON a.forum_id = f.forum_id )
					LEFT JOIN " . USER_GROUP_TABLE . " ug ON ug.group_id = a.group_id AND ug.user_id = " . intval($userdata['user_id']) . " AND ug.user_pending=0 )";
	}

und ersetze es mit

	// read the user auth and the last post of each forums
	if ( $userdata['session_logged_in'] )
	{
		$sql_select = ', a.*, ug.user_id';
		$sql_from = "LEFT JOIN " . AUTH_ACCESS_TABLE . " a ON a.forum_id = f.forum_id )
					LEFT JOIN " . USER_GROUP_TABLE . " ug ON ug.group_id = a.group_id AND ug.user_id = " . intval($userdata['user_id']) . " AND ug.user_pending=0 ) order by auth_mod asc";
	}
wichtig ist also hinten das order by auth_mod asc

Verfasst: 28.11.2004 22:01
von Saber_Rider
mir ist grad aufgefallen, dass es so doch nicht ganz funktioniert.

den wie
"// read the user auth and the last post of each forums " schon sagt liest er da auch den letzten beitrag aus und deswegen versaut er die reihenfolge dann total.

naja such ich wieder weiter.


so jetzt hab ich es gefunden. den beitrag von oben bitte nicht beachten.

in einer schleife

Code: Alles auswählen

	while ( $row = $db->sql_fetchrow($result) )
	{
		// get the last post
		if ( !empty($row['forum_last_post_id']) && !isset($last_posts[ $row['forum_last_post_id'] ]) )
		{
			$last_posts[ $row['forum_last_post_id'] ] = $row['forum_id_main'];
			$s_last_posts .= ( empty($s_last_posts) ? '' : ', ' ) . $row['forum_last_post_id'];
		}

		// get the access auth
		if ( $userdata['session_logged_in'] && ($row['user_id'] == $userdata['user_id']) )
		{
			$u_access[ $row['forum_id_main'] ] = $row;
		}
	}
wird die authorisierung berechnet. wenn jetzt aber eben der letzte schleifendurchlauf nicht der mod eintrag ist, werden sämtliche einträge überschrieben.
man muss also

Code: Alles auswählen

		// get the access auth
		if ( $userdata['session_logged_in'] && ($row['user_id'] == $userdata['user_id']) )
		{
			$u_access[ $row['forum_id_main'] ] = $row;
		}
durch

Code: Alles auswählen

		// get the access auth
		if ( $userdata['session_logged_in'] && ($row['user_id'] == $userdata['user_id']) )
		{
			$u_access[ $row['forum_id_main'] ] = max($row, $u_access[ $row['forum_id_main'] ]);
		}
ersetzen, damit beim moderator die 1 verwendet wird und nicht eventuell die 0 aus seinem letzten beitrag.