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 :cry:

Verfasst: 19.02.2008 21:33
von TheRenegate
Hi, das ganze kannst duhiernachlesen.

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 :wink: 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 :D
Den Rest bekommt du bestimmt hin :wink:

lg
4seven