Added feature #14463: Add post initialization hook for tslib_cObj
authorIngo Renner <ingo.renner@typo3.org>
Wed, 26 May 2010 08:48:27 +0000 (08:48 +0000)
committerIngo Renner <ingo.renner@typo3.org>
Wed, 26 May 2010 08:48:27 +0000 (08:48 +0000)
git-svn-id: https://svn.typo3.org/TYPO3v4/Core/trunk@7676 709f56b5-9817-0410-a4d7-c38de5d9e867

ChangeLog
typo3/sysext/cms/tslib/class.tslib_content.php
typo3/sysext/cms/tslib/interfaces/interface.tslib_content_postinithook.php [new file with mode: 0644]

index e43fe27..2d210e5 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2010-05-26  Ingo Renner  <ingo@typo3.org>
+
+       * Added feature #14463: Add post initialization hook for tslib_cObj
+
 2010-05-26  Steffen Kamper  <info@sk-typo3.de>
 
        * Fixed bug #14466: Bug: SpriteIconApi getSpriteIconForRecord does not find default icon (thanks to Steffen Ritter)
index d4573be..9fe3cf0 100644 (file)
@@ -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 (file)
index 0000000..447b76d
--- /dev/null
@@ -0,0 +1,48 @@
+<?php
+/***************************************************************
+*  Copyright notice
+*
+*  (c) 2010 Ingo Renner <ingo@typo3.org>
+*  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 <ingo@typo3.org>
+ * @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