Hallo zusammen,
hab noch nie einen Hook verwendet und dachte ein neues CE zu basteln wär mal ein guter Start. Naja...schein ja doch was komplexer zu sein.
Meinen Hook habe ich hier gefunden:
class.tslib_content.php
Dort gibt es unter den ganzen CEs folgenden Code:
if($name && is_array($TYPO3_CONF_VARS['SC_OPTIONS']['tslib/class.tslib_content.php']['cObjTypeAndClassDefault'])) {
foreach($TYPO3_CONF_VARS['SC_OPTIONS']['tslib/class.tslib_content.php']['cObjTypeAndClassDefault'] as $classData) {
$hookObject = &t3lib_div::getUserObj($classData);
if(!($hookObject instanceof tslib_content_cObjGetSingleHook)) {
throw new UnexpectedValueException('$hookObject must implement interface tslib_content_cObjGetSingleHook', 1195043731);
}
/* @var $hookObject tslib_content_cObjGetSingleHook */
$content .= $hookObject->getSingleContentObject($name, (array) $conf, $TSkey, $this);
}
}
Demnach muss in der ext_localconf.php folgendes stehen:
$TYPO3_CONF_VARS['SC_OPTIONS']['tslib/class.tslib_content.php']['cObjTypeAndClassDefault'][] = 'EXT:sftest/class.tx_sftest_myfunc.php:tx_sftest_myfunc';
In meiner class.tx_sftest_myfunc.php steht:
require_once(PATH_tslib . 'interfaces/interface.tslib_content_cobjgetsinglehook.php');
class tx_sftest_myfunc implements tslib_content_cObjGetSingleHook {
function getSingleContentObject($name, array $conf, $TSkey, $this) {
return 'Hallo';
}
}
Eigentlich dachte ich, ich wär damit fertig. Wenn ich meinen Code richtig interpretiere müsste auch ein:
lib.sftest = cObject
lib.sftest.10 = TEXT
lib.sftest.10.value = Hallo
lib.sftest.20 = TRALLALA
TRALLALA kann in diesem Falle durch alles ersetzt werden, da ich das in meiner Funktion nicht abfange.
Ich hab sogar an das interface gedacht...was fehlt ihm?!
Stefan
Diesen Code binde ich mit der Extension tscobj auf meine Page ein.