Nachdem ich die letzten Tag viel Zeit damit verbracht entsprechende Lösungen zu finden, möchte ich sie hier allen Interessierten in einer kleinen Übersicht darstellen.
Problemstellung: das Backend so anzupassen, dass ein User (in meinem Fall meine Kunden) als Manager nur Menüpunkte vorfindet, mit denen er auch etwas zu hat.
Alle untenstehende Tips passieren direkt im Quelltext, weswegen ein Backup vorab der gesamten Seite unbedingt zu empfehlen ist.
Selbstverständlich übernehme ich keinerlei Haftung das die angeführten Änderungen auch bei euch problemlos funktionieren.
1.: Ein- bzw. ausblenden von Components für Manager:
Im Ornder includes findet ihr die Datei gacl.class.php
Dort findet ihr ab ca. Teile 152 die Auflistung der Components (der Absatz beginnt mit "// access to components").
Dort benötigt ihr zu nächst einmal folgende Zeile um Manager überhaupt Zugriff auf den Menüpunkt zu gewähren:
$this->_mos_add_acl( 'administration', 'install', 'users', 'manager', 'components', 'all' );
Des weiteren müßt ihr jetzt die einzelnen Components anführen, auf die der Manager zu greifen dürfen soll. Beispiel:
$this->_mos_add_acl( 'administration', 'edit', 'users', 'manager', 'components', 'com_joomlastats' );
$this->_mos_add_acl( 'administration', 'edit', 'users', 'manager', 'components', 'com_joomfish' );
Das ganze sollte dann ca. so aussehen:
PHP-Code:// access to components
$this->_mos_add_acl( 'administration', 'install', 'users', 'administrator', 'components', 'all' );
$this->_mos_add_acl( 'administration', 'install', 'users', 'super administrator', 'components', 'all' );
$this->_mos_add_acl( 'administration', 'install', 'users', 'manager', 'components', 'all' );
$this->_mos_add_acl( 'administration', 'edit', 'users', 'super administrator', 'components', 'all' );
$this->_mos_add_acl( 'administration', 'edit', 'users', 'administrator', 'components', 'all' );
$this->_mos_add_acl( 'administration', 'edit', 'users', 'manager', 'components', 'com_newsflash' );
$this->_mos_add_acl( 'administration', 'edit', 'users', 'manager', 'components', 'com_frontpage' );
$this->_mos_add_acl( 'administration', 'edit', 'users', 'manager', 'components', 'com_media' );
$this->_mos_add_acl( 'administration', 'edit', 'users', 'manager', 'components', 'com_easybook' );
$this->_mos_add_acl( 'administration', 'edit', 'users', 'manager', 'components', 'com_ponygallery' );
$this->_mos_add_acl( 'administration', 'edit', 'users', 'manager', 'components', 'com_joomlastats' );
$this->_mos_add_acl( 'administration', 'edit', 'users', 'manager', 'components', 'com_joomfish' );
2.: Ausblenden von Menüpunkten im Control Panel:
Hierzu müßt ihr Änderungen in der Datei mod_fullmenu.php aus dem Ordner administrator/modules vornehmen.
Dort habe ich z.B. den Menüpunkt SITE für Manager völlig ausgeblendet, und im MENU MANAGER nur mehr das mainmenu angezeigt gelassen.
In der Datei sind die einzelnen Menüpunkt jeweils mit einem Comment "Beschriftet.
Also z.B. das Menu SITE beginnt in Zeile 70 mit //Site Menu.
Direkt danach setzt ihr "if ($canConfig) {" ein. Am Ende des "Site Menu-Absatzes", also dort wo das nächste Menü beginnt ersetzt ihr
?> ],
durch
?> ], <?php } ?>
Das nur noch das mainmenu eingeblendet wird habe ich wie folgt realisiert:
Original:
Verändert:PHP-Code:// Menu Sub-Menu
?> _cmSplit,
[null,'Menu',null,null,'Menu Management',
<?php
if ($manageMenuMan) {
?> ['<img src="../includes/js/ThemeOffice/menus.png" />','Menu Manager','index2.php?option=com_menumanager',null,'Menu Manager'],
_cmSplit,
<?php
}
foreach ( $menuTypes as $menuType ) {
?> ['<img src="../includes/js/ThemeOffice/menus.png" />','<?php echo $menuType;?>','index2.php?option=com_menus&menutype=<?php echo $menuType;?>',null,''],
<?php
}
?> ],
_cmSplit,
Die gesamte, veränderte Datei findet ihr anbei.PHP-Code:// Menu Sub-Menu
?> _cmSplit,
[null,'Menüs',null,null,'Menüverwaltung',
<?php
if ($manageMenuMan) {
?> ['<img src="../includes/js/ThemeOffice/menus.png" />','Menüverwaltung','index2.php?option=com_menumanager',null,'Menüverwaltung'],
_cmSplit,
<?php } ?>
['<img src="../includes/js/ThemeOffice/menus.png" />','mainmenu','index2.php?option=com_menus&menutype=mainmenu',null,''],
],
_cmSplit,
3.: Ausblenden des SubMenu-Items "JoomlaStats Uninstall".
Auch diesen Menüpunkte wollte ich in der Ansicht für meine Kunden nicht belassen.
Um diesen Eintrag zu entfernen, müßt ihr in eurer Datenbank gehen und dort dann nach "JoomlaStats Uninstall" suchen.
Ihr werdet den entsprechenden Eintrag in der Tabelle jos_components finden den ihr dort dann löschen könnt.
TO BE CONTINUED!


LinkBack URL
About LinkBacks
Zitieren
Lesezeichen