Fixed bug #7874: Page lock not released when error page was generated
[Packages/TYPO3.CMS.git] / t3lib / class.t3lib_extobjbase.php
index 50a99f4..9c782f3 100755 (executable)
@@ -2,7 +2,7 @@
 /***************************************************************
 *  Copyright notice
 *
 /***************************************************************
 *  Copyright notice
 *
-*  (c) 1999-2004 Kasper Skaarhoj (kasper@typo3.com)
+*  (c) 1999-2008 Kasper Skaarhoj (kasperYYYY@typo3.com)
 *  All rights reserved
 *
 *  This script is part of the TYPO3 project. The TYPO3 project is
 *  All rights reserved
 *
 *  This script is part of the TYPO3 project. The TYPO3 project is
@@ -30,7 +30,7 @@
  * $Id$
  * Revised for TYPO3 3.6 July/2003 by Kasper Skaarhoj
  *
  * $Id$
  * Revised for TYPO3 3.6 July/2003 by Kasper Skaarhoj
  *
- * @author     Kasper Skaarhoj <kasper@typo3.com>
+ * @author     Kasper Skaarhoj <kasperYYYY@typo3.com>
  */
 /**
  * [CLASS/FUNCTION INDEX of SCRIPT]
  */
 /**
  * [CLASS/FUNCTION INDEX of SCRIPT]
@@ -41,9 +41,9 @@
  *  197:     function init(&$pObj,$conf)
  *  221:     function handleExternalFunctionValue()
  *  237:     function incLocalLang()
  *  197:     function init(&$pObj,$conf)
  *  221:     function handleExternalFunctionValue()
  *  237:     function incLocalLang()
- *  250:     function checkExtObj()
- *  265:     function extObjContent()
- *  276:     function modMenu()
+ *  253:     function checkExtObj()
+ *  268:     function extObjContent()
+ *  279:     function modMenu()
  *
  * TOTAL FUNCTIONS: 6
  * (This index is automatically created/updated by the extension "extdeveval")
  *
  * TOTAL FUNCTIONS: 6
  * (This index is automatically created/updated by the extension "extdeveval")
  * Notice that the first part is as usual: Include classes and call $SOBE->checkExtObj() to initialize any level-1 sub-modules
  * But then again ->include_once is traversed IF the initialization of the level-1 modules might have added more files!!
  * And after that $SOBE->checkSubExtObj() is called to initialize the second level.
  * Notice that the first part is as usual: Include classes and call $SOBE->checkExtObj() to initialize any level-1 sub-modules
  * But then again ->include_once is traversed IF the initialization of the level-1 modules might have added more files!!
  * And after that $SOBE->checkSubExtObj() is called to initialize the second level.
- * In this way even a third level could be supported - but most likely that is a too layered module to be practical.
+ * In this way even a third level could be supported - but most likely that is a too layered model to be practical.
  *
  * Anyways, the final interesting thing is to see what the framework "func_wizard" actually does:
  *
  *
  * Anyways, the final interesting thing is to see what the framework "func_wizard" actually does:
  *
  * For more information about this, please see the large example comment for the class t3lib_SCbase. This will show the principle of a 'level-1' connection.
  * The more advanced example - having two layers as it is done by the 'func_wizards' extension with the 'web_info' module - can be seen in the comment above.
  *
  * For more information about this, please see the large example comment for the class t3lib_SCbase. This will show the principle of a 'level-1' connection.
  * The more advanced example - having two layers as it is done by the 'func_wizards' extension with the 'web_info' module - can be seen in the comment above.
  *
- * @author     Kasper Skaarhoj <kasper@typo3.com>
+ * @author     Kasper Skaarhoj <kasperYYYY@typo3.com>
  * @package TYPO3
  * @subpackage t3lib
  * @see t3lib_SCbase,tx_funcwizards_webfunc::init(), tx_funcwizards_webfunc, tx_wizardsortpages_webfunc_2
  * @package TYPO3
  * @subpackage t3lib
  * @see t3lib_SCbase,tx_funcwizards_webfunc::init(), tx_funcwizards_webfunc, tx_wizardsortpages_webfunc_2
 class t3lib_extobjbase {
 
        /**
 class t3lib_extobjbase {
 
        /**
-        * Contains a reference to the parent object.
+        * Contains a reference to the parent (calling) object (which is probably an instance of an extension class to t3lib_SCbase)
+        *
+        * @var t3lib_SCbase
         * @see init()
         */
        var $pObj;      // parent SC object
         * @see init()
         */
        var $pObj;      // parent SC object
@@ -170,13 +172,13 @@ class t3lib_extobjbase {
        var $extClassConf;
 
        /**
        var $extClassConf;
 
        /**
-        * If this value is set it points to a key in the TCE_MODULES_EXT array (not on the top level..) where another classname/filepath/title can be defined for sub-subfunctions.
+        * If this value is set it points to a key in the TBE_MODULES_EXT array (not on the top level..) where another classname/filepath/title can be defined for sub-subfunctions.
         * This is a little hard to explain, so see it in action; it used in the extension 'func_wizards' in order to provide yet a layer of interfacing with the backend module.
         * The extension 'func_wizards' has this description: 'Adds the 'Wizards' item to the function menu in Web>Func. This is just a framework for wizard extensions.' - so as you can see it is designed to allow further connectivity - 'level 2'
         *
         * @see handleExternalFunctionValue(), tx_funcwizards_webfunc
         */
         * This is a little hard to explain, so see it in action; it used in the extension 'func_wizards' in order to provide yet a layer of interfacing with the backend module.
         * The extension 'func_wizards' has this description: 'Adds the 'Wizards' item to the function menu in Web>Func. This is just a framework for wizard extensions.' - so as you can see it is designed to allow further connectivity - 'level 2'
         *
         * @see handleExternalFunctionValue(), tx_funcwizards_webfunc
         */
-       var $function_key='';
+       var $function_key = '';
 
 
 
 
 
 
@@ -224,7 +226,7 @@ class t3lib_extobjbase {
                if ($this->function_key)        {
                        $this->extClassConf = $this->pObj->getExternalItemConfig($this->pObj->MCONF['name'],$this->function_key,$this->pObj->MOD_SETTINGS[$this->function_key]);
                        if (is_array($this->extClassConf) && $this->extClassConf['path'])       {
                if ($this->function_key)        {
                        $this->extClassConf = $this->pObj->getExternalItemConfig($this->pObj->MCONF['name'],$this->function_key,$this->pObj->MOD_SETTINGS[$this->function_key]);
                        if (is_array($this->extClassConf) && $this->extClassConf['path'])       {
-                               $this->pObj->include_once[]=$this->extClassConf['path'];
+                               $this->pObj->include_once[] = $this->extClassConf['path'];
                        }
                }
        }
                        }
                }
        }
@@ -235,9 +237,14 @@ class t3lib_extobjbase {
         * @return      void
         */
        function incLocalLang() {
         * @return      void
         */
        function incLocalLang() {
-               if ($this->localLangFile && @is_file($this->thisPath.'/'.$this->localLangFile)) {
-                       include($this->thisPath.'/'.$this->localLangFile);
-                       $GLOBALS['LOCAL_LANG']=t3lib_div::array_merge_recursive_overrule($GLOBALS['LOCAL_LANG'],$LOCAL_LANG);
+               global $LANG;
+               #if ($this->localLangFile && @is_file($this->thisPath.'/'.$this->localLangFile))        {
+               #       include($this->thisPath.'/'.$this->localLangFile);
+               if ($this->localLangFile && (@is_file($this->thisPath.'/'.$this->localLangFile) || @is_file($this->thisPath.'/'.substr($this->localLangFile,0,-4).'.xml')))     {
+                       $LOCAL_LANG = $LANG->includeLLFile($this->thisPath.'/'.$this->localLangFile, FALSE);
+                       if (is_array($LOCAL_LANG)) {
+                               $GLOBALS['LOCAL_LANG'] = t3lib_div::array_merge_recursive_overrule((array)$GLOBALS['LOCAL_LANG'], $LOCAL_LANG);
+                       }
                }
        }
 
                }
        }