Seite 1 von 2
Seitenmenü im Admin-Bereich anpassen
Verfasst: 19.02.2008 21:22
von ^-v-^
Hallo,
ich bin dabei einen kleinen Mod zu schreiben, was soweit auch geklappt hat. Jetzt wollte ich, dass man im Admin-Bereich ein paar Einstellungen zu diesem festlegen kann.
Hierzu wollte ich, dass wenn sich der Administrator in der Admin-Übersicht befindet, er links im Seitenmenü eine weitere Auswahl findet, d.h. ich wollte das Seitenmenü am unteren Ende erweitern.
Ich kann aber leider nirgendwo entdecken, wo diese Einträge und links generiert oder verzeichnet sind. Im Ordner adm/style/overall_header.html finde ich wohl einen Hinweis darauf ab Zeile 185 (falls ich hier nicht ganz verkehrt bin). Aber dann komme ich nicht mehr weiter....
Kann mir jemand helfen, das Seitenmenü zu erweitern?
Bin für jegliche Hilfe dankbar!
Vielen Dank im Voraus!
Verfasst: 19.02.2008 21:27
von Kevinq
das Menü wird meines Wissens automatisch aus einer DB abfrage generiert. und bezieht sich auf installierte acp Module
Verfasst: 19.02.2008 21:30
von ^-v-^
Aber irgendwo muss er das Menü doch dann aus der DB holen, und dort könnte ich es dann doch manipulieren?!
Ich finde nur nicht die Datei und Stelle, wo das passiert

Verfasst: 19.02.2008 21:33
von TheRenegate
Hi, das ganze kannst du
hiernachlesen.
Zwar auf Englisch aber das sollte kein Problem sein.
Verfasst: 19.02.2008 21:46
von ^-v-^
Okay, d.h. ich müsste es als Modul einbinden. Die Seite habe ich auch schonmal gefunden, als ich über Google gesucht habe, aber ich werde aus der Seite nicht schlau: Wo z.B. wird definiert, unter welchem Text das neue Modul an welcher Stelle im Seitenmenü auftaucht? Ist für mich hier nicht ersichtlich... ???
Geht es sicher nicht anderst?
Verfasst: 19.02.2008 21:56
von TheRenegate
^-v-^ hat geschrieben:Okay, d.h. ich müsste es als Modul einbinden. Die Seite habe ich auch schonmal gefunden, als ich über Google gesucht habe, aber ich werde aus der Seite nicht schlau: Wo z.B. wird definiert, unter welchem Text das neue Modul an welcher Stelle im Seitenmenü auftaucht? Ist für mich hier nicht ersichtlich... ???
Geht es sicher nicht anderst?
Hi, nein soweit ich weiß nicht.
Guck dir einfach mal eine andere MOD an die einen Bereich im ACP hat. Dort kannste dir die Dateien ja kopieren und entsprechend abändern.
Guck ma in dein ACP -> System und dort links unten Administrator Module dort kannst du diese einstellen.
Verfasst: 20.02.2008 06:18
von ^-v-^
Na gut, ich seh schon, das gibe ne harte Nuss...
Vielen Dank für eure Hilfe!
Verfasst: 20.02.2008 06:24
von 4seven
Hallo ^-v-^,
suche beliebigen (prägnanten) Punkt in besagtem linken Menü (copy it) und begib dich auf die dateiübergreifende Suche
(zumindest für diese Aufgabe ist proton the best > zum editieren selbst Notepad++) in lokalen 3er Install-Dateien oder (wie es ja nun scheint) suche direkt in der Datenbank und erforsche dort die Syntax.
Nehmen wir mal zb
Moderations-Protokoll unter ACP > Allgemein
In der language/de/common.php erfahren wir....
'ACP_MOD_LOGS' => 'Moderations-Protokoll',
Also ab ins phpMyAdmin und nach
ACP_MOD_LOGS gesucht .
hier werden wir schnell fündig:
2 Treffer in der Tabelle phpbb3_modules
Code: Alles auswählen
Feld Typ Funktion Null Wert
module_id mediumint(8) unsigned
module_enabled tinyint(1) unsigned
module_display tinyint(1) unsigned
module_basename varchar(255) binary
module_class varchar(10) binary
parent_id mediumint(8) unsigned
left_id mediumint(8) unsigned
right_id mediumint(8) unsigned
module_langname varchar(255) binary
module_mode varchar(255) binary
module_auth varchar(255) binary
+
Code: Alles auswählen
Feld Typ Funktion Null Wert
module_id mediumint(8) unsigned
module_enabled tinyint(1) unsigned
module_display tinyint(1) unsigned
module_basename varchar(255) binary
module_class varchar(10) binary
parent_id mediumint(8) unsigned
left_id mediumint(8) unsigned
right_id mediumint(8) unsigned
module_langname varchar(255) binary
module_mode varchar(255) binary
module_auth varchar(255) binary
Also, unter
phpbb*_modules verbergen sich alle(!) Einstellungen des ACP:
Auszug:
Code: Alles auswählen
vollständige Textfelder module_id module_enabled module_display module_basename module_class parent_id left_id right_id module_langname module_mode module_auth
Bearbeiten Löschen 1 1 1 acp 0 1 60 ACP_CAT_GENERAL
Bearbeiten Löschen 2 1 1 acp 1 4 17 ACP_QUICK_ACCESS
Bearbeiten Löschen 3 1 1 acp 1 18 39 ACP_BOARD_CONFIGURATION
Bearbeiten Löschen 4 1 1 acp 1 40 47 ACP_CLIENT_COMMUNICATION
Bearbeiten Löschen 5 1 1 acp 1 48 59 ACP_SERVER_CONFIGURATION
Bearbeiten Löschen 6 1 1 acp 0 61 78 ACP_CAT_FORUMS
Bearbeiten Löschen 7 1 1 acp 6 62 67 ACP_MANAGE_FORUMS
Bearbeiten Löschen 8 1 1 acp 6 68 77 ACP_FORUM_BASED_PERMISSIONS
Bearbeiten Löschen 9 1 1 acp 0 79 102 ACP_CAT_POSTING
Bearbeiten Löschen 10 1 1 acp 9 80 91 ACP_MESSAGES
Bearbeiten Löschen 11 1 1 acp 9 92 101 ACP_ATTACHMENTS
Bearbeiten Löschen 12 1 1 acp 0 103 156 ACP_CAT_USERGROUP
Bearbeiten Löschen 13 1 1 acp 12 104 135 ACP_CAT_USERS
Bearbeiten Löschen 14 1 1 acp 12 136 143 ACP_GROUPS
Bearbeiten Löschen 15 1 1 acp 12 144 155 ACP_USER_SECURITY
Bearbeiten Löschen 16 1 1 acp 0 157 204 ACP_CAT_PERMISSIONS
Bearbeiten Löschen 17 1 1 acp 16 160 169 ACP_GLOBAL_PERMISSIONS
Bearbeiten Löschen 18 1 1 acp 16 170 179 ACP_FORUM_BASED_PERMISSIONS
Bearbeiten Löschen 19 1 1 acp 16 180 189 ACP_PERMISSION_ROLES
Bearbeiten Löschen 20 1 1 acp 16 190 203 ACP_PERMISSION_MASKS
Bearbeiten Löschen 21 1 1 acp 0 205 218 ACP_CAT_STYLES
Bearbeiten Löschen 22 1 1 acp 21 206 209 ACP_STYLE_MANAGEMENT
Bearbeiten Löschen 23 1 1 acp 21 210 217 ACP_STYLE_COMPONENTS
Bearbeiten Löschen 24 1 1 acp 0 219 238 ACP_CAT_MAINTENANCE
Bearbeiten Löschen 25 1 1 acp 24 220 229 ACP_FORUM_LOGS
Bearbeiten Löschen 26 1 1 acp 24 230 237 ACP_CAT_DATABASE
Bearbeiten Löschen 27 1 1 acp 0 239 264 ACP_CAT_SYSTEM
Bearbeiten Löschen 28 1 1 acp 27 240 243 ACP_AUTOMATION
Bearbeiten Löschen 29 1 1 acp 27 244 255 ACP_GENERAL_TASKS
Bearbeiten Löschen 30 1 1 acp 27 256 263 ACP_MODULE_MANAGEMENT
P.S. Hab eben mal einen Testeintrag erstellt. Das dürftest du hinbekommen

