---
title: "Eigene CEs basteln mit HOOK"
url: "https://www.typo3.net/d/92061-eigene-ces-basteln-mit-hook"
source: "typo3.net"
tags: ["Extensions","Entwicklung","Frage"]
created: "2009-08-12"
last_reply: "2009-08-12"
replies: 3
solved: false
page: 1
pages: 1
lang: "de"
---

# Eigene CEs basteln mit HOOK

Extensions › Entwicklung · 3 Antworten · gestartet 2009-08-12

## Eröffnungsbeitrag

**froemken** · 2009-08-12 · [Beitrag #1](https://www.typo3.net/d/92061-eigene-ces-basteln-mit-hook/1)

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:

```php
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:

```php
$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:

```php
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:

```typoscript
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.

## Antworten

### [#2](https://www.typo3.net/d/92061-eigene-ces-basteln-mit-hook/2) · just2b · 2009-08-12

willst du dir ein eigenes content element oder ein eigenes cObject bauen?

weil ersteres geht auch bequem übern kickstarter ...

### [#3](https://www.typo3.net/d/92061-eigene-ces-basteln-mit-hook/3) · froemken · 2009-08-12

Hauptaugenmerkmal ist hier nur der Lerneffekt für die Nutzung eines Hooks. In meinem Fall will ich ein cObject bauen. Diese TEXT, IMAGE, HTML, COA-Teile halt.
In meiner Übungsumgebung möchte ich im Endeffekt ein cObject mit dem Namen FROEMMI haben. Was es macht? Keine Ahnung...völlig egal. Text ausgeben, Text fett ausgeben. Wie schon gesagt...es geht um den Lerneffekt. Hauptsache irgendwas aus meiner Funktion wird ausgegeben. In meinem Script steht derzeit "return 'Hallo';"

Danke für den Tipp bzgl. CE. Du hast natürlich Recht: CE und cObject ist was anderes. Hab auch grad mal ein CE erstellt und funktioniert auf Anhieb. Aber das nur nebenbei...hier geht es um ein neues cObject per Hook einzubinden.

Stefan

### [#4](https://www.typo3.net/d/92061-eigene-ces-basteln-mit-hook/4) · froemken · 2009-08-12

Au man...das kann echt aufregen. Mein Script hat die ganze Zeit funktioniert...nur die Extension zum Einbinden des TS (tscobj) bereitete Probleme, denn sie hat eine eigene Liste mit cTypes:

<http://typo3.org/extensions/repository/list/tscobj//info/pi1%252Fclass.tx_tscobj_pi1.php/>

Da kann ich natürlich lange suchen, warum meine eigenen cTypes nicht übernommen wurden und ständig LEER waren.

Stefan

---

Quelle: „Eigene CEs basteln mit HOOK“, typo3.net, https://www.typo3.net/d/92061-eigene-ces-basteln-mit-hook
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
