Eigene Backendmodule richtig konfigurieren

Ihr wollt ein eigenes Backend-Hauptmodul mit Untermodulen erstellen und dies auch für nicht-Admins verfügbar machen? Dann haltet euch an diese Konfiguration:

In der Datei mod1\conf.php (Hauptmodul) muss unter anderem stehen:

$MCONF['name']='hauptmodulname'; //der kickstarter schlägt hier sowas vor: tx123M1 (123 ist der Extensionkey ohne _)
$MCONF['access']='user,group'; //sollen nur Admins zugriff haben, dann steht hier $MCONF['access']='admin';

In der Datei mod2\conf.php (erstes Untermodul) muss unter anderem stehen:

$MCONF['name']='hauptmodulname_untermodulname1';
$MCONF['access']='user,group'; //sollen nur Admins zugriff haben, dann steht hier $MCONF['access']='admin';

In der Datei mod2\index.php muss in der Funktion main() diese Zeile

if (($this->id && $access) || ($BE_USER->user['admin'] && !$this->id) ) {

durch diese Zeile

if (($this->id && $access) || ($BE_USER->user['admin'] && !$this->id) || ($BE_USER->user['uid'] && !$this->id)) {

ersetzt werden.

In der Datei mod3\conf.php (zweites Untermodul) muss unter anderem stehen:

$MCONF['name']='hauptmodulname_untermodulname2';
$MCONF['access']='user,group'; //sollen nur Admins zugriff haben, dann steht hier $MCONF['access']='admin';

In der Datei mod3\index.php muss in der Funktion main() diese Zeile

if (($this->id && $access) || ($BE_USER->user['admin'] && !$this->id) ) {

durch diese Zeile

if (($this->id && $access) || ($BE_USER->user['admin'] && !$this->id) || ($BE_USER->user['uid'] && !$this->id)) {

ersetzt werden.

Was für das zweite Untermodul gilt, gilt entsprechend angepasst auch für alle weiteren Untermodule! Gibt es nur ein Untermodul, dann kann der block für das zweite untermodul natürlich überlesen werden.

In der Datei ext_tables.php muss unter anderem das hier stehen:

if (TYPO3_MODE == 'BE'){
t3lib_extMgm::addModule('txtephpbugtrackerM1','','',t3lib_extMgm::extPath($_EXTKEY).'mod1/');
t3lib_extMgm::addModule('txtephpbugtrackerM2','txtephpbugtrackerM1','','');
t3lib_extMgm::addModule('txtephpbugtrackerM1','txtephpbugtrackerM2','',t3lib_extMgm::extPath($_EXTKEY).'mod2/');
t3lib_extMgm::addModule('txtephpbugtrackerM3','txtephpbugtrackerM1','','');
t3lib_extMgm::addModule('txtephpbugtrackerM1','txtephpbugtrackerM3','',t3lib_extMgm::extPath($_EXTKEY).'mod3/');
}

Dabei gilt folgendes Muster:

t3lib_extMgm::addModule('hauptmodulname', '', '', t3lib_extMgm::extPath($_EXTKEY).'mod1/');    
t3lib_extMgm::addModule('hauptmodulname','untermodulname1','',''); // ACHTUNG: hier brauchts den Untermodulnamen ohne den Hauptmodulnamen als Präfix!!!!!!!!!
t3lib_extMgm::addModule('hauptmodulname','untermodulname1','',t3lib_extMgm::extPath($_EXTKEY).'mod2/'); // ACHTUNG: hier brauchts den Untermodulnamen ohne den Hauptmodulnamen als Präfix!!!!!!!!!
t3lib_extMgm::addModule('hauptmodulname','untermodulname2','',''); // ACHTUNG: hier brauchts den Untermodulnamen ohne den Hauptmodulnamen als Präfix!!!!!!!!!
t3lib_extMgm::addModule('hauptmodulname','untermodulname2','',t3lib_extMgm::extPath($_EXTKEY).'mod2/'); // ACHTUNG: hier brauchts den Untermodulnamen ohne den Hauptmodulnamen als Präfix!!!!!!!!!

Was für das zweite Untermodul gilt, gilt entsprechend angepasst auch für alle weiteren Untermodule! Gibt es nur ein Untermodul, dann kann der block für das zweite untermodul natürlich überlesen werden.

Wenn ihr das so macht, dann klappts auch mit den Benutzerrechten (und den Nachbarn ;-)) . Wichtig ist, dass sich in den conf.php-Dateien die Namen der Untermodule aus dem Präfix „Hauptmodulname_“ und dem Untermodulnamen zusammensetzen, während das in der ext_localconf.php nicht der Fall ist!

Veröffentlicht unter TYPO3 Extensions, TYPO3 Technik

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*