admin_board.php und db

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
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.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Olaf01
Mitglied
Beiträge: 62
Registriert: 19.10.2002 13:41

admin_board.php und db

Beitrag von Olaf01 »

Wie ändere ich die Einstellung in admin_board.php.
Ich möchte Funktionen dort deaktivieren. In der Datei ist jedoch angemerkt das "jeder" Teil der phpbb_config geändert wird. Sobald also Einträge gelöscht werden wird der entsprechende Teil einfach in der db auf "nichts" gesetzt.
Dies ist natürlich nicht der Effekt den ich erreichen möchte.

Da dies ein sehr wichtiger Teil ist möchte ich keine Fehler machen. Es geht darum, daß lediglich die "Allgemeine Boardeinstellungen" unerwünscht sind. Wie erstelle ich nun eine Einzelabfrage für die entsprechenden Punkte?
Benutzeravatar
saerdnaer
Ehemaliges Teammitglied
Beiträge: 4268
Registriert: 21.04.2001 02:00

Beitrag von saerdnaer »

um was gehts... was willst du überhaupt machen?

ah
Olaf01
Mitglied
Beiträge: 62
Registriert: 19.10.2002 13:41

Beitrag von Olaf01 »

Ich habe den Supermoderatorenhack eingebaut.
Den Supermoderatoren möchte ich nun die Mpglichkeit geben Einstellungen zu verändern. Er soll jedoch keinen Zugriff auf lebenswichtige Bereiche erhalten.

Die Jungs sind zwar zuverlässig aber ....

Da nun der gesamte Bereich ausgelesen wird und ebenso in die config insgesamt geschrieben wird stehe ich auf dem Schlauch. Da ich mit den db-Abfragen (noch) nicht so fit bin habe ich in diesem Bereich einige Bedenken.

Code: Alles auswählen

//
// Pull all config data
//
$sql = "SELECT *
    FROM " . CONFIG_TABLE;
if(!$result = $db->sql_query($sql))
{
    message_die(CRITICAL_ERROR, "Could not query config information in admin_board", "", __LINE__, __FILE__, $sql);
}
else
{
    while( $row = $db->sql_fetchrow($result) )
    {
        $config_name = $row['config_name'];
        $config_value = $row['config_value'];
        $default_config[$config_name] = $config_value;

        $new[$config_name] = ( isset($HTTP_POST_VARS[$config_name]) ) ? $HTTP_POST_VARS[$config_name] : $default_config[$config_name];

        if( isset($HTTP_POST_VARS['submit']) )
        {
            $sql = "UPDATE " . CONFIG_TABLE . " SET
                config_value = '" . str_replace("\'", "''", $new[$config_name]) . "'
                WHERE config_name = '$config_name'";
            if( !$db->sql_query($sql) )
            {
                message_die(GENERAL_ERROR, "Failed to update general configuration for $config_name", "", __LINE__, __FILE__, $sql);
            }
        }
    }

    if( isset($HTTP_POST_VARS['submit']) )
    {
        $message = $lang['Config_updated'] . "<br /><br />" . sprintf($lang['Click_return_config'], "<a href=\"" . append_sid("admin_board.$phpEx") . "\">", "</a>") . "<br /><br />" . sprintf($lang['Click_return_admin_index'], "<a href=\"" . append_sid("index.$phpEx?pane=right") . "\">", "</a>");

        message_die(GENERAL_MESSAGE, $message);
    }
}
Irgendwo hier werde ich die entscheidenden Änderungen vornehmen dürfen.

Ich benötige einen Hinweis wie ich die einzelnen Datensätze aus der db einlese und ebenso in die db schreibe.
Benutzeravatar
saerdnaer
Ehemaliges Teammitglied
Beiträge: 4268
Registriert: 21.04.2001 02:00

Beitrag von saerdnaer »

ja jetzt ist mir klar was du willst ;-)

gibt es da nicht einen extra ordner für das supermod panel?

ansonsten besorg dir mal den junior admin panel hack da kannst du das genauer einstellen...

ah
Olaf01
Mitglied
Beiträge: 62
Registriert: 19.10.2002 13:41

Beitrag von Olaf01 »

Das wäre meine absolute Notlösung. Ich würde jedoch nicht unbedingt stundenlang die Einträge vom alten Mod entfernen wollen (Ich habe rnd. 12 Mods drauf) und danach die Anpassung für den neuen Mod einbringen.

Meine Lösung wäre eleganter ;)
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

Beim Junior Hack kann ma zwar verschiedene Bereiche einstellen, die erlaubt sind für´n Junior Admin, aber ich bin mir ned so sicher, ob man innerhalb eines Bereiches (Konfiguration) auch noch ma selektieren kann.
Du könntest es über Deine user_id bzw. dem user_level machen und halt ´ne Abfrage einbauen, das nur Du alle Einstellungen siehst.
Oder Du kopierst die admin_board.php, benennst sie um, änderst die Beschriftung und löschst dann das was für die SuperTypen ned sichtbar sein soll.

@saerdnaer
...hattest gleich 3ma hintereinander gepostet. :wink:
Olaf01
Mitglied
Beiträge: 62
Registriert: 19.10.2002 13:41

Beitrag von Olaf01 »

Acid hat geschrieben:Du könntest es über Deine user_id bzw. dem user_level machen und halt ´ne Abfrage einbauen, das nur Du alle Einstellungen siehst.

Oder Du kopierst die admin_board.php, benennst sie um, änderst die Beschriftung und löschst dann das was für die SuperTypen ned sichtbar sein soll.
Das mit dem Kopieren und löschen funktioniert leider nicht. Dabei zerschieße ich meine config. Wie bereits geschildert wird die Config eingelesen und danach einfach "entleert" (Die gelöschten Elemente) in die Datenbank eingetragen. (Oder der Herr muß Hirn werfen damit ich es richtig mache ;) )

Das obere werde ich mal versuchen.
Benutzeravatar
saerdnaer
Ehemaliges Teammitglied
Beiträge: 4268
Registriert: 21.04.2001 02:00

Beitrag von saerdnaer »

also dann mach doch mal folgendes:
öffne die admin_board.php
suche:

Code: Alles auswählen

	$file = basename(__FILE__);
davor einfügen

Code: Alles auswählen

	if ( $userdata['user_level'] != ADMIN )
	{
		return;
	}
dann suche nochmal

Code: Alles auswählen

include($phpbb_root_path . 'includes/functions_selects.'.$phpEx);
und füge danach ein:

Code: Alles auswählen

if ( $userdata['user_level'] != ADMIN )
{
	message_die(GENERAL_MESSAGE, 'Not_Authorised');
}
sollte funktionieren

@acid: kann sein da das forum oder eher die db etwas verrückt gespielt hat...

ah
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

...aber blockt dieser Code nicht die komplette admin_board.php für Nicht-ADMINS aus ?
Olaf01
Mitglied
Beiträge: 62
Registriert: 19.10.2002 13:41

Beitrag von Olaf01 »

Genau das würde der Code auch nach meiner Meinung machen. Ich habe etwas rumgespielt und die einzelnen Bereiche jeweils gesperrt. Ich erhalte jetzt jeweils die Fehlermeldung das ich keinen Zugang habe (als Supermod.)

Also werden die Daten doch einzeln ausgelesen werden müssen und separat zurückgeschrieben.

Ich werde mich am Sonntag damit beschäftigen. Sollte ich irgendwo in ein tiefes Loch stürzen, so nehme ich mein Seil und rufe hier um Hilfe ;)

Danke ersteinmal für die Mühe. - Sollte jedoch jemand....
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“