Wichtig ist die korrekte Zuordnung der parent-, left- und right-ID und die Funktionszuordnungen. Language-Eintrag dürfte klar sein ... der Rest ergibt sich. Funktion dann durch relevante ACP-PHP, Optik über ebensolches ACP-Template.
lg
4seven
Verfasst: 20.02.2008 15:23
von ^-v-^
Das ist ja schön und gut, aber ich will die mySQL-Tabelle hierfür nicht editieren, sondern die Änderungen lediglich ins Template bauen. So kann man die Modifikationen schneller einbauen und wieder rückgängig machen.
Deinen Weg habe ich schon gemacht, allerdings habe ich immer nach der Stelle gesucht, wo aus der mySQL-Tabelle die Menüpunkte gelesen werden. Und genau DIE finde ich nicht. Es ist zum heulen...
Verfasst: 21.02.2008 13:07
von 4seven
Hallo ^-v-^,
na, du hast ja jetzt schonmal die Tabellenmatrix, auf die diese phpbb3-Variablen zugreifen. Der Rest ist lediglich die "dateiübergreifende Suche" in einem lokalen phpbb3er Board. Um beim Beispiel oben zu bleiben:
Die Funktion ACP_MOD_LOGS liegt in der includes/acp/info/acp_logs.php
Code: Alles auswählen
<?php/**
*
* @package acp
* @version $Id: acp_logs.php,v 1.5 2007/10/04 15:05:50 acydburn Exp $
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
/**
* @package module_install
*/
class acp_logs_info
{
function module()
{
return array(
'filename' => 'acp_logs',
'title' => 'ACP_LOGGING',
'version' => '1.0.0',
'modes' => array(
'admin' => array('title' => 'ACP_ADMIN_LOGS', 'auth' => 'acl_a_viewlogs', 'cat' => array('ACP_FORUM_LOGS')),
'mod' => array('title' => 'ACP_MOD_LOGS', 'auth' => 'acl_a_viewlogs', 'cat' => array('ACP_FORUM_LOGS')),
'users' => array('title' => 'ACP_USERS_LOGS', 'auth' => 'acl_a_viewlogs', 'cat' => array('ACP_FORUM_LOGS')),
'critical' => array('title' => 'ACP_CRITICAL_LOGS', 'auth' => 'acl_a_viewlogs', 'cat' => array('ACP_FORUM_LOGS')),
),
);
}
function install()
{
}
function uninstall()
{
}
}
?>
Jeder Punkt, den du anhand diese Beispiels 1zu1 hinzufügen würdest, landet (dann) "einfach" auch in der Tabelle (sofern die Variablen eingepflegt wurden s.u.). Jetzt musst du dich "nur" noch an die Syntax der Vorgabe halten.
Also wichtig:
Durchsuche die Board-Dateien nach den entscheidenden Tabellen-Variablen:
Code: Alles auswählen
module_id
module_enabled
module_display
module_basename
module_class
parent_id
left_id
right_id
module_langname
module_mode
module_auth
Dadurch siehst du schnell, wie das verdrahtet ist
Den Rest bekommt du bestimmt hin
lg
4seven