Quote table names in admin_get_XXX() functions of t3lib_db
[Packages/TYPO3.CMS.git] / t3lib / class.t3lib_extmgm.php
index 6518258..4ef6270 100644 (file)
@@ -371,6 +371,41 @@ class t3lib_extMgm {
        }
 
        /**
+        * Adds a module path to TBE_MODULES for used with the module dispatcher, mod.php
+        * Used only for modules that are not placed in the main/sub menu hierarchy by the traditional mechanism of addModule()
+        * Examples for this is context menu functionality (like import/export) which runs as an independent module through mod.php
+        * FOR USE IN ext_tables.php FILES
+        * Example:  t3lib_extMgm::addModulePath('xMOD_tximpexp',t3lib_extMgm::extPath($_EXTKEY).'app/');
+        *
+        * @param       string          $name is the name of the module, refer to conf.php of the module.
+        * @param       string          $path is the absolute path to the module directory inside of which "index.php" and "conf.php" is found.
+        * @return      void
+        */
+       function addModulePath($name,$path)     {
+               global $TBE_MODULES;
+
+               $TBE_MODULES['_PATHS'][$name] = $path;
+       }
+
+       /**
+        * Adding an application for the top menu. These are regular modules but is required to respond with Ajax content in case of certain parameters sent to them.
+        *
+        * @param       string          $name is the name of the module, refer to conf.php of the module.
+        * @param       string          $path is the absolute path to the module directory inside of which "index.php" and "conf.php" is found.
+        * @param       boolean         If set, the application is placed in the shortcut bar below the menu bar.
+        * @param       array           Options
+        * @return      void
+        */
+       function addTopApp($name,$path,$iconPane=FALSE,$options=array())        {
+               global $TBE_MODULES,$TYPO3_CONF_VARS;
+
+               $TYPO3_CONF_VARS['SC_OPTIONS']['GLOBAL']['topApps'][$iconPane?'icons':'menu'][$name] = $options;
+
+                       // Set path for TBE-modules:
+               $TBE_MODULES['_PATHS'][$name] = $path;
+       }
+
+       /**
         * Adds a "Function menu module" ('third level module') to an existing function menu for some other backend module
         * The arguments values are generally determined by which function menu this is supposed to interact with
         * See Inside TYPO3 for information on how to use this function.
@@ -482,9 +517,9 @@ class t3lib_extMgm {
                // even not available services will be included to make it possible to give the admin a feedback of non-available services.
                // but maybe it's better to move non-available services to a different array??
 
-               if ($serviceType AND
-                       !t3lib_div::isFirstPartOfStr($serviceType, 'tx_') AND
-                       (t3lib_div::isFirstPartOfStr($serviceKey, 'tx_') OR t3lib_div::isFirstPartOfStr($serviceKey, 'user_')) AND
+               if ($serviceType &&
+                       !t3lib_div::isFirstPartOfStr($serviceType, 'tx_') &&
+                       (t3lib_div::isFirstPartOfStr($serviceKey, 'tx_') || t3lib_div::isFirstPartOfStr($serviceKey, 'user_')) &&
                        is_array($info))        {
 
                        $info['priority'] = max(0,min(100,$info['priority']));
@@ -514,7 +549,7 @@ class t3lib_extMgm {
 
                                // OS check
                                // empty $os means 'not limited to one OS', therefore a check is not needed
-                       if ($T3_SERVICES[$serviceType][$serviceKey]['available'] AND $T3_SERVICES[$serviceType][$serviceKey]['os']!='') {
+                       if ($T3_SERVICES[$serviceType][$serviceKey]['available'] && $T3_SERVICES[$serviceType][$serviceKey]['os']!='') {
 
                                        // TYPO3_OS is not yet defined
                                $os_type = stristr(PHP_OS,'win')&&!stristr(PHP_OS,'darwin')?'WIN':'UNIX';
@@ -570,10 +605,10 @@ class t3lib_extMgm {
                                }
 
                                        // this matches empty subtype too
-                               if( $info['available'] AND ($info['subtype']==$serviceSubType OR $info['serviceSubTypes'][$serviceSubType]) AND $info['priority']>=$priority ) {
+                               if ($info['available'] && ($info['subtype']==$serviceSubType || $info['serviceSubTypes'][$serviceSubType]) && $info['priority']>=$priority )    {
 
                                                // has a lower quality than the already found, therefore we skip this service
-                                       if($info['priority']==$priority AND $info['quality']<$quality) {
+                                       if($info['priority']==$priority && $info['quality']<$quality) {
                                                continue;
                                        }
 
@@ -949,11 +984,11 @@ tt_content.'.$key.$prefix.' {
                                $temp_extensions = array_unique(t3lib_div::trimExplode(',',$rawExtList,1));
                                foreach($temp_extensions as $temp_extKey)       {
                                                // Check local, global and system locations:
-                                       if (@is_dir(PATH_site.'typo3conf/ext/'.$temp_extKey.'/'))       {
+                                       if (@is_dir(PATH_typo3conf.'ext/'.$temp_extKey.'/'))    {
                                                $extensions[$temp_extKey] = array('type'=>'L', 'siteRelPath'=>'typo3conf/ext/'.$temp_extKey.'/', 'typo3RelPath'=>'../typo3conf/ext/'.$temp_extKey.'/');
-                                       } elseif (@is_dir(PATH_site.TYPO3_mainDir.'ext/'.$temp_extKey.'/'))     {
+                                       } elseif (@is_dir(PATH_typo3.'ext/'.$temp_extKey.'/'))  {
                                                $extensions[$temp_extKey] = array('type'=>'G', 'siteRelPath'=>TYPO3_mainDir.'ext/'.$temp_extKey.'/', 'typo3RelPath'=>'ext/'.$temp_extKey.'/');
-                                       } elseif (@is_dir(PATH_site.TYPO3_mainDir.'sysext/'.$temp_extKey.'/'))  {
+                                       } elseif (@is_dir(PATH_typo3.'sysext/'.$temp_extKey.'/'))       {
                                                $extensions[$temp_extKey] = array('type'=>'S', 'siteRelPath'=>TYPO3_mainDir.'sysext/'.$temp_extKey.'/', 'typo3RelPath'=>'sysext/'.$temp_extKey.'/');
                                        }
 
@@ -971,8 +1006,8 @@ tt_content.'.$key.$prefix.' {
 
                                        // write cache?
                                if ($TYPO3_CONF_VARS['EXT']['extCache'] &&
-                                               @is_dir(PATH_site.TYPO3_mainDir.'sysext/') &&
-                                               @is_dir(PATH_site.TYPO3_mainDir.'ext/'))        {       // Must also find global and system extension directories to exist, otherwise caching cannot be allowed (since it is most likely a temporary server problem). This might fix a rare, unrepeatable bug where global/system extensions are not loaded resulting in fatal errors if that is cached!
+                                               @is_dir(PATH_typo3.'sysext/') &&
+                                               @is_dir(PATH_typo3.'ext/'))     {       // Must also find global and system extension directories to exist, otherwise caching cannot be allowed (since it is most likely a temporary server problem). This might fix a rare, unrepeatable bug where global/system extensions are not loaded resulting in fatal errors if that is cached!
                                        $wrError = t3lib_extMgm::cannotCacheFilesWritable($cacheFilePrefix);
                                        if ($wrError)   {
                                                $TYPO3_CONF_VARS['EXT']['extCache']=0;