[TYPO3-dev] The "Object TypoScript library" in the TYPO3 core?

Steffen Kamper info at sk-typo3.de
Mon Jul 13 16:03:08 CEST 2009


Hi,

Martin Kutschker schrieb:
> Xavier Perseguers schrieb:
>> The existing hook may certainly be used instead of having something
>> special for this very extension.
> 
> The hook is not very useful IMHO. Either you use standard objects or you
> use the ones the hook provides. You cannot add just a single object.
> 
> Masi

it's very easy to add an own object. I did it with the new MEDIA ce 
because i need it in 4.2 installation.

This is the way to go:
(single object MYOWNCE)
1)
define tt_content.myownce like usual

tt_content.myownce= COA
tt_content.myownce {
	10 = < lib.stdheader

	20 = MYOWNCE
	20 { ... }
}

2) define TCA CType (ext_tables.php)
$TCA['tt_content']['columns']['CType']['config']['myownce'] = array(
	'label' => 'LLL:EXT:....',
	'config' => array(...)
);

3) use flexform?
$TCA['tt_content']['columns']['pi_flexform']['config']['ds'][',myownce'] 
= "<flexform content>";

4) define showitem
$TCA['tt_content']['types']['myownce'] = array(
	'showitem' => ''CType;;4;;1-1-1, hidden, header;;3;;2-2-2, 
linkToTop;;;;3-3-3,...';
);

4) Define it for NewElementWizard (ext_localconf)
t3lib_extMgm::addPageTSConfig('
mod.wizards.newContentElement.wizardItems {
	myownce {
		icon = ...
	}
	special.show := addToList(myownce)
}

5) register Hook
$TYPO3_CONF_VARS['SC_OPTIONS']['tslib/class.tslib_content.php']['cObjTypeAndClassDefault']['media'] 
= 'EXT:yourext:file.php:classname';

6) write your own class

require_once(PATH_tslib . 
'interfaces/interface.tslib_content_cobjgetsinglehook.php');

class tx_cObjMyOwnCE implements tslib_content_cObjGetSingleHook {
	protected $cObj;
	public function getSingleContentObject($contentObjectName, array 
$configuration, $TypoScriptKey, tslib_cObj &$parentObject) {
		$this->cObj =& $parentObject;
		switch($contentObjectName) {
			case 'MYOWNCE':
				return $this->MYOWNCE($configuration);
			break;
		}
	}

}

you can write in Typoscript whatever you want, you'll find it in the 
conf array.

I wrote this because i didn't found a tutorial doing this kind of stuff, 
imho it's sufficient to do your own ContentElement and use it as the others.

vg Steffen




More information about the TYPO3-dev mailing list