TYPO3-Extdev: Eine Klasse für Front- und Backend-Module

07 11 2008
Bei der Entwicklung von TYPO3-Extensions kann es hin und wieder vorkommen, dass die selben Funktionen im Front- und Backend gleichermaßen benötigt werden. Normalerweise lässt sich eine Klasse nur für eine von beiden Seite verwenden, da je nach Verwendung unterschiedliche Bibliotheken geladen werden müssen. Mit einem kleinen Trick lässt sich jedoch auch dieses Hindernis umgehen. Die Klasse muss dazu dynamisch als String zusammengesetzt und am Ende mit eval() als PHP-Code ausgegeben werden.
 
<?php
if(TYPO3_MODE == 'FE') {
  require_once(PATH_tslib."class.tslib_pibase.php");
} else {
  require_once(PATH_t3lib."class.t3lib_befunc.php");
}

if(TYPO3_MODE == 'FE') {
  $classtemp .= <<<TEMP
class tx_extkey_funct extends tslib_pibase
TEMP;
} else {
  $classtemp .= <<<TEMP
class tx_extkey_funct extends t3lib_befunc
TEMP;
}

$classtemp .= <<<TEMP
{
  // functions with if-else for BE and FE
}
TEMP;

{FNAMEL}">eval($classtemp);

if ({FNAMEL}">defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/extkey/class.tx_extkey_funct.php'])    {
    include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/extkey/class.tx_extkey_funct.php']);
}

?>
Vielen Dank an Seba für diesen Tipp. ;-)

Kommentare

Ansicht der Kommentare: (Linear | Verschachtelt)
Noch keine Kommentare

Kommentar schreiben


Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.

Um maschinelle und automatische Übertragung von Spamkommentaren zu verhindern, bitte die Zeichenfolge im dargestellten Bild in der Eingabemaske eintragen. Nur wenn die Zeichenfolge richtig eingegeben wurde, kann der Kommentar angenommen werden. Bitte beachten Sie, dass Ihr Browser Cookies unterstützen muss um dieses Verfahren anzuwenden.
CAPTCHA

Sie können [geshi lang=LANG][/lang] Tags verwenden um Quellcode abhängig von der gewählten Programmiersprache einzubinden



Kommentare werden erst nach redaktioneller Prüfung freigeschaltet!