TYPO3-Extdev: Eine Klasse für Front- und Backend-Module
November 7, 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.
[geshi lang=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 .= <<
class tx_extkey_funct extends tslib_pibase
TEMP;
} else {
$classtemp .= <<
class tx_extkey_funct extends t3lib_befunc
TEMP;
}
$classtemp .= <<
{
// functions with if-else for BE and FE
}
TEMP;
eval($classtemp);
if (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']);
}
?>[/geshi]
Vielen Dank an Seba für diesen Tipp.





