From: Ingo Renner Date: Wed, 26 May 2010 08:48:27 +0000 (+0000) Subject: Added feature #14463: Add post initialization hook for tslib_cObj X-Git-Tag: TYPO3_4-4-0beta3~111 X-Git-Url: http://git.typo3.org/Packages/TYPO3.CMS.git/commitdiff_plain/6be4fc444dc19fefe79d21c126f8bf72a0f28db6 Added feature #14463: Add post initialization hook for tslib_cObj git-svn-id: https://svn.typo3.org/TYPO3v4/Core/trunk@7676 709f56b5-9817-0410-a4d7-c38de5d9e867 --- diff --git a/ChangeLog b/ChangeLog index e43fe27e8e84..2d210e58d284 100755 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2010-05-26 Ingo Renner + + * Added feature #14463: Add post initialization hook for tslib_cObj + 2010-05-26 Steffen Kamper * Fixed bug #14466: Bug: SpriteIconApi getSpriteIconForRecord does not find default icon (thanks to Steffen Ritter) diff --git a/typo3/sysext/cms/tslib/class.tslib_content.php b/typo3/sysext/cms/tslib/class.tslib_content.php index d4573be2c5be..9fe3cf0a7fe2 100644 --- a/typo3/sysext/cms/tslib/class.tslib_content.php +++ b/typo3/sysext/cms/tslib/class.tslib_content.php @@ -396,6 +396,18 @@ class tslib_cObj { $this->stdWrapHookObjects[] = $hookObject; } } + + if (is_array($TYPO3_CONF_VARS['SC_OPTIONS']['tslib/class.tslib_content.php']['postInit'])) { + foreach ($TYPO3_CONF_VARS['SC_OPTIONS']['tslib/class.tslib_content.php']['postInit'] as $classData) { + $postInitializationProcessor = t3lib_div::getUserObj($classData); + + if(!($postInitializationProcessor instanceof tslib_content_PostInitHook)) { + throw new UnexpectedValueException('$postInitializationProcessor must implement interface tslib_content_PostInitHook', 1274563549); + } + + $postInitializationProcessor->postProcessContentObjectInitialization($this); + } + } } /** diff --git a/typo3/sysext/cms/tslib/interfaces/interface.tslib_content_postinithook.php b/typo3/sysext/cms/tslib/interfaces/interface.tslib_content_postinithook.php new file mode 100644 index 000000000000..447b76d6d4e4 --- /dev/null +++ b/typo3/sysext/cms/tslib/interfaces/interface.tslib_content_postinithook.php @@ -0,0 +1,48 @@ + +* All rights reserved +* +* This script is part of the TYPO3 project. The TYPO3 project is +* free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation; either version 2 of the License, or +* (at your option) any later version. +* +* The GNU General Public License can be found at +* http://www.gnu.org/copyleft/gpl.html. +* A copy is found in the textfile GPL.txt and important notices to the license +* from the author is found in LICENSE.txt distributed with these scripts. +* +* +* This script is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* This copyright notice MUST APPEAR in all copies of the script! +***************************************************************/ + + +/** + * Interface for classes which hook into tslib_content and do additional + * initialization processing. + * + * @author Ingo Renner + * @package TYPO3 + * @subpackage tslib + */ +interface tslib_content_PostInitHook { + + /** + * Hook for post processing the initialization of tslib_cObj + * + * @param tslib_cObj parent content object + */ + public function postProcessContentObjectInitialization(tslib_cObj &$parentObject); + +} + +?> \ No newline at end of file