Brauch mal jemand der sich mit PHP auskennt.

Du suchst einen bestimmten Mod, weißt aber nicht genau wo bzw. ob er überhaupt existiert? Wenn dir dieser Artikel nicht weiterhilft, kannst du hier den von dir gewünschten/gesuchten Mod beschreiben ...
Falls ein Mod-Autor eine der Anfragen hier aufnimmt um einen neuen Mod zu entwicklen, geht's in phpBB 2.0: Mods in Entwicklung weiter.
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
Sujao
Mitglied
Beiträge: 296
Registriert: 25.12.2003 03:56
Wohnort: Stuttgart
Kontaktdaten:

Brauch mal jemand der sich mit PHP auskennt.

Beitrag von Sujao »

Also bin gerade dabei ein größeres Modding durchzuführen und den Category-Hirarchy-Mod von Ptirhiik (RPGnet-fr) zu installieren und bin dabei auf ein Problem gestossen. Theoretisch ist der Mod Easymodkompatibel, aber da mein Forum schon sehr stark gemoddet ist, klappt es nicht. Ich hab jetzt mal alle Teile die Fehler verursachen aus der Installationsdatei rausgenommen und bin gerade dabei sie manuell einzufügen. Bei den tpl's ist das kein Problem, aber es gibt einen Teil aus einer php-Datei und da gibt es das Problem:

Die Anleitung sagt mir wie ich eine Original viewforum.php bearbeite und ich weiss nicht so genau wie ich das auf meine gemodete anwenden soll.

Hier ist die Anweisung:

Code: Alles auswählen

#-----[ OPEN ]------------------------------------------------
#
viewforum.php
#
#-----[ FIND ]------------------------------------------------
#
$sql = "SELECT u.user_id, u.username 
	FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g, " . USERS_TABLE . " u
	WHERE aa.forum_id = $forum_id 
		AND aa.auth_mod = " . TRUE . " 
		AND g.group_single_user = 1
		AND ug.group_id = aa.group_id 
		AND g.group_id = aa.group_id 
		AND u.user_id = ug.user_id 
	GROUP BY u.user_id, u.username  
	ORDER BY u.user_id";
if ( !($result = $db->sql_query($sql)) )
{
	message_die(GENERAL_ERROR, 'Could not query forum moderator information', '', __LINE__, __FILE__, $sql);
}

$moderators = array();
while( $row = $db->sql_fetchrow($result) )
{
	$moderators[] = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']) . '">' . $row['username'] . '</a>';
}

$sql = "SELECT g.group_id, g.group_name 
	FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g 
	WHERE aa.forum_id = $forum_id
		AND aa.auth_mod = " . TRUE . " 
		AND g.group_single_user = 0
		AND g.group_type <> ". GROUP_HIDDEN ."
		AND ug.group_id = aa.group_id 
		AND g.group_id = aa.group_id 
	GROUP BY g.group_id, g.group_name  
	ORDER BY g.group_id";
if ( !($result = $db->sql_query($sql)) )
{
	message_die(GENERAL_ERROR, 'Could not query forum moderator information', '', __LINE__, __FILE__, $sql);
}

while( $row = $db->sql_fetchrow($result) )
{
	$moderators[] = '<a href="' . append_sid("groupcp.$phpEx?" . POST_GROUPS_URL . "=" . $row['group_id']) . '">' . $row['group_name'] . '</a>';
}
#
#-----[ REPLACE WITH ]---------------------------------------- 
#
//-- mod : categories hierarchy --------------------------------------------------------------------
//-- delete
// $sql = "SELECT u.user_id, u.username 
//	FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g, " . USERS_TABLE . " u
//	WHERE aa.forum_id = $forum_id 
//		AND aa.auth_mod = " . TRUE . " 
//		AND g.group_single_user = 1
//		AND ug.group_id = aa.group_id 
//		AND g.group_id = aa.group_id 
//		AND u.user_id = ug.user_id 
//	GROUP BY u.user_id, u.username  
//	ORDER BY u.user_id";
// if ( !($result = $db->sql_query($sql)) )
// {
//	message_die(GENERAL_ERROR, 'Could not query forum moderator information', '', __LINE__, __FILE__, $sql);
// }
//
// $moderators = array();
// while( $row = $db->sql_fetchrow($result) )
// {
//	$moderators[] = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']) . '">' . $row['username'] . '</a>';
// }
//
// $sql = "SELECT g.group_id, g.group_name 
//	FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g 
//	WHERE aa.forum_id = $forum_id
//		AND aa.auth_mod = " . TRUE . " 
//		AND g.group_single_user = 0
//		AND g.group_type <> ". GROUP_HIDDEN ."
//		AND ug.group_id = aa.group_id 
//		AND g.group_id = aa.group_id 
//	GROUP BY g.group_id, g.group_name  
//	ORDER BY g.group_id";
// if ( !($result = $db->sql_query($sql)) )
// {
//	message_die(GENERAL_ERROR, 'Could not query forum moderator information', '', __LINE__, __FILE__, $sql);
// }
//
// while( $row = $db->sql_fetchrow($result) )
// {
//	$moderators[] = '<a href="' . append_sid("groupcp.$phpEx?" . POST_GROUPS_URL . "=" . $row['group_id']) . '">' . $row['group_name'] . '</a>';
// }
//-- add
// moderators list
$moderators = array();
$idx = $tree['keys'][ POST_FORUM_URL . $forum_id ];
for ( $i = 0; $i < count($data['user_id']); $i++ )
{
	$moderators[] = '<a href="' . append_sid("./profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $tree['mods'][$idx]['user_id'][$i]) . '">' . $tree['mods'][$idx]['username'][$i] . '</a>';
}
for ( $i = 0; $i < count($data['group_id']); $i++ )
{
	$moderators[] = '<a href="' . append_sid("./groupcp.$phpEx?" . POST_GROUPS_URL . "=" . $tree['mods'][$idx]['group_id'][$i]) . '">' . $tree['mods'][$idx]['group_name'][$i] . '</a>';
}
//-- fin mod : categories hierarchy ----------------------------------------------------------------
Und so sieht mein zu ersetzender Teil aus:

Code: Alles auswählen

$sql = "SELECT u.user_id, u.user_level, u.username 
	FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g, " . USERS_TABLE . " u
	WHERE aa.forum_id = $forum_id 
		AND aa.auth_mod = " . TRUE . " 
		AND g.group_single_user = 1
		AND ug.group_id = aa.group_id 
		AND g.group_id = aa.group_id 
		AND u.user_id = ug.user_id 
	GROUP BY u.user_id, u.username  
	ORDER BY u.user_id";
if ( !($result = $db->sql_query($sql)) )
{
	message_die(GENERAL_ERROR, 'Could not query forum moderator information', '', __LINE__, __FILE__, $sql);
}

$moderators = array();
while( $row = $db->sql_fetchrow($result) )
{

// Start add - Admins/mods color management MOD
switch ( $row['user_level'] ) {
case ADMIN:
	$mod_color = 'class="admincolor"';
	break;
case MOD:
	$mod_color = 'class="modcolor"';
	break;
default:
	$mod_color = '';
	break;
}
// End add - Admins/mods color management MOD

	$moderators[] = '<a ' . $mod_color . ' href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']) . '">' . $row['username'] . '</a>';
}

$sql = "SELECT g.group_id, g.group_name 
	FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g 
	WHERE aa.forum_id = $forum_id
		AND aa.auth_mod = " . TRUE . " 
		AND g.group_single_user = 0
		AND g.group_type <> ". GROUP_HIDDEN ."
		AND ug.group_id = aa.group_id 
		AND g.group_id = aa.group_id 
	GROUP BY g.group_id, g.group_name  
	ORDER BY g.group_id";
if ( !($result = $db->sql_query($sql)) )
{
	message_die(GENERAL_ERROR, 'Could not query forum moderator information', '', __LINE__, __FILE__, $sql);
}

while( $row = $db->sql_fetchrow($result) )
{
	$moderators[] = '<a href="' . append_sid("groupcp.$phpEx?" . POST_GROUPS_URL . "=" . $row['group_id']) . '">' . $row['group_name'] . '</a>';
}

So wie ich das sehe, habe ich noch den Colormanagement-Mod dazwischen und. Weiss aber nicht ob es noch mehr Unterschiede gibt die ich nicht erkennen kann.
Hoffe jemand kann mir helfen !
There are no passangers on Spaceship Earth, we are all the crew !
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

Ersetze einfach den kompletten Teil mit dem Hierarchy-Code (auch das Color Zeugs).

Code: Alles auswählen

{
   $moderators[] = '<a href="' . append_sid("./profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $tree['mods'][$idx]['user_id'][$i]) . '">' . $tree['mods'][$idx]['username'][$i] . '</a>';
}

..ersetze das dann mit folgendem..

Code: Alles auswählen

{
       // Start add - Admins/mods color management MOD
       switch ( $tree['mods'][$idx]['user_level'][$i] ) {
       case ADMIN:
                 $mod_color = 'class="admincolor"';
                 break;
       case MOD:
                 $mod_color = 'class="modcolor"';
                 break;
       default:
                 $mod_color = '';
                 break;
       }
       // End add - Admins/mods color management MOD

       $moderators[] = '<a href="' . append_sid("./profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $tree['mods'][$idx]['user_id'][$i]) . '" '. $mod_color .'>' . $tree['mods'][$idx]['username'][$i] . '</a>';
}
Wenn sich die Farben nicht ändern, muss eventuell hinsichtlich $tree['mods'][$idx]['user_level'][$i] noch "user_level" irgendwo notiert werden. Ich weiss jetzt nicht genau in welcher Datei das $tree Zeugs definiert wird.
Benutzeravatar
Sujao
Mitglied
Beiträge: 296
Registriert: 25.12.2003 03:56
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von Sujao »

Super, vielen Dank, Acid !
Kannst du mir auch sagen, was sich bei der Änderung des Codes im Forum verändern sollte ? Ich hab nämlich alles modifiziert und sehe keinen Unterschied zu vorher. Kann man den irgendwo verifizieren ?
There are no passangers on Spaceship Earth, we are all the crew !
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

Was´n jetzt? Hierarchie oder des Color-Zeugs?
Beim Hierarchie-Mod kannst du Unterforen innerhalb von Foren erstellen usw. (die Änderungen an viewforum.php sind dahingehend notwendig, damit beim Aufruf dieser die ganzen Anzeigen für die jeweiligen (Unter)foren gelten). Beim Color-Mod sollten die Moderatoren bzw. Admins, welche in den Foren Moderatoren sind, in der jeweiligen Farbe angezeigt werden.
Benutzeravatar
Sujao
Mitglied
Beiträge: 296
Registriert: 25.12.2003 03:56
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von Sujao »

Nein, das meinte ich nicht. Ich meinte lediglich die Veränderung, wegen der ich dich gefragt hatte. Der Rest geht, ging aber auch ohne sie. Aber der Autor hatte ja seinen Grund die Stelle zu ändern. Da ich aber nicht sehe was konkret diese Änderung bewirkt, habe ich gefragt.
There are no passangers on Spaceship Earth, we are all the crew !
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

In der viewforum.php gibt´s ja eine Anzeige der Moderatoren von dem jeweiligen Forum (als einzelne User bzw. als Gruppen aufgeteilt in 2 sql-Anweisungen).
Da´s beim Hierarchie-MOD ein wenig anders läuft bzw. vieles an Code in andere Dateien ausgelagert wurde, wurden diese beiden Queries deaktiviert und nur´n Verweis mit diesem $tree eingesetzt. Damit die Moderatoren dann für die Foren, Unterforen und Unterunterforen weiterhin korrekt angezeigt werden. (Die bisherigen sql-Anweisungen stehen dann etwas abgewandelt in einer anderen Datei (k/A welche das jetzt ist) und imho werden für die Moderatorenanzeige in den Foren und auf dem Index die selben Queries genutzt.
Antworten

Zurück zu „phpBB 2.0: Mod Suche/Anfragen